pub struct AppBundle(/* private fields */);
Expand description

A bundle of an AppManifest and collection of DNAs

Implementations§

source§

impl AppBundle

source

pub async fn new<R>( manifest: AppManifest, resources: R, root_dir: PathBuf ) -> Result<AppBundle, AppBundleError>
where R: IntoIterator<Item = (PathBuf, DnaBundle)>,

Create an AppBundle from a manifest and DNA files

source

pub fn decode(bytes: &[u8]) -> Result<AppBundle, AppBundleError>

Construct from raw bytes

source

pub fn into_inner(self) -> Bundle<AppManifest>

Convert to the inner Bundle

source

pub fn get_all_dnas_from_store( &self, dna_store: &impl DnaStore ) -> HashMap<HoloHash<Dna>, DnaFile>

Look up every installed_hash of every role, getting the DnaFiles from the DnaStore

source

pub async fn resolve_cells( self, dna_store: &impl DnaStore, agent: HoloHash<Agent>, membrane_proofs: HashMap<String, Arc<SerializedBytes>> ) -> Result<AppRoleResolution, AppBundleError>

Given a partial list of already available DnaFiles, fetch the missing others via mr_bundle::Location resolution

Methods from Deref<Target = Bundle<AppManifest>>§

source

pub fn manifest(&self) -> &M

Accessor for the Manifest

source

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

Write a Bundle to a file

source

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

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

source

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

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 ) -> Result<HashMap<Location, ResourceBytes>, MrBundleError>

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) -> Result<Vec<u8>, MrBundleError>

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

source

pub fn find_root_dir(&self, path: &Path) -> Result<PathBuf, MrBundleError>

Given that the Manifest is located at the given absolute path, find the absolute root directory for the “unpacked” Bundle directory. Useful when “imploding” a directory into a bundle to determine the default location of the generated Bundle file.

This will only be different than the Manifest path itself if the Manifest::path impl specifies a nested path.

Will return None if the path does not actually end with the manifest relative path, meaning that either the manifest file is misplaced within the unpacked directory, or an incorrect path was supplied.

source

pub async fn unpack_yaml( &self, base_path: &Path, force: bool ) -> Result<(), MrBundleError>

Create a directory which contains the manifest as a YAML file, and each resource written to its own file (as raw bytes) The paths of the resources are specified by the paths of the bundle, and the path of the manifest file is specified by the Manifest::path trait method implementation of the M type.

Trait Implementations§

source§

impl AsRef<Bundle<AppManifest>> for AppBundle

source§

fn as_ref(&self) -> &Bundle<AppManifest>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Borrow<Bundle<AppManifest>> for AppBundle

source§

fn borrow(&self) -> &Bundle<AppManifest>

Immutably borrows from an owned value. Read more
source§

impl Debug for AppBundle

source§

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

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

impl Deref for AppBundle

§

type Target = Bundle<AppManifest>

The resulting type after dereferencing.
source§

fn deref(&self) -> &<AppBundle as Deref>::Target

Dereferences the value.
source§

impl<'de> Deserialize<'de> for AppBundle

source§

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

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

impl From<Bundle<AppManifest>> for AppBundle

source§

fn from(original: Bundle<AppManifest>) -> AppBundle

Converts to this type from the input type.
source§

impl Serialize for AppBundle

source§

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

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

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> Any for T
where T: Any,

source§

fn into_any(self: Box<T>) -> Box<dyn Any>

source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

source§

fn type_name(&self) -> &'static str

source§

impl<T> AnySync for T
where T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

source§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for F
where W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

source§

fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FutureExt for T

source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
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> 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> LayoutRaw for T

source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
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> Upcastable for T
where T: Any + Send + Sync + 'static,

source§

fn upcast_any_ref(&self) -> &(dyn Any + 'static)

upcast ref
source§

fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)

upcast mut ref
source§

fn upcast_any_box(self: Box<T>) -> Box<dyn Any>

upcast boxed dyn
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

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> 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>,