Struct mr_bundle::Bundle

source ·
pub struct Bundle<M>
where M: Manifest,
{ /* private fields */ }
Expand description

A Manifest bundled together, optionally, with the Resources that it describes. This is meant to be serialized for standalone distribution, and deserialized by the receiver.

The manifest may describe locations of resources not included in the Bundle.

Implementations§

source§

impl<M> Bundle<M>
where M: Manifest,

source

pub fn new<R: IntoIterator<Item = (PathBuf, ResourceBytes)>>( manifest: M, resources: R, root_dir: PathBuf ) -> MrBundleResult<Self>

Creates a bundle containing a manifest and a collection of resources to be bundled together with the manifest.

The paths paired with each resource must correspond to the set of Location::Bundles specified in the Manifest::location(), or else this is not a valid bundle.

A base directory must also be supplied so that relative paths can be resolved into absolute ones.

source

pub fn new_unchecked<R: IntoIterator<Item = (PathBuf, ResourceBytes)>>( manifest: M, resources: R ) -> MrBundleResult<Self>

Create a bundle, asserting that all paths in the Manifest are absolute.

source

pub fn manifest(&self) -> &M

Accessor for the Manifest

source

pub fn update_manifest(self, manifest: M) -> MrBundleResult<Self>

Return a new Bundle with an updated manifest, subject to the same validation constraints as creating a new Bundle from scratch.

source

pub async fn read_from_file(path: &Path) -> MrBundleResult<Self>

Load a Bundle into memory from a file

source

pub async fn write_to_file(&self, path: &Path) -> MrBundleResult<()>

Write a Bundle to a file

source

pub async fn resolve( &self, location: &Location ) -> MrBundleResult<Cow<'_, ResourceBytes>>

Retrieve the bytes for a resource at a Location, downloading it if necessary

source

pub async fn resolve_all( &self ) -> MrBundleResult<HashMap<Location, Cow<'_, ResourceBytes>>>

Return the full set of resources specified by this bundle’s manifest. References to bundled resources can be returned directly, while all others will be fetched from the filesystem or the network.

source

pub async fn resolve_all_cloned( &self ) -> MrBundleResult<HashMap<Location, ResourceBytes>>

Resolve all resources, but with fully owned references

source

pub fn bundled_resources(&self) -> &BTreeMap<PathBuf, ResourceBytes>

Access the map of resources included in this bundle Bundled resources are also accessible via resolve or resolve_all, but using this method prevents a Clone

source

pub fn encode(&self) -> MrBundleResult<Vec<u8>>

An arbitrary and opaque encoding of the bundle data into a byte array

source

pub fn decode(bytes: &[u8]) -> MrBundleResult<Self>

Decode bytes produced by encode

Trait Implementations§

source§

impl<M> Debug for Bundle<M>
where M: Manifest + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, M> Deserialize<'de> for Bundle<M>

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<M> PartialEq for Bundle<M>
where M: Manifest + PartialEq,

source§

fn eq(&self, other: &Bundle<M>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<M> Serialize for Bundle<M>
where M: Manifest + Serialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<M> Eq for Bundle<M>
where M: Manifest + Eq,

source§

impl<M> StructuralPartialEq for Bundle<M>
where M: Manifest,

Auto Trait Implementations§

§

impl<M> Freeze for Bundle<M>
where M: Freeze,

§

impl<M> RefUnwindSafe for Bundle<M>
where M: RefUnwindSafe,

§

impl<M> Send for Bundle<M>
where M: Send,

§

impl<M> Sync for Bundle<M>
where M: Sync,

§

impl<M> Unpin for Bundle<M>
where M: Unpin,

§

impl<M> UnwindSafe for Bundle<M>
where M: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,