pub struct AssetRegistry { /* private fields */ }Expand description
The named assets that the app loads by path, such as images, SVGs and fonts.
Set the registry with crate::Application::with_assets and read it with
crate::App::assets. Paths are exact lookup keys such as "icons/star.svg"; the registry
does not resolve them against the filesystem.
Each path has one AssetEntry and can be registered only once. Build a registry with
AssetRegistry::insert, AssetRegistry::extend or collect(), or convert an
AssetSource.
Implementations§
Source§impl AssetRegistry
impl AssetRegistry
Sourcepub fn insert(
&mut self,
path: impl Into<SharedString>,
asset: impl Into<AssetEntry>,
) -> Result<(), DuplicateAssetPath>
pub fn insert( &mut self, path: impl Into<SharedString>, asset: impl Into<AssetEntry>, ) -> Result<(), DuplicateAssetPath>
Adds the asset at path.
The asset can be Cow::Borrowed(&'static [u8]) for static bytes, Cow::Owned(Vec<u8>) for
bytes you already have, or a closure that returns them on demand (see FnAssetLoader).
§Errors
Returns DuplicateAssetPath if path is already registered. The existing entry is kept.
§Examples
let mut assets = AssetRegistry::default();
assets
.insert(
"icons/star.svg",
Cow::Borrowed(
&b"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 8 8\"><rect width=\"8\" height=\"8\"/></svg>"[..],
),
)
.unwrap();
assert!(assets.load("icons/star.svg").is_some());
assert!(assets.load("icons/missing.svg").is_none());
assert!(assets.insert("icons/star.svg", Cow::Borrowed(&b""[..])).is_err());Sourcepub fn load<'this>(
&'this self,
path: impl AsRef<str>,
) -> Option<Cow<'this, [u8]>>
pub fn load<'this>( &'this self, path: impl AsRef<str>, ) -> Option<Cow<'this, [u8]>>
Returns the bytes at path, or None if the path isn’t registered.
Preloaded entries are returned as Cow::Borrowed with no copy. An on-demand entry runs its
loader on each call, so the bytes may be read from disk again. An on-demand loader that
returns None makes this return None too.
Sourcepub fn extend<IterType, KeyType, EntryType>(
&mut self,
into_iter: IterType,
) -> Result<(), Vec<DuplicateAssetPath>>where
IterType: IntoIterator<Item = (KeyType, EntryType)>,
KeyType: AsRef<str>,
EntryType: Into<AssetEntry>,
pub fn extend<IterType, KeyType, EntryType>(
&mut self,
into_iter: IterType,
) -> Result<(), Vec<DuplicateAssetPath>>where
IterType: IntoIterator<Item = (KeyType, EntryType)>,
KeyType: AsRef<str>,
EntryType: Into<AssetEntry>,
Adds each (path, entry) pair in order.
§Errors
Returns the DuplicateAssetPath of every pair whose path was already registered, in
order. The other pairs are still added, and each duplicate is logged.
Trait Implementations§
Source§impl Default for AssetRegistry
impl Default for AssetRegistry
Source§impl From<Arc<dyn AssetSource>> for AssetRegistry
Converts the provided AssetSource into a fresh AssetRegistry where all entries in
the asset source are loaded OnDemand via AssetSource::iter_ondemand.
impl From<Arc<dyn AssetSource>> for AssetRegistry
Converts the provided AssetSource into a fresh AssetRegistry where all entries in
the asset source are loaded OnDemand via AssetSource::iter_ondemand.
Source§fn from(value: Arc<dyn AssetSource>) -> Self
fn from(value: Arc<dyn AssetSource>) -> Self
Source§impl<T: AssetSource + 'static> From<T> for AssetRegistry
impl<T: AssetSource + 'static> From<T> for AssetRegistry
Source§impl<KeyType, ValueType> FromIterator<(KeyType, ValueType)> for AssetRegistry
impl<KeyType, ValueType> FromIterator<(KeyType, ValueType)> for AssetRegistry
Source§fn from_iter<T: IntoIterator<Item = (KeyType, ValueType)>>(iter: T) -> Self
fn from_iter<T: IntoIterator<Item = (KeyType, ValueType)>>(iter: T) -> Self
Auto Trait Implementations§
impl !RefUnwindSafe for AssetRegistry
impl !UnwindSafe for AssetRegistry
impl Freeze for AssetRegistry
impl Send for AssetRegistry
impl Sync for AssetRegistry
impl Unpin for AssetRegistry
impl UnsafeUnpin for AssetRegistry
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
replaced by palette::chromatic_adaptation::AdaptIntoUnclamped
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
replaced by palette::chromatic_adaptation::AdaptIntoUnclamped
Source§impl<T, C> AdaptIntoUnclamped<T> for Cwhere
T: AdaptFromUnclamped<C>,
impl<T, C> AdaptIntoUnclamped<T> for Cwhere
T: AdaptFromUnclamped<C>,
Source§type Scalar = <T as AdaptFromUnclamped<C>>::Scalar
type Scalar = <T as AdaptFromUnclamped<C>>::Scalar
Source§fn adapt_into_unclamped_with<M>(self) -> Twhere
M: LmsToXyz<<C as AdaptIntoUnclamped<T>>::Scalar> + XyzToLms<<C as AdaptIntoUnclamped<T>>::Scalar>,
fn adapt_into_unclamped_with<M>(self) -> Twhere
M: LmsToXyz<<C as AdaptIntoUnclamped<T>>::Scalar> + XyzToLms<<C as AdaptIntoUnclamped<T>>::Scalar>,
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T, C> ComponentsInto<C> for T
impl<T, C> ComponentsInto<C> for T
Source§fn components_into(self) -> C
fn components_into(self) -> C
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more