#mutable #shared #run-time #unchecked

unchecked_mutable

无运行时成本的共享可变

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2015年12月18日

7#unchecked

MIT 许可证

3KB

有时共享某些内容并避免运行时成本很重要。此包就是为了这个目的

示例

extern crate unchecked_mutable;

use std::borrow::BorrowMut;
use unchecked_mutable::UncheckedMutable;

trait Drawable {
    fn draw(&mut self);
}

struct Image;

impl Drawable for Image {
    fn draw(&mut self) {
        println!("Draw image");
    }
}

fn show_example<'a>() {
    let data = {
        let image: UncheckedMutable<Image> = UncheckedMutable::new(Image);
        image.data()
    };

    let mut drawable: UncheckedMutable<Drawable> = UncheckedMutable::from_rc(data);
    let drawable: &mut (Drawable + 'a) = drawable.borrow_mut();
    drawable.draw();
}

fn main() {
    show_example();
}

无运行时依赖