shred
v0.16.1
Pustaka ini memungkinkan pengiriman sistem, yang dapat memiliki saling ketergantungan, akses sumber daya bersama dan eksklusif, secara paralel.
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 ) ;
}
Silakan lihat tolok ukur untuk contoh yang lebih besar (dan berguna).
1.56.1 stable
Kontribusi sangat diharapkan! Jika Anda menginginkan fitur lain, buat saja masalah. Anda juga dapat membantu jika Anda mau; pilih saja masalah "dibutuhkan bantuan". Jika Anda memerlukan bantuan, jangan ragu untuk bertanya!
Semua kontribusi diasumsikan memiliki lisensi ganda di bawah MIT/Apache-2.
shred
didistribusikan berdasarkan ketentuan lisensi MIT dan Lisensi Apache (Versi 2.0).
Lihat LISENSI-APACHE dan LISENSI-MIT.