pub trait Asset {
    type WeakType: Clone + Sync + Send;

    // Required methods
    fn to_weak(strong: &Self) -> Self::WeakType;
    fn from_weak(weak: &Self::WeakType) -> Option<Self>
       where Self: Sized;
}

Required Associated Types§

Required Methods§

source

fn to_weak(strong: &Self) -> Self::WeakType

source

fn from_weak(weak: &Self::WeakType) -> Option<Self>where Self: Sized,

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<T0: Asset + Sync + Send, T1: Asset + Sync + Send> Asset for (T0, T1)

§

type WeakType = (<T0 as Asset>::WeakType, <T1 as Asset>::WeakType)

source§

fn to_weak((a, b): &Self) -> Self::WeakType

source§

fn from_weak((a, b): &Self::WeakType) -> Option<Self>

source§

impl<T: Sync + Send + ?Sized> Asset for Arc<T>

§

type WeakType = Weak<T>

source§

fn to_weak(strong: &Self) -> Self::WeakType

source§

fn from_weak(weak: &Self::WeakType) -> Option<Self>

source§

impl<T: Asset + Sync + Send> Asset for Option<T>

§

type WeakType = Option<<T as Asset>::WeakType>

source§

fn to_weak(strong: &Self) -> Self::WeakType

source§

fn from_weak(weak: &Self::WeakType) -> Option<Self>

source§

impl<T: Asset + Sync + Send> Asset for Vec<T>

§

type WeakType = Vec<<T as Asset>::WeakType>

source§

fn to_weak(v: &Self) -> Self::WeakType

source§

fn from_weak(v: &Self::WeakType) -> Option<Self>

source§

impl<T: Asset + Sync + Send, E: Clone + Sync + Send> Asset for Result<T, E>

§

type WeakType = Result<<T as Asset>::WeakType, E>

source§

fn to_weak(strong: &Self) -> Self::WeakType

source§

fn from_weak(weak: &Self::WeakType) -> Option<Self>

Implementors§