shred
v0.16.1
該程式庫允許並行調度具有相互依賴性、共享和獨佔資源存取的系統。
extern crate shred ;
use shred :: { DispatcherBuilder , Read , Resource , ResourceId , System , SystemData , World , Write } ;
# [ derive ( Debug , Default ) ]
struct ResA ;
# [ derive ( Debug , Default ) ]
struct ResB ;
# [ derive ( SystemData ) ] // Provided with `shred-derive` feature
struct Data < ' a > {
a : Read < ' a , ResA > ,
b : Write < ' a , ResB > ,
}
struct EmptySystem ;
impl < ' a > System < ' a > for EmptySystem {
type SystemData = Data < ' a > ;
fn run ( & mut self , bundle : Data < ' a > ) {
println ! ( "{:?}" , &*bundle.a ) ;
println ! ( "{:?}" , &*bundle.b ) ;
}
}
fn main ( ) {
let mut world = World :: empty ( ) ;
let mut dispatcher = DispatcherBuilder :: new ( )
. with ( EmptySystem , "empty" , & [ ] )
. build ( ) ;
world . insert ( ResA ) ;
world . insert ( ResB ) ;
dispatcher . dispatch ( & mut world ) ;
}
請參閱基準以獲得更大(且有用)的範例。
1.56.1 stable
非常歡迎貢獻!如果您想要其他功能,只需建立一個問題。如果您願意,也可以提供協助;只需選擇一個“需要幫助”的問題。如果您需要任何幫助,請隨時詢問!
假定所有貢獻均獲得 MIT/Apache-2 的雙重許可。
shred
是根據 MIT 授權和 Apache 授權(版本 2.0)的條款分發的。
請參閱許可證-APACHE 和許可證-MIT。