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를 참조하세요.