pub struct LibraryManifest {
pub lib_url: Url,
pub metadata: MetaData,
pub locators: BTreeMap<Url, ImplementationLocator>,
pub source_urls: BTreeMap<String, Url>,
}Expand description
LibraryManifest describes the contents of a Library that can be referenced from a flow
It is provided by libraries to help load and/or find implementations of processes
Fields§
§lib_url: Urlthe Url that this library implements
metadata: MetaDatametadata about a flow with author, version and usual fields
locators: BTreeMap<Url, ImplementationLocator>the locators map a lib reference to a ImplementationLocator for a function or flow
that can be used to load it or reference it.
source_urls: BTreeMap<String, Url>source_files is a map of:
Key: lib reference for functions or flows, as used in locators
Value: Url where the source file it was derived from is located
Implementations§
Source§impl LibraryManifest
impl LibraryManifest
Sourcepub fn new(lib_url: Url, metadata: MetaData) -> Self
pub fn new(lib_url: Url, metadata: MetaData) -> Self
Create a new, empty, LibraryManifest with the provided Metadata
Sourcepub fn load(
provider: &Arc<dyn Provider>,
lib_manifest_url: &Url,
) -> Result<(LibraryManifest, Url)>
pub fn load( provider: &Arc<dyn Provider>, lib_manifest_url: &Url, ) -> Result<(LibraryManifest, Url)>
load a LibraryManifest from lib_manifest_url, using provider to fetch the contents
§Errors
Returns an error if:
- The provided
lib_manifest_urlUrlcannot be resolved - The
providercannot fetch the contents from the resolved url - The fetched contents cannot be converted to a valid Utf8 String
- The Fetched Utf8 String contents of the
Urlare not a validLibraryManifest
Sourcepub fn add_locator(
&mut self,
implementation_path_relative: &str,
lib_reference_path: &str,
) -> Result<()>
pub fn add_locator( &mut self, implementation_path_relative: &str, lib_reference_path: &str, ) -> Result<()>
Add a locator to the LibraryManifest to allow resolving “lib://” lib reference Urls
for functions or flows to where the implementation resides within the library directory
structure (relative to the lib root).
Also add it to the list of source files lookups in the manifest if compiling with debug info
§Errors
Returns error if:
implementation_path_relativecannot be used to form aUrlreferencing a filelib_reference_pathcannot be used to form aUrlreferencing a library
Sourcepub fn remove_locator(&mut self, locator_url: &Url)
pub fn remove_locator(&mut self, locator_url: &Url)
Remove a locator from the manifest by its library URL.
If the locator is a RelativePath, the corresponding entry in source_urls is also removed.
If the locator does not exist, this method does nothing.
Sourcepub fn manifest_filename(base_dir: &Path) -> PathBuf
pub fn manifest_filename(base_dir: &Path) -> PathBuf
Given an output directory, return a PathBuf to the json format manifest that should be
generated inside it
Trait Implementations§
Source§impl Clone for LibraryManifest
impl Clone for LibraryManifest
Source§fn clone(&self) -> LibraryManifest
fn clone(&self) -> LibraryManifest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more