pub enum MemoryValue<F> {
Field(F),
U1(bool),
U8(u8),
U16(u16),
U32(u32),
U64(u64),
U128(u128),
}
Expand description
A single typed value in the Brillig VM’s memory.
Memory in the VM is strongly typed and can represent either a native field element or an integer of a specific bit width. This enum encapsulates all supported in-memory types and allows conversion between representations.
Variants§
Implementations§
Source§impl<F: Display> MemoryValue<F>
impl<F: Display> MemoryValue<F>
Source§impl<F: AcirField> MemoryValue<F>
impl<F: AcirField> MemoryValue<F>
Sourcepub fn new_from_field(value: F, bit_size: BitSize) -> Self
pub fn new_from_field(value: F, bit_size: BitSize) -> Self
Builds a memory value from a field element.
Sourcepub fn new_checked(value: F, bit_size: BitSize) -> Option<Self>
pub fn new_checked(value: F, bit_size: BitSize) -> Option<Self>
Builds a memory value from a field element, checking that the value is within the bit size.
Sourcepub fn to_field(&self) -> F
pub fn to_field(&self) -> F
Converts the memory value to a field element, independent of its type.
Sourcepub fn to_u128(&self) -> Result<u128, MemoryTypeError>
pub fn to_u128(&self) -> Result<u128, MemoryTypeError>
Converts the memory value to U128, if the value is an integer.
Sourcepub fn expect_field(self) -> Result<F, MemoryTypeError>
pub fn expect_field(self) -> Result<F, MemoryTypeError>
Extracts the field element from the memory value, if it is typed as field element.
pub(crate) fn expect_u1(self) -> Result<bool, MemoryTypeError>
pub(crate) fn expect_u8(self) -> Result<u8, MemoryTypeError>
pub(crate) fn expect_u16(self) -> Result<u16, MemoryTypeError>
pub(crate) fn expect_u32(self) -> Result<u32, MemoryTypeError>
pub(crate) fn expect_u64(self) -> Result<u64, MemoryTypeError>
pub(crate) fn expect_u128(self) -> Result<u128, MemoryTypeError>
Trait Implementations§
Source§impl<F: Clone> Clone for MemoryValue<F>
impl<F: Clone> Clone for MemoryValue<F>
Source§fn clone(&self) -> MemoryValue<F>
fn clone(&self) -> MemoryValue<F>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<F: Debug> Debug for MemoryValue<F>
impl<F: Debug> Debug for MemoryValue<F>
Source§impl<F: AcirField> Default for MemoryValue<F>
impl<F: AcirField> Default for MemoryValue<F>
Source§impl<F: Display> Display for MemoryValue<F>
impl<F: Display> Display for MemoryValue<F>
Source§impl<F: Ord> Ord for MemoryValue<F>
impl<F: Ord> Ord for MemoryValue<F>
Source§fn cmp(&self, other: &MemoryValue<F>) -> Ordering
fn cmp(&self, other: &MemoryValue<F>) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl<F: PartialEq> PartialEq for MemoryValue<F>
impl<F: PartialEq> PartialEq for MemoryValue<F>
Source§impl<F: PartialOrd> PartialOrd for MemoryValue<F>
impl<F: PartialOrd> PartialOrd for MemoryValue<F>
Source§impl<F: AcirField> TryFrom<MemoryValue<F>> for bool
impl<F: AcirField> TryFrom<MemoryValue<F>> for bool
Source§type Error = MemoryTypeError
type Error = MemoryTypeError
The type returned in the event of a conversion error.
Source§impl<F: AcirField> TryFrom<MemoryValue<F>> for u128
impl<F: AcirField> TryFrom<MemoryValue<F>> for u128
Source§type Error = MemoryTypeError
type Error = MemoryTypeError
The type returned in the event of a conversion error.
Source§impl<F: AcirField> TryFrom<MemoryValue<F>> for u32
impl<F: AcirField> TryFrom<MemoryValue<F>> for u32
Source§type Error = MemoryTypeError
type Error = MemoryTypeError
The type returned in the event of a conversion error.
Source§impl<F: AcirField> TryFrom<MemoryValue<F>> for u64
impl<F: AcirField> TryFrom<MemoryValue<F>> for u64
Source§type Error = MemoryTypeError
type Error = MemoryTypeError
The type returned in the event of a conversion error.
Source§impl<F: AcirField> TryFrom<MemoryValue<F>> for u8
impl<F: AcirField> TryFrom<MemoryValue<F>> for u8
Source§type Error = MemoryTypeError
type Error = MemoryTypeError
The type returned in the event of a conversion error.
impl<F: Copy> Copy for MemoryValue<F>
impl<F: Eq> Eq for MemoryValue<F>
impl<F> StructuralPartialEq for MemoryValue<F>
Auto Trait Implementations§
impl<F> Freeze for MemoryValue<F>where
F: Freeze,
impl<F> RefUnwindSafe for MemoryValue<F>where
F: RefUnwindSafe,
impl<F> Send for MemoryValue<F>where
F: Send,
impl<F> Sync for MemoryValue<F>where
F: Sync,
impl<F> Unpin for MemoryValue<F>where
F: Unpin,
impl<F> UnwindSafe for MemoryValue<F>where
F: UnwindSafe,
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§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>
Converts
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>
Converts
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,
Set the foreground color generically Read more
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Set the background color generically. Read more
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Change the background color to magenta
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Change the foreground color to the terminal default
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Change the background color to the terminal default
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Change the foreground color to bright black
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Change the background color to bright black
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Change the foreground color to bright red
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Change the background color to bright red
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Change the foreground color to bright green
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Change the background color to bright green
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Change the foreground color to bright yellow
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Change the background color to bright yellow
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Change the foreground color to bright blue
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Change the background color to bright blue
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright magenta
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright magenta
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright purple
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright purple
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Change the foreground color to bright cyan
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Change the background color to bright cyan
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Change the foreground color to bright white
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Change the background color to bright white
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Make the text blink (but fast!)
Hide the text
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Cross out the text
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
Set the foreground color at runtime. Only use if you do not know which color will be used at
compile-time. If the color is constant, use either [
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,
Set the background color at runtime. Only use if you do not know what color to use at
compile-time. If the color is constant, use either [
OwoColorize::bg
] or
a color-specific method, such as [OwoColorize::on_yellow
], Read more§fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the foreground color to a specific RGB value.
§fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the background color to a specific RGB value.
§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
Sets the foreground color to an RGB value.
§fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
Sets the background color to an RGB value.