Struct Library
pub struct Library { /* private fields */ }Expand description
Represents a library where all modules were compiled into a MastForest.
A library exports a set of one or more procedures. Currently, all exported procedures belong to the same top-level namespace.
Implementations§
§impl Library
Constructors
impl Library
Constructors
pub fn new(
mast_forest: Arc<MastForest>,
exports: BTreeMap<Arc<Path>, LibraryExport>,
) -> Result<Library, LibraryError>
pub fn new( mast_forest: Arc<MastForest>, exports: BTreeMap<Arc<Path>, LibraryExport>, ) -> Result<Library, LibraryError>
pub fn with_advice_map(self, advice_map: AdviceMap) -> Library
pub fn with_advice_map(self, advice_map: AdviceMap) -> Library
Produces a new library with the existing MastForest and where all key/values in the
provided advice map are added to the internal advice map.
§impl Library
Public accessors
impl Library
Public accessors
pub fn digest(&self) -> &Word
pub fn digest(&self) -> &Word
Returns the [Word] representing the content hash of this library
pub fn exports(&self) -> impl Iterator<Item = &LibraryExport>
pub fn exports(&self) -> impl Iterator<Item = &LibraryExport>
Returns the fully qualified name and metadata of all procedures exported by the library.
pub fn num_exports(&self) -> usize
pub fn num_exports(&self) -> usize
Returns the number of exports in this library.
pub fn get_export_node_id(&self, path: impl AsRef<Path>) -> MastNodeId
pub fn get_export_node_id(&self, path: impl AsRef<Path>) -> MastNodeId
Returns a MAST node ID associated with the specified exported procedure.
§Panics
Panics if the specified procedure is not exported from this library.
pub fn is_reexport(&self, path: impl AsRef<Path>) -> bool
pub fn is_reexport(&self, path: impl AsRef<Path>) -> bool
Returns true if the specified exported procedure is re-exported from a dependency.
pub fn mast_forest(&self) -> &Arc<MastForest>
pub fn mast_forest(&self) -> &Arc<MastForest>
Returns a reference to the inner MastForest.
pub fn get_procedure_root_by_path(&self, path: impl AsRef<Path>) -> Option<Word>
pub fn get_procedure_root_by_path(&self, path: impl AsRef<Path>) -> Option<Word>
Returns the digest of the procedure with the specified name, or None if it was not found
in the library or its library path is malformed.
§impl Library
Conversions
impl Library
Conversions
pub fn module_infos(&self) -> impl Iterator<Item = ModuleInfo>
pub fn module_infos(&self) -> impl Iterator<Item = ModuleInfo>
Returns an iterator over the module infos of the library.
§impl Library
impl Library
pub const LIBRARY_EXTENSION: &'static str = "masl"
pub const LIBRARY_EXTENSION: &'static str = "masl"
File extension for the Assembly Library.
pub fn write_to_file(&self, path: impl AsRef<Path>) -> Result<(), Error>
pub fn write_to_file(&self, path: impl AsRef<Path>) -> Result<(), Error>
Write the library to a target file
NOTE: It is up to the caller to use the correct file extension, but there is no
specific requirement that the extension be set, or the same as
Self::LIBRARY_EXTENSION.
pub fn deserialize_from_file( path: impl AsRef<Path>, ) -> Result<Library, DeserializationError>
Trait Implementations§
§impl Arbitrary for Library
Available on crate feature arbitrary only.
impl Arbitrary for Library
arbitrary only.§type Parameters = ()
type Parameters = ()
arbitrary_with accepts for configuration
of the generated Strategy. Parameters must implement Default.§fn arbitrary_with(
_args: <Library as Arbitrary>::Parameters,
) -> <Library as Arbitrary>::Strategy
fn arbitrary_with( _args: <Library as Arbitrary>::Parameters, ) -> <Library as Arbitrary>::Strategy
§impl AsRef<Library> for KernelLibrary
impl AsRef<Library> for KernelLibrary
§impl Deserializable for Library
NOTE: Serialization of libraries is likely to be deprecated in a future release
impl Deserializable for Library
NOTE: Serialization of libraries is likely to be deprecated in a future release
§fn read_from<R>(source: &mut R) -> Result<Library, DeserializationError>where
R: ByteReader,
fn read_from<R>(source: &mut R) -> Result<Library, DeserializationError>where
R: ByteReader,
source, attempts to deserialize these bytes
into Self, and returns the result. Read more§fn min_serialized_size() -> usize
fn min_serialized_size() -> usize
§fn read_from_bytes(bytes: &[u8]) -> Result<Self, DeserializationError>
fn read_from_bytes(bytes: &[u8]) -> Result<Self, DeserializationError>
§fn read_from_bytes_with_budget(
bytes: &[u8],
budget: usize,
) -> Result<Self, DeserializationError>
fn read_from_bytes_with_budget( bytes: &[u8], budget: usize, ) -> Result<Self, DeserializationError>
Self from bytes with a byte budget limit. Read more§impl<'de> Deserialize<'de> for Library
Available on crate feature serde only.
impl<'de> Deserialize<'de> for Library
serde only.§fn deserialize<D>(
deserializer: D,
) -> Result<Library, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Library, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
§impl Serializable for Library
NOTE: Serialization of libraries is likely to be deprecated in a future release
impl Serializable for Library
NOTE: Serialization of libraries is likely to be deprecated in a future release
§fn write_into<W>(&self, target: &mut W)where
W: ByteWriter,
fn write_into<W>(&self, target: &mut W)where
W: ByteWriter,
self into bytes and writes these bytes into the target.§fn get_size_hint(&self) -> usize
fn get_size_hint(&self) -> usize
§impl Serialize for Library
Available on crate feature serde only.
impl Serialize for Library
serde only.§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
§impl TryFrom<Library> for KernelLibrary
impl TryFrom<Library> for KernelLibrary
§type Error = LibraryError
type Error = LibraryError
§fn try_from(
library: Library,
) -> Result<KernelLibrary, <KernelLibrary as TryFrom<Library>>::Error>
fn try_from( library: Library, ) -> Result<KernelLibrary, <KernelLibrary as TryFrom<Library>>::Error>
impl Eq for Library
impl StructuralPartialEq for Library
Auto Trait Implementations§
impl Freeze for Library
impl RefUnwindSafe for Library
impl Send for Library
impl Sync for Library
impl Unpin for Library
impl UnsafeUnpin for Library
impl UnwindSafe for Library
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read more