Trait Fetch

Source
pub unsafe trait Fetch<'a>: Sized {
    type Output;
    type WorldBorrows;
    type DirectBorrows;

    // Required methods
    unsafe fn borrow_world(
        &self,
        world: &'a World,
    ) -> Option<Self::WorldBorrows>;
    unsafe fn get_world(
        &self,
        borrows: &Self::WorldBorrows,
        id: Id,
    ) -> Option<Self::Output>;
    unsafe fn borrow_direct(
        &self,
        entity: &'a Entity,
    ) -> Option<Self::DirectBorrows>;
    unsafe fn get(&self, borrows: &Self::DirectBorrows) -> Self::Output;
}

Required Associated Types§

Required Methods§

Source

unsafe fn borrow_world(&self, world: &'a World) -> Option<Self::WorldBorrows>

Source

unsafe fn get_world( &self, borrows: &Self::WorldBorrows, id: Id, ) -> Option<Self::Output>

Source

unsafe fn borrow_direct( &self, entity: &'a Entity, ) -> Option<Self::DirectBorrows>

Source

unsafe fn get(&self, borrows: &Self::DirectBorrows) -> Self::Output

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a> Fetch<'a> for ()

Source§

type Output = ()

Source§

type WorldBorrows = ()

Source§

type DirectBorrows = ()

Source§

unsafe fn borrow_world(&self, world: &'a World) -> Option<Self::WorldBorrows>

Source§

unsafe fn get_world( &self, borrows: &Self::WorldBorrows, id: Id, ) -> Option<Self::Output>

Source§

unsafe fn borrow_direct( &self, entity: &'a Entity, ) -> Option<Self::DirectBorrows>

Source§

unsafe fn get(&self, borrows: &Self::DirectBorrows) -> Self::Output

Source§

impl<'a, a0: Fetch<'a>> Fetch<'a> for (a0,)

Source§

type Output = (<a0 as Fetch<'a>>::Output,)

Source§

type WorldBorrows = (<a0 as Fetch<'a>>::WorldBorrows,)

Source§

type DirectBorrows = (<a0 as Fetch<'a>>::DirectBorrows,)

Source§

unsafe fn borrow_world(&self, world: &'a World) -> Option<Self::WorldBorrows>

Source§

unsafe fn get_world( &self, borrows: &Self::WorldBorrows, id: Id, ) -> Option<Self::Output>

Source§

unsafe fn borrow_direct( &self, entity: &'a Entity, ) -> Option<Self::DirectBorrows>

Source§

unsafe fn get(&self, borrows: &Self::DirectBorrows) -> Self::Output

Source§

impl<'a, a0: Fetch<'a>, a1: Fetch<'a>> Fetch<'a> for (a0, a1)

Source§

type Output = (<a0 as Fetch<'a>>::Output, <a1 as Fetch<'a>>::Output)

Source§

type WorldBorrows = (<a0 as Fetch<'a>>::WorldBorrows, <a1 as Fetch<'a>>::WorldBorrows)

Source§

type DirectBorrows = (<a0 as Fetch<'a>>::DirectBorrows, <a1 as Fetch<'a>>::DirectBorrows)

Source§

unsafe fn borrow_world(&self, world: &'a World) -> Option<Self::WorldBorrows>

Source§

unsafe fn get_world( &self, borrows: &Self::WorldBorrows, id: Id, ) -> Option<Self::Output>

Source§

unsafe fn borrow_direct( &self, entity: &'a Entity, ) -> Option<Self::DirectBorrows>

Source§

unsafe fn get(&self, borrows: &Self::DirectBorrows) -> Self::Output

Source§

impl<'a, a0: Fetch<'a>, a1: Fetch<'a>, a2: Fetch<'a>> Fetch<'a> for (a0, a1, a2)

Source§

type Output = (<a0 as Fetch<'a>>::Output, <a1 as Fetch<'a>>::Output, <a2 as Fetch<'a>>::Output)

Source§

type WorldBorrows = (<a0 as Fetch<'a>>::WorldBorrows, <a1 as Fetch<'a>>::WorldBorrows, <a2 as Fetch<'a>>::WorldBorrows)

Source§

type DirectBorrows = (<a0 as Fetch<'a>>::DirectBorrows, <a1 as Fetch<'a>>::DirectBorrows, <a2 as Fetch<'a>>::DirectBorrows)

Source§

unsafe fn borrow_world(&self, world: &'a World) -> Option<Self::WorldBorrows>

Source§

unsafe fn get_world( &self, borrows: &Self::WorldBorrows, id: Id, ) -> Option<Self::Output>

Source§

unsafe fn borrow_direct( &self, entity: &'a Entity, ) -> Option<Self::DirectBorrows>

Source§

unsafe fn get(&self, borrows: &Self::DirectBorrows) -> Self::Output

Source§

impl<'a, a0: Fetch<'a>, a1: Fetch<'a>, a2: Fetch<'a>, a3: Fetch<'a>> Fetch<'a> for (a0, a1, a2, a3)

Source§

type Output = (<a0 as Fetch<'a>>::Output, <a1 as Fetch<'a>>::Output, <a2 as Fetch<'a>>::Output, <a3 as Fetch<'a>>::Output)

Source§

type WorldBorrows = (<a0 as Fetch<'a>>::WorldBorrows, <a1 as Fetch<'a>>::WorldBorrows, <a2 as Fetch<'a>>::WorldBorrows, <a3 as Fetch<'a>>::WorldBorrows)

Source§

type DirectBorrows = (<a0 as Fetch<'a>>::DirectBorrows, <a1 as Fetch<'a>>::DirectBorrows, <a2 as Fetch<'a>>::DirectBorrows, <a3 as Fetch<'a>>::DirectBorrows)

Source§

unsafe fn borrow_world(&self, world: &'a World) -> Option<Self::WorldBorrows>

Source§

unsafe fn get_world( &self, borrows: &Self::WorldBorrows, id: Id, ) -> Option<Self::Output>

Source§

unsafe fn borrow_direct( &self, entity: &'a Entity, ) -> Option<Self::DirectBorrows>

Source§

unsafe fn get(&self, borrows: &Self::DirectBorrows) -> Self::Output

Source§

impl<'a, a0: Fetch<'a>, a1: Fetch<'a>, a2: Fetch<'a>, a3: Fetch<'a>, a4: Fetch<'a>> Fetch<'a> for (a0, a1, a2, a3, a4)

Source§

type Output = (<a0 as Fetch<'a>>::Output, <a1 as Fetch<'a>>::Output, <a2 as Fetch<'a>>::Output, <a3 as Fetch<'a>>::Output, <a4 as Fetch<'a>>::Output)

Source§

type WorldBorrows = (<a0 as Fetch<'a>>::WorldBorrows, <a1 as Fetch<'a>>::WorldBorrows, <a2 as Fetch<'a>>::WorldBorrows, <a3 as Fetch<'a>>::WorldBorrows, <a4 as Fetch<'a>>::WorldBorrows)

Source§

type DirectBorrows = (<a0 as Fetch<'a>>::DirectBorrows, <a1 as Fetch<'a>>::DirectBorrows, <a2 as Fetch<'a>>::DirectBorrows, <a3 as Fetch<'a>>::DirectBorrows, <a4 as Fetch<'a>>::DirectBorrows)

Source§

unsafe fn borrow_world(&self, world: &'a World) -> Option<Self::WorldBorrows>

Source§

unsafe fn get_world( &self, borrows: &Self::WorldBorrows, id: Id, ) -> Option<Self::Output>

Source§

unsafe fn borrow_direct( &self, entity: &'a Entity, ) -> Option<Self::DirectBorrows>

Source§

unsafe fn get(&self, borrows: &Self::DirectBorrows) -> Self::Output

Source§

impl<'a, a0: Fetch<'a>, a1: Fetch<'a>, a2: Fetch<'a>, a3: Fetch<'a>, a4: Fetch<'a>, a5: Fetch<'a>> Fetch<'a> for (a0, a1, a2, a3, a4, a5)

Source§

type Output = (<a0 as Fetch<'a>>::Output, <a1 as Fetch<'a>>::Output, <a2 as Fetch<'a>>::Output, <a3 as Fetch<'a>>::Output, <a4 as Fetch<'a>>::Output, <a5 as Fetch<'a>>::Output)

Source§

type WorldBorrows = (<a0 as Fetch<'a>>::WorldBorrows, <a1 as Fetch<'a>>::WorldBorrows, <a2 as Fetch<'a>>::WorldBorrows, <a3 as Fetch<'a>>::WorldBorrows, <a4 as Fetch<'a>>::WorldBorrows, <a5 as Fetch<'a>>::WorldBorrows)

Source§

type DirectBorrows = (<a0 as Fetch<'a>>::DirectBorrows, <a1 as Fetch<'a>>::DirectBorrows, <a2 as Fetch<'a>>::DirectBorrows, <a3 as Fetch<'a>>::DirectBorrows, <a4 as Fetch<'a>>::DirectBorrows, <a5 as Fetch<'a>>::DirectBorrows)

Source§

unsafe fn borrow_world(&self, world: &'a World) -> Option<Self::WorldBorrows>

Source§

unsafe fn get_world( &self, borrows: &Self::WorldBorrows, id: Id, ) -> Option<Self::Output>

Source§

unsafe fn borrow_direct( &self, entity: &'a Entity, ) -> Option<Self::DirectBorrows>

Source§

unsafe fn get(&self, borrows: &Self::DirectBorrows) -> Self::Output

Source§

impl<'a, a0: Fetch<'a>, a1: Fetch<'a>, a2: Fetch<'a>, a3: Fetch<'a>, a4: Fetch<'a>, a5: Fetch<'a>, a6: Fetch<'a>> Fetch<'a> for (a0, a1, a2, a3, a4, a5, a6)

Source§

type Output = (<a0 as Fetch<'a>>::Output, <a1 as Fetch<'a>>::Output, <a2 as Fetch<'a>>::Output, <a3 as Fetch<'a>>::Output, <a4 as Fetch<'a>>::Output, <a5 as Fetch<'a>>::Output, <a6 as Fetch<'a>>::Output)

Source§

type WorldBorrows = (<a0 as Fetch<'a>>::WorldBorrows, <a1 as Fetch<'a>>::WorldBorrows, <a2 as Fetch<'a>>::WorldBorrows, <a3 as Fetch<'a>>::WorldBorrows, <a4 as Fetch<'a>>::WorldBorrows, <a5 as Fetch<'a>>::WorldBorrows, <a6 as Fetch<'a>>::WorldBorrows)

Source§

type DirectBorrows = (<a0 as Fetch<'a>>::DirectBorrows, <a1 as Fetch<'a>>::DirectBorrows, <a2 as Fetch<'a>>::DirectBorrows, <a3 as Fetch<'a>>::DirectBorrows, <a4 as Fetch<'a>>::DirectBorrows, <a5 as Fetch<'a>>::DirectBorrows, <a6 as Fetch<'a>>::DirectBorrows)

Source§

unsafe fn borrow_world(&self, world: &'a World) -> Option<Self::WorldBorrows>

Source§

unsafe fn get_world( &self, borrows: &Self::WorldBorrows, id: Id, ) -> Option<Self::Output>

Source§

unsafe fn borrow_direct( &self, entity: &'a Entity, ) -> Option<Self::DirectBorrows>

Source§

unsafe fn get(&self, borrows: &Self::DirectBorrows) -> Self::Output

Source§

impl<'a, a0: Fetch<'a>, a1: Fetch<'a>, a2: Fetch<'a>, a3: Fetch<'a>, a4: Fetch<'a>, a5: Fetch<'a>, a6: Fetch<'a>, a7: Fetch<'a>> Fetch<'a> for (a0, a1, a2, a3, a4, a5, a6, a7)

Source§

type Output = (<a0 as Fetch<'a>>::Output, <a1 as Fetch<'a>>::Output, <a2 as Fetch<'a>>::Output, <a3 as Fetch<'a>>::Output, <a4 as Fetch<'a>>::Output, <a5 as Fetch<'a>>::Output, <a6 as Fetch<'a>>::Output, <a7 as Fetch<'a>>::Output)

Source§

type WorldBorrows = (<a0 as Fetch<'a>>::WorldBorrows, <a1 as Fetch<'a>>::WorldBorrows, <a2 as Fetch<'a>>::WorldBorrows, <a3 as Fetch<'a>>::WorldBorrows, <a4 as Fetch<'a>>::WorldBorrows, <a5 as Fetch<'a>>::WorldBorrows, <a6 as Fetch<'a>>::WorldBorrows, <a7 as Fetch<'a>>::WorldBorrows)

Source§

type DirectBorrows = (<a0 as Fetch<'a>>::DirectBorrows, <a1 as Fetch<'a>>::DirectBorrows, <a2 as Fetch<'a>>::DirectBorrows, <a3 as Fetch<'a>>::DirectBorrows, <a4 as Fetch<'a>>::DirectBorrows, <a5 as Fetch<'a>>::DirectBorrows, <a6 as Fetch<'a>>::DirectBorrows, <a7 as Fetch<'a>>::DirectBorrows)

Source§

unsafe fn borrow_world(&self, world: &'a World) -> Option<Self::WorldBorrows>

Source§

unsafe fn get_world( &self, borrows: &Self::WorldBorrows, id: Id, ) -> Option<Self::Output>

Source§

unsafe fn borrow_direct( &self, entity: &'a Entity, ) -> Option<Self::DirectBorrows>

Source§

unsafe fn get(&self, borrows: &Self::DirectBorrows) -> Self::Output

Source§

impl<'a, a0: Fetch<'a>, a1: Fetch<'a>, a2: Fetch<'a>, a3: Fetch<'a>, a4: Fetch<'a>, a5: Fetch<'a>, a6: Fetch<'a>, a7: Fetch<'a>, a8: Fetch<'a>> Fetch<'a> for (a0, a1, a2, a3, a4, a5, a6, a7, a8)

Source§

type Output = (<a0 as Fetch<'a>>::Output, <a1 as Fetch<'a>>::Output, <a2 as Fetch<'a>>::Output, <a3 as Fetch<'a>>::Output, <a4 as Fetch<'a>>::Output, <a5 as Fetch<'a>>::Output, <a6 as Fetch<'a>>::Output, <a7 as Fetch<'a>>::Output, <a8 as Fetch<'a>>::Output)

Source§

type WorldBorrows = (<a0 as Fetch<'a>>::WorldBorrows, <a1 as Fetch<'a>>::WorldBorrows, <a2 as Fetch<'a>>::WorldBorrows, <a3 as Fetch<'a>>::WorldBorrows, <a4 as Fetch<'a>>::WorldBorrows, <a5 as Fetch<'a>>::WorldBorrows, <a6 as Fetch<'a>>::WorldBorrows, <a7 as Fetch<'a>>::WorldBorrows, <a8 as Fetch<'a>>::WorldBorrows)

Source§

type DirectBorrows = (<a0 as Fetch<'a>>::DirectBorrows, <a1 as Fetch<'a>>::DirectBorrows, <a2 as Fetch<'a>>::DirectBorrows, <a3 as Fetch<'a>>::DirectBorrows, <a4 as Fetch<'a>>::DirectBorrows, <a5 as Fetch<'a>>::DirectBorrows, <a6 as Fetch<'a>>::DirectBorrows, <a7 as Fetch<'a>>::DirectBorrows, <a8 as Fetch<'a>>::DirectBorrows)

Source§

unsafe fn borrow_world(&self, world: &'a World) -> Option<Self::WorldBorrows>

Source§

unsafe fn get_world( &self, borrows: &Self::WorldBorrows, id: Id, ) -> Option<Self::Output>

Source§

unsafe fn borrow_direct( &self, entity: &'a Entity, ) -> Option<Self::DirectBorrows>

Source§

unsafe fn get(&self, borrows: &Self::DirectBorrows) -> Self::Output

Source§

impl<'a, a0: Fetch<'a>, a1: Fetch<'a>, a2: Fetch<'a>, a3: Fetch<'a>, a4: Fetch<'a>, a5: Fetch<'a>, a6: Fetch<'a>, a7: Fetch<'a>, a8: Fetch<'a>, a9: Fetch<'a>> Fetch<'a> for (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)

Source§

type Output = (<a0 as Fetch<'a>>::Output, <a1 as Fetch<'a>>::Output, <a2 as Fetch<'a>>::Output, <a3 as Fetch<'a>>::Output, <a4 as Fetch<'a>>::Output, <a5 as Fetch<'a>>::Output, <a6 as Fetch<'a>>::Output, <a7 as Fetch<'a>>::Output, <a8 as Fetch<'a>>::Output, <a9 as Fetch<'a>>::Output)

Source§

type WorldBorrows = (<a0 as Fetch<'a>>::WorldBorrows, <a1 as Fetch<'a>>::WorldBorrows, <a2 as Fetch<'a>>::WorldBorrows, <a3 as Fetch<'a>>::WorldBorrows, <a4 as Fetch<'a>>::WorldBorrows, <a5 as Fetch<'a>>::WorldBorrows, <a6 as Fetch<'a>>::WorldBorrows, <a7 as Fetch<'a>>::WorldBorrows, <a8 as Fetch<'a>>::WorldBorrows, <a9 as Fetch<'a>>::WorldBorrows)

Source§

type DirectBorrows = (<a0 as Fetch<'a>>::DirectBorrows, <a1 as Fetch<'a>>::DirectBorrows, <a2 as Fetch<'a>>::DirectBorrows, <a3 as Fetch<'a>>::DirectBorrows, <a4 as Fetch<'a>>::DirectBorrows, <a5 as Fetch<'a>>::DirectBorrows, <a6 as Fetch<'a>>::DirectBorrows, <a7 as Fetch<'a>>::DirectBorrows, <a8 as Fetch<'a>>::DirectBorrows, <a9 as Fetch<'a>>::DirectBorrows)

Source§

unsafe fn borrow_world(&self, world: &'a World) -> Option<Self::WorldBorrows>

Source§

unsafe fn get_world( &self, borrows: &Self::WorldBorrows, id: Id, ) -> Option<Self::Output>

Source§

unsafe fn borrow_direct( &self, entity: &'a Entity, ) -> Option<Self::DirectBorrows>

Source§

unsafe fn get(&self, borrows: &Self::DirectBorrows) -> Self::Output

Implementors§

Source§

impl<'a, A: Fetch<'a, Output = bool>, B: Fetch<'a, Output = bool>> Fetch<'a> for And<A, B>

Source§

impl<'a, A: Fetch<'a, Output = bool>, B: Fetch<'a, Output = bool>> Fetch<'a> for Or<A, B>

Source§

impl<'a, F: Fetch<'a>> Fetch<'a> for OptionFetch<F>

Source§

impl<'a, F: Fetch<'a, Output = bool>> Fetch<'a> for Not<F>

Source§

impl<'a, F: Filter> Fetch<'a> for FilterFetch<F>

Source§

impl<'a, T: Component + PartialEq> Fetch<'a> for Equal<T>

Source§

impl<'a, T: Component> Fetch<'a> for FetchRead<T>

Source§

type Output = &'a T

Source§

type WorldBorrows = Borrow<'a, T>

Source§

type DirectBorrows = Borrow<'a, T>

Source§

impl<'a, T: Component> Fetch<'a> for FetchWrite<T>

Source§

type Output = &'a mut T

Source§

type WorldBorrows = BorrowMut<'a, T>

Source§

type DirectBorrows = BorrowMut<'a, T>

Source§

impl<'a, T: Component> Fetch<'a> for With<T>