[][src]Trait mail::ContainedResourcesAccess

pub trait ContainedResourcesAccess {
    type Key: ToOwned + ?Sized;
    fn visit_resources<impl FnMut(&Self::Key, &Resource)>(
        &self,
        visitor: &mut impl FnMut(&Self::Key, &Resource)
    )
    where
        impl FnMut(&Self::Key, &Resource): FnMut(&Self::Key, &Resource)
;
fn access_resource_mut<R, impl FnOnce(Option<&mut Resource>) -> R>(
        &mut self,
        key: &Self::Key,
        modify: impl FnOnce(Option<&mut Resource>) -> R
    ) -> R
    where
        impl FnOnce(Option<&mut Resource>) -> R: FnOnce(Option<&mut Resource>) -> R
;
fn access_resource<R, impl FnOnce(Option<&Resource>) -> R>(
        &self,
        key: &Self::Key,
        modify: impl FnOnce(Option<&Resource>) -> R
    ) -> R
    where
        impl FnOnce(Option<&Resource>) -> R: FnOnce(Option<&Resource>) -> R
; }

Associated Types

type Key: ToOwned + ?Sized

Loading content...

Required methods

fn visit_resources<impl FnMut(&Self::Key, &Resource)>(
    &self,
    visitor: &mut impl FnMut(&Self::Key, &Resource)
) where
    impl FnMut(&Self::Key, &Resource): FnMut(&Self::Key, &Resource), 

Visit all resources.

This method is not allowed to be implemented in a way that it might visit resources, which are not accessable with [Self.access_resource_mut()]. This means that without e.g. a RwLock this can not visit resources in a Arc.

fn access_resource_mut<R, impl FnOnce(Option<&mut Resource>) -> R>(
    &mut self,
    key: &Self::Key,
    modify: impl FnOnce(Option<&mut Resource>) -> R
) -> R where
    impl FnOnce(Option<&mut Resource>) -> R: FnOnce(Option<&mut Resource>) -> R, 

Return a mut ref for a resource based on given key.

If a resource is visited in a Self.visit_resources() call and the state of self was not changes this method has to be able to return a mut reference to it.

To allow accessing resources in a mutext this does pass the mut ref to a closure instead of returning it.

fn access_resource<R, impl FnOnce(Option<&Resource>) -> R>(
    &self,
    key: &Self::Key,
    modify: impl FnOnce(Option<&Resource>) -> R
) -> R where
    impl FnOnce(Option<&Resource>) -> R: FnOnce(Option<&Resource>) -> R, 

Return a ref for a resource base on given key.

Loading content...

Implementations on Foreign Types

impl ContainedResourcesAccess for HashMap<String, Resource, RandomState>[src]

type Key = str

fn access_resource<R, impl FnOnce(Option<&Resource>) -> R>(
    &self,
    key: &<HashMap<String, Resource, RandomState> as ContainedResourcesAccess>::Key,
    modify: impl FnOnce(Option<&Resource>) -> R
) -> R where
    impl FnOnce(Option<&Resource>) -> R: FnOnce(Option<&Resource>) -> R, 
[src]

Return a ref for a resource base on given key.

impl ContainedResourcesAccess for Vec<Resource>[src]

type Key = usize

fn access_resource<R, impl FnOnce(Option<&Resource>) -> R>(
    &self,
    key: &<Vec<Resource> as ContainedResourcesAccess>::Key,
    modify: impl FnOnce(Option<&Resource>) -> R
) -> R where
    impl FnOnce(Option<&Resource>) -> R: FnOnce(Option<&Resource>) -> R, 
[src]

Return a ref for a resource base on given key.

Loading content...

Implementors

Loading content...