Struct pyro::RuntimeBorrow
source · pub struct RuntimeBorrow { /* private fields */ }
Expand description
Rust’s borrowing rules are not flexible enough for an ECS. Often it would preferred to nest multiple
queries like World::matcher
, but this is not possible if both borrows would be mutable.
Instead we track active borrows at runtime. Multiple reads are allowed but read/write
and
write/write
are not.
Implementations§
source§impl RuntimeBorrow
impl RuntimeBorrow
pub fn new() -> Self
sourcepub fn push_access<R: RegisterBorrow>(&mut self)
pub fn push_access<R: RegisterBorrow>(&mut self)
Creates and pushes an Borrow
on to the stack.
sourcepub fn pop_access(&mut self)
pub fn pop_access(&mut self)
Removes latest Borrow
. This is usually called when an BorrowIter
is dropped.
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for RuntimeBorrow
impl Send for RuntimeBorrow
impl Sync for RuntimeBorrow
impl Unpin for RuntimeBorrow
impl UnwindSafe for RuntimeBorrow
Blanket Implementations§
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read moresource§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read moresource§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read moresource§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more