pub struct Loader { /* private fields */ }
Expand description
Manages loading of Mélodium packages.
The loader take care of managing package dependencies, loading inner elements of packages, and building a coherent Collection.
Loading can be made through the load
-ing functions, and then final collection rendered using build()
.
This loader aims to be lazy, please read carefully the behavior of each load
-ing function in order to make best
use of them.
Implementations§
Source§impl Loader
impl Loader
pub fn new(config: LoadingConfig) -> Self
Sourcepub fn load_package(
&self,
requirement: &PackageRequirement,
) -> LoadingResult<()>
pub fn load_package( &self, requirement: &PackageRequirement, ) -> LoadingResult<()>
Loads the given package, according to requirements.
This function does not load any package content on its own, see Self::load, Self::load_all or the functions of LoaderTrait to get elements required loaded.
Sourcepub fn load_raw(
&self,
raw_content: Arc<Vec<u8>>,
) -> LoadingResult<Arc<dyn PackageInfo>>
pub fn load_raw( &self, raw_content: Arc<Vec<u8>>, ) -> LoadingResult<Arc<dyn PackageInfo>>
Loads the given raw package content.
Returns the name of the package and its main entry point, if any.
This function does not load any package content on its own, see Self::load, Self::load_all or the functions of LoaderTrait to get elements required loaded.
Sourcepub fn load(
&self,
identifier_requirement: &IdentifierRequirement,
) -> LoadingResult<Identifier>
pub fn load( &self, identifier_requirement: &IdentifierRequirement, ) -> LoadingResult<Identifier>
Load the given identifier.
Sourcepub fn load_all(&self) -> LoadingResult<()>
pub fn load_all(&self) -> LoadingResult<()>
Load all the elements from all the packages.
Packages concerned have to be already loaded through Self::load_package of Self::load_raw functions.
Sourcepub fn build(&self) -> LoadingResult<Arc<Collection>>
pub fn build(&self) -> LoadingResult<Arc<Collection>>
Proceed to build of coherent collection.
pub fn packages(&self) -> Vec<Arc<dyn PackageInfo>>
pub fn collection(&self) -> RwLockReadGuard<'_, Collection>
pub fn get_with_load( &self, identifier_requirement: &IdentifierRequirement, ) -> LoadingResult<Entry>
Trait Implementations§
Source§impl Loader for Loader
impl Loader for Loader
fn load_context( &self, identifier_requirement: &IdentifierRequirement, ) -> LoadingResult<Arc<dyn Context>>
fn load_function( &self, identifier_requirement: &IdentifierRequirement, ) -> LoadingResult<Arc<dyn Function>>
fn load_model( &self, identifier_requirement: &IdentifierRequirement, ) -> LoadingResult<Arc<dyn Model>>
fn load_treatment( &self, identifier_requirement: &IdentifierRequirement, ) -> LoadingResult<Arc<dyn Treatment>>
Auto Trait Implementations§
impl !Freeze for Loader
impl !RefUnwindSafe for Loader
impl Send for Loader
impl Sync for Loader
impl Unpin for Loader
impl !UnwindSafe for Loader
Blanket Implementations§
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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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 more