Struct rin::ecs::operators::ReadOption[][src]

pub struct ReadOption<'a, T> where
    T: Component,
    <T as Component>::Storage: for<'s> Storage<'s, T>, 
{ /* fields omitted */ }

Operator that matches every entity no matter if it has the component or not with read only access to that component

It returns an option that will be None if the entity doesn’t have this component

for (pos, vel) in entities.iter_for::<(ReadOption<Position>, Read<Velocity>)>(){
    if let Some(pos) = pos {
        // ...
    }
}

Will select all entities that optionally have Position and have a Velocity component pos will be None for those that don’t have Position

Methods from Deref<Target = Option<<<T as Component>::Storage as Storage<'a, T>>::Get>>

#[must_use = "if you intended to assert that this has a value, consider `.unwrap()` instead"]
pub const fn is_some(&self) -> bool
1.0.0 (const: 1.48.0)[src]

Returns true if the option is a Some value.

Examples

let x: Option<u32> = Some(2);
assert_eq!(x.is_some(), true);

let x: Option<u32> = None;
assert_eq!(x.is_some(), false);

#[must_use = "if you intended to assert that this doesn't have a value, consider \ `.and_then(|| panic!(\"`Option` had a value when expected `None`\"))` instead"]
pub const fn is_none(&self) -> bool
1.0.0 (const: 1.48.0)[src]

Returns true if the option is a None value.

Examples

let x: Option<u32> = Some(2);
assert_eq!(x.is_none(), false);

let x: Option<u32> = None;
assert_eq!(x.is_none(), true);

#[must_use]
pub fn contains<U>(&self, x: &U) -> bool where
    U: PartialEq<T>, 
[src]

🔬 This is a nightly-only experimental API. (option_result_contains)

Returns true if the option is a Some value containing the given value.

Examples

#![feature(option_result_contains)]

let x: Option<u32> = Some(2);
assert_eq!(x.contains(&2), true);

let x: Option<u32> = Some(3);
assert_eq!(x.contains(&2), false);

let x: Option<u32> = None;
assert_eq!(x.contains(&2), false);

pub const fn as_ref(&self) -> Option<&T>1.0.0 (const: 1.48.0)[src]

Converts from &Option<T> to Option<&T>.

Examples

Converts an Option<String> into an Option<usize>, preserving the original. The map method takes the self argument by value, consuming the original, so this technique uses as_ref to first take an Option to a reference to the value inside the original.

let text: Option<String> = Some("Hello, world!".to_string());
// First, cast `Option<String>` to `Option<&String>` with `as_ref`,
// then consume *that* with `map`, leaving `text` on the stack.
let text_length: Option<usize> = text.as_ref().map(|s| s.len());
println!("still can print text: {:?}", text);

pub fn as_pin_ref(self: Pin<&Option<T>>) -> Option<Pin<&T>>1.33.0[src]

Converts from Pin<&Option<T>> to Option<Pin<&T>>.

pub fn as_pin_mut(self: Pin<&mut Option<T>>) -> Option<Pin<&mut T>>1.33.0[src]

Converts from Pin<&mut Option<T>> to Option<Pin<&mut T>>.

pub const fn iter(&self) -> Iter<'_, T>1.0.0[src]

Returns an iterator over the possibly contained value.

Examples

let x = Some(4);
assert_eq!(x.iter().next(), Some(&4));

let x: Option<u32> = None;
assert_eq!(x.iter().next(), None);

pub fn as_deref(&self) -> Option<&<T as Deref>::Target>1.40.0[src]

Converts from Option<T> (or &Option<T>) to Option<&T::Target>.

Leaves the original Option in-place, creating a new one with a reference to the original one, additionally coercing the contents via Deref.

Examples

let x: Option<String> = Some("hey".to_owned());
assert_eq!(x.as_deref(), Some("hey"));

let x: Option<String> = None;
assert_eq!(x.as_deref(), None);

Trait Implementations

impl<'a, T> DataAccesses for ReadOption<'a, T> where
    T: Component,
    <T as Component>::Storage: for<'s> Storage<'s, T>, 
[src]

impl<'a, T> Deref for ReadOption<'a, T> where
    T: Component,
    <T as Component>::Storage: for<'s> Storage<'s, T>, 
[src]

type Target = Option<<<T as Component>::Storage as Storage<'a, T>>::Get>

The resulting type after dereferencing.

impl<'a, T> FromComponent<'a, Option<<<T as Component>::Storage as Storage<'a, T>>::Get>> for ReadOption<'a, T> where
    T: Component,
    <T as Component>::Storage: for<'s> Storage<'s, T>, 
[src]

impl<'a, T> UnorderedData<'a> for ReadOption<'a, T> where
    T: Component,
    <T as Component>::Storage: for<'s> Storage<'s, T>, 
[src]

type Iter = IterOption<'a, T, <T as Component>::Storage, ReadGuardRef<'a, <T as Component>::Storage>>

type IterMut = IterOption<'a, T, <T as Component>::Storage, ReadGuardRef<'a, <T as Component>::Storage>>

type Components = T

type ComponentsRef = Option<<<T as Component>::Storage as Storage<'a, T>>::Get>

type Storage = StorageOption<'a, T, <T as Component>::Storage, ReadGuardRef<'a, <T as Component>::Storage>>

impl<'_, '_, T> SafeIter<'_> for ReadOption<'_, T> where
    T: Component,
    <T as Component>::Storage: for<'s> Storage<'s, T>, 
[src]

Auto Trait Implementations

impl<'a, T> RefUnwindSafe for ReadOption<'a, T> where
    <<T as Component>::Storage as Storage<'a, T>>::Get: RefUnwindSafe

impl<'a, T> Send for ReadOption<'a, T> where
    <<T as Component>::Storage as Storage<'a, T>>::Get: Send

impl<'a, T> Sync for ReadOption<'a, T> where
    <<T as Component>::Storage as Storage<'a, T>>::Get: Sync

impl<'a, T> Unpin for ReadOption<'a, T> where
    <<T as Component>::Storage as Storage<'a, T>>::Get: Unpin

impl<'a, T> UnwindSafe for ReadOption<'a, T> where
    <<T as Component>::Storage as Storage<'a, T>>::Get: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Any for T where
    T: Any
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Downcast for T where
    T: Any
[src]

impl<T> DowncastSync for T where
    T: Any + Send + Sync
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<V> IntoPnt<V> for V[src]

impl<V> IntoVec<V> for V[src]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 
[src]

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]