shred
v0.16.1
Diese Bibliothek ermöglicht den parallelen Versand von Systemen, die gegenseitige Abhängigkeiten sowie gemeinsamen und exklusiven Ressourcenzugriff haben können.
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 ) ;
}
Ein größeres (und nützliches) Beispiel finden Sie im Benchmark.
1.56.1 stable
Ein Beitrag ist herzlich willkommen! Wenn Sie eine weitere Funktion wünschen, erstellen Sie einfach ein Problem. Sie können auch mithelfen, wenn Sie möchten; Wählen Sie einfach ein „Hilfe gesucht“-Problem aus. Wenn Sie Hilfe benötigen, fragen Sie einfach!
Es wird davon ausgegangen, dass alle Beiträge unter MIT/Apache-2 doppelt lizenziert sind.
shred
wird unter den Bedingungen sowohl der MIT-Lizenz als auch der Apache-Lizenz (Version 2.0) vertrieben.
Siehe LICENSE-APACHE und LICENSE-MIT.