千家信息网

Fuchsia中Rust 开发的示例分析

发表于:2024-10-12 作者:千家信息网编辑
千家信息网最后更新 2024年10月12日,这期内容当中小编将会给大家带来有关Fuchsia中Rust 开发的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。GameLispGameLisp 是一个用于
千家信息网最后更新 2024年10月12日Fuchsia中Rust 开发的示例分析

这期内容当中小编将会给大家带来有关Fuchsia中Rust 开发的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

GameLisp

GameLisp 是一个用于 Rust 游戏开发的脚本语言。

Shredder 项目

Shredder 项目主要针对于 Rust 的智能指针的"垃圾回收"。

derive_aktor

derive_aktor 是一个宏库,使用起来还是挺方便的,项目地址:https://github.com/insanitybit/derive_aktor
使用示例:

pub struct KeyValueStore    
where U: Hash + Eq + Send + 'static
{
inner_store: HashMap,

self_actor: Option>,

}
impl KeyValueStore {
pub fn new() -> Self {

Self {

inner_store: HashMap::new(),

self_actor: None,

}
}}
// All methods in this block form our Actor's API#[derive_actor]impl KeyValueStore {
pub fn query(&self, key: U, f: Box) + Send + 'static>) {

println!("query");

f(self.inner_store.get(&key).map(String::from))

}

pub fn set(&mut self, key: U, value: String) {
println!("set");

self.inner_store.insert(key, value);
}}

#[tokio::main]async fn main() {
let (kv_store, handle) = KeyValueStoreActor::new(KeyValueStore::new()).await;
// We can use an async API that's typed and nominal

kv_store.query("foo", Box::new(|value| println!("before {:?}", value))).await;

kv_store.set("foo", "bar".to_owned()).await;

kv_store.query("foo", Box::new(|value| println!("after {:?}", value))).await;

// We must drop any references to kv_store before we await the handle, or it will leak!
drop(kv_store);
handle.await;

}

上述就是小编为大家分享的Fuchsia中Rust 开发的示例分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

0