pub enum ValueContainer {
Value(Value),
Reference(Reference),
}Variants§
Implementations§
Source§impl ValueContainer
impl ValueContainer
pub fn to_value(&self) -> Rc<RefCell<Value>>
pub fn is_type(&self) -> bool
Sourcepub fn allowed_type(&self) -> TypeContainer
pub fn allowed_type(&self) -> TypeContainer
Returns the allowed type of the value container
Sourcepub fn actual_type(&self) -> TypeContainer
pub fn actual_type(&self) -> TypeContainer
Returns the actual type of the contained value, resolving references if necessary.
pub fn new_value<T: Into<Value>>(value: T) -> ValueContainer
pub fn new_reference<T: Into<Reference>>(value: T) -> ValueContainer
Sourcepub fn maybe_reference(&self) -> Option<&Reference>
pub fn maybe_reference(&self) -> Option<&Reference>
Returns the contained Reference if it is a Reference, otherwise returns None.
Sourcepub fn with_maybe_reference<F, R>(&self, f: F) -> Option<R>
pub fn with_maybe_reference<F, R>(&self, f: F) -> Option<R>
Runs a closure with the contained Reference if it is a Reference, otherwise returns None.
Sourcepub fn reference_unchecked(&self) -> &Reference
pub fn reference_unchecked(&self) -> &Reference
Returns a reference to the contained Reference, panics if it is not a Reference.
Sourcepub fn upgrade_combined_value_to_reference(self) -> ValueContainer
pub fn upgrade_combined_value_to_reference(self) -> ValueContainer
Upgrades the ValueContainer to a ValueContainer::Reference if it is a ValueContainer::Value and if the contained value is a combined value, not a primitive value like integer, text, etc.
Trait Implementations§
Source§impl Add<&ValueContainer> for &ValueContainer
impl Add<&ValueContainer> for &ValueContainer
Source§type Output = Result<ValueContainer, ValueError>
type Output = Result<ValueContainer, ValueError>
+ operator.Source§impl Add for ValueContainer
impl Add for ValueContainer
Source§type Output = Result<ValueContainer, ValueError>
type Output = Result<ValueContainer, ValueError>
+ operator.Source§impl Apply for ValueContainer
impl Apply for ValueContainer
Source§fn apply(
&self,
args: &[ValueContainer],
) -> Result<Option<ValueContainer>, ExecutionError>
fn apply( &self, args: &[ValueContainer], ) -> Result<Option<ValueContainer>, ExecutionError>
Source§fn apply_single(
&self,
arg: &ValueContainer,
) -> Result<Option<ValueContainer>, ExecutionError>
fn apply_single( &self, arg: &ValueContainer, ) -> Result<Option<ValueContainer>, ExecutionError>
Source§impl Clone for ValueContainer
impl Clone for ValueContainer
Source§fn clone(&self) -> ValueContainer
fn clone(&self) -> ValueContainer
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ValueContainer
impl Debug for ValueContainer
Source§impl<'a> Deserialize<'a> for ValueContainer
impl<'a> Deserialize<'a> for ValueContainer
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'a>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'a>,
Source§impl Display for ValueContainer
impl Display for ValueContainer
Source§impl From<&ValueContainer> for DatexExpression
impl From<&ValueContainer> for DatexExpression
Source§fn from(value: &ValueContainer) -> Self
fn from(value: &ValueContainer) -> Self
Converts a ValueContainer into a DatexExpression AST. This AST can then be further processed or decompiled into human-readable DATEX code.
Source§impl<'a> From<MapKey<'a>> for ValueContainer
impl<'a> From<MapKey<'a>> for ValueContainer
Source§impl From<OwnedMapKey> for ValueContainer
impl From<OwnedMapKey> for ValueContainer
Source§fn from(key: OwnedMapKey) -> Self
fn from(key: OwnedMapKey) -> Self
Source§impl From<TypeContainer> for ValueContainer
impl From<TypeContainer> for ValueContainer
Source§fn from(type_container: TypeContainer) -> Self
fn from(type_container: TypeContainer) -> Self
Source§impl Hash for ValueContainer
impl Hash for ValueContainer
Source§impl Identity for ValueContainer
Identity checks only returns true if two references are identical.
Values are never identical to references or other values.
impl Identity for ValueContainer
Identity checks only returns true if two references are identical. Values are never identical to references or other values.
Source§impl Neg for ValueContainer
impl Neg for ValueContainer
Source§impl PartialEq for ValueContainer
Partial equality for ValueContainer is identical to Hash behavior:
Identical references are partially equal, value-equal values are also partially equal.
A pointer and a value are never partially equal.
impl PartialEq for ValueContainer
Partial equality for ValueContainer is identical to Hash behavior: Identical references are partially equal, value-equal values are also partially equal. A pointer and a value are never partially equal.
Source§impl Serialize for ValueContainer
impl Serialize for ValueContainer
Source§impl StructuralEq for ValueContainer
Structural equality checks the structural equality of the underlying values, collapsing
references to their current resolved values.
impl StructuralEq for ValueContainer
Structural equality checks the structural equality of the underlying values, collapsing references to their current resolved values.
Source§fn structural_eq(&self, other: &Self) -> bool
fn structural_eq(&self, other: &Self) -> bool
Source§impl Sub<&ValueContainer> for &ValueContainer
impl Sub<&ValueContainer> for &ValueContainer
Source§type Output = Result<ValueContainer, ValueError>
type Output = Result<ValueContainer, ValueError>
- operator.Source§impl Sub for ValueContainer
impl Sub for ValueContainer
Source§type Output = Result<ValueContainer, ValueError>
type Output = Result<ValueContainer, ValueError>
- operator.Source§impl TryFrom<&DatexExpression> for ValueContainer
impl TryFrom<&DatexExpression> for ValueContainer
Source§impl ValueEq for ValueContainer
Value equality checks the value equality of the underlying values, collapsing
references to their current resolved values.
impl ValueEq for ValueContainer
Value equality checks the value equality of the underlying values, collapsing references to their current resolved values.
impl Eq for ValueContainer
Auto Trait Implementations§
impl Freeze for ValueContainer
impl !RefUnwindSafe for ValueContainer
impl !Send for ValueContainer
impl !Sync for ValueContainer
impl Unpin for ValueContainer
impl !UnwindSafe for ValueContainer
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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 moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);