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).
راجع LICENSE-APACHE وLICENSE-MIT.