pub struct Wip<'facet_lifetime> { /* private fields */ }Expand description
A work-in-progress heap-allocated value
Implementations§
Source§impl Wip<'_>
impl Wip<'_>
Sourcepub fn can_put_f64(&self) -> bool
pub fn can_put_f64(&self) -> bool
Returns true if the current frame can accept a f64 into a supported numeric type.
Sourcepub fn try_put_f64(self, number: f64) -> Result<Self, ReflectError>
pub fn try_put_f64(self, number: f64) -> Result<Self, ReflectError>
Attempts to put a f64 into the current frame, converting to the underlying numeric type.
Source§impl Wip<'_>
impl Wip<'_>
Sourcepub fn variant(self, index: usize) -> Result<Self, ReflectError>
pub fn variant(self, index: usize) -> Result<Self, ReflectError>
Sourcepub fn variant_named(self, name: &str) -> Result<Self, ReflectError>
pub fn variant_named(self, name: &str) -> Result<Self, ReflectError>
Sourcepub fn selected_variant(&self) -> Option<Variant>
pub fn selected_variant(&self) -> Option<Variant>
Returns the currently selected variant for the enum in the current frame.
§Returns
Some(variant)if the current frame is an enum and a variant has been selected.Noneif the current frame is not an enum or no variant has been selected yet.
Source§impl<'facet_lifetime> Wip<'facet_lifetime>
impl<'facet_lifetime> Wip<'facet_lifetime>
Sourcepub fn put_peek(
self,
peek: Peek<'_, 'facet_lifetime>,
) -> Result<Wip<'facet_lifetime>, ReflectError>
pub fn put_peek( self, peek: Peek<'_, 'facet_lifetime>, ) -> Result<Wip<'facet_lifetime>, ReflectError>
Puts the value from a Peek into the current frame.
Sourcepub fn frames_count(&self) -> usize
pub fn frames_count(&self) -> usize
Returns the number of frames on the stack
Sourcepub fn alloc_shape(shape: &'static Shape) -> Result<Self, ReflectError>
pub fn alloc_shape(shape: &'static Shape) -> Result<Self, ReflectError>
Allocates a new value of the given shape
Sourcepub fn alloc<S: Facet<'facet_lifetime>>() -> Result<Self, ReflectError>
pub fn alloc<S: Facet<'facet_lifetime>>() -> Result<Self, ReflectError>
Allocates a new value of type S
Sourcepub fn innermost_shape(&self) -> &'static Shape
pub fn innermost_shape(&self) -> &'static Shape
Returns the innermost shape for the current frame If the current shape is a transparent wrapper, this returns the shape of the wrapped type Otherwise, returns the current shape
Sourcepub fn build(self) -> Result<HeapValue<'facet_lifetime>, ReflectError>
pub fn build(self) -> Result<HeapValue<'facet_lifetime>, ReflectError>
Asserts everything is initialized and that invariants are upheld (if any)
Sourcepub fn field(self, index: usize) -> Result<Self, ReflectError>
pub fn field(self, index: usize) -> Result<Self, ReflectError>
Selects a field of a struct or enum variant by index and pushes it onto the frame stack.
§Arguments
index- The index of the field to select.
§Returns
Ok(Self)if the field was successfully selected and pushed.Err(ReflectError)if the current frame is not a struct or an enum with a selected variant, or if the field doesn’t exist.
Sourcepub fn field_index(&self, name: &str) -> Option<usize>
pub fn field_index(&self, name: &str) -> Option<usize>
Sourcepub fn field_named(self, name: &str) -> Result<Self, ReflectError>
pub fn field_named(self, name: &str) -> Result<Self, ReflectError>
Selects a field of a struct or enum variant by name and pushes it onto the frame stack.
§Arguments
name- The name of the field to select.
§Returns
Ok(Self)if the field was successfully selected and pushed.Err(ReflectError)if the current frame is not a struct or an enum with a selected variant, or if the field doesn’t exist.
Sourcepub fn put<T: Facet<'facet_lifetime>>(
self,
t: T,
) -> Result<Wip<'facet_lifetime>, ReflectError>
pub fn put<T: Facet<'facet_lifetime>>( self, t: T, ) -> Result<Wip<'facet_lifetime>, ReflectError>
Sourcepub fn try_put<T: Facet<'facet_lifetime>>(
self,
t: T,
) -> Result<Wip<'facet_lifetime>, ReflectError>
pub fn try_put<T: Facet<'facet_lifetime>>( self, t: T, ) -> Result<Wip<'facet_lifetime>, ReflectError>
Sourcepub fn put_shape(
self,
src: PtrConst<'_>,
src_shape: &'static Shape,
) -> Result<Wip<'facet_lifetime>, ReflectError>
pub fn put_shape( self, src: PtrConst<'_>, src_shape: &'static Shape, ) -> Result<Wip<'facet_lifetime>, ReflectError>
Puts a value from a PtrConst with the given shape into the current frame.
Sourcepub fn parse(self, s: &str) -> Result<Self, ReflectError>
pub fn parse(self, s: &str) -> Result<Self, ReflectError>
Tries to parse the current frame’s value from a string
Sourcepub fn put_from_fn(
self,
default_in_place: DefaultInPlaceFn,
) -> Result<Self, ReflectError>
pub fn put_from_fn( self, default_in_place: DefaultInPlaceFn, ) -> Result<Self, ReflectError>
Puts a value using a provided DefaultInPlaceFn in the current frame.
Sourcepub fn put_default(self) -> Result<Self, ReflectError>
pub fn put_default(self) -> Result<Self, ReflectError>
Puts the default value in the current frame.
Sourcepub fn element_shape(&self) -> Result<&'static Shape, ReflectError>
pub fn element_shape(&self) -> Result<&'static Shape, ReflectError>
Returns the shape of the element type for a list/array
Sourcepub fn key_shape(&self) -> Result<&'static Shape, ReflectError>
pub fn key_shape(&self) -> Result<&'static Shape, ReflectError>
Returns the shape of the key type for a map
Sourcepub fn put_empty_list(self) -> Result<Self, ReflectError>
pub fn put_empty_list(self) -> Result<Self, ReflectError>
Creates an empty list without pushing any elements
Sourcepub fn put_empty_map(self) -> Result<Self, ReflectError>
pub fn put_empty_map(self) -> Result<Self, ReflectError>
Creates an empty map without pushing any entries
Sourcepub fn begin_pushback(self) -> Result<Self, ReflectError>
pub fn begin_pushback(self) -> Result<Self, ReflectError>
Begins pushback mode for a list, array, tuple struct, or enum variant tuple struct,
allowing elements to be added one by one.
For lists/arrays, initializes an empty container if needed.
For tuple structs/variants, does nothing (expects subsequent push calls).
Sourcepub fn begin_map_insert(self) -> Result<Self, ReflectError>
pub fn begin_map_insert(self) -> Result<Self, ReflectError>
Begins insertion mode for a map, allowing key-value pairs to be added one by one
Sourcepub fn push(self) -> Result<Self, ReflectError>
pub fn push(self) -> Result<Self, ReflectError>
Pushes a new element onto the list/array/tuple struct/tuple enum variant
This creates a new frame for the element. When this frame is popped, the element will be added to the list or the corresponding tuple field will be set.
Sourcepub fn push_some(self) -> Result<Self, ReflectError>
pub fn push_some(self) -> Result<Self, ReflectError>
Prepare to push the Some(T) variant of an Option<T>.
Sourcepub fn pop_some_push_none(self) -> Result<Self, ReflectError>
pub fn pop_some_push_none(self) -> Result<Self, ReflectError>
Pops a not-yet-initialized option frame, setting it to None in the parent
This is used to set an option to None instead of Some. Steps:
- Asserts the option frame is NOT initialized
- Frees the memory for the pushed value
- Pops the frame
- Sets the parent option to its default value (i.e., None)
- Pops the parent option (which is the actual
Option<T>, but no longer in option mode)
Sourcepub fn push_map_key(self) -> Result<Self, ReflectError>
pub fn push_map_key(self) -> Result<Self, ReflectError>
Pushes a new key frame for a map entry
This creates a new frame for the key. After setting the key value,
call push_map_value to create a frame for the corresponding value.
Sourcepub fn push_map_value(self) -> Result<Self, ReflectError>
pub fn push_map_value(self) -> Result<Self, ReflectError>
Pushes a new value frame for a map entry
This should be called after pushing and initializing a key frame. When the value frame is popped, the key-value pair will be added to the map.
Sourcepub fn pop(self) -> Result<Self, ReflectError>
pub fn pop(self) -> Result<Self, ReflectError>
Pops the current frame — goes back up one level
Sourcepub fn evict_tree(&mut self, frame: Frame) -> Frame
pub fn evict_tree(&mut self, frame: Frame) -> Frame
Evict a frame from istates, along with all its children
(because we’re about to use drop_in_place on it — not
yet though, we need to know the variant for enums, etc.)
Sourcepub fn path(&self) -> String
pub fn path(&self) -> String
Returns the current path in the JSON document as a string. For example: “$.users[0].name”
Sourcepub fn is_field_set(&self, index: usize) -> Result<bool, ReflectError>
pub fn is_field_set(&self, index: usize) -> Result<bool, ReflectError>
Returns true if the field at the given index is set (initialized) in the current frame.
Trait Implementations§
Auto Trait Implementations§
impl<'facet_lifetime> Freeze for Wip<'facet_lifetime>
impl<'facet_lifetime> RefUnwindSafe for Wip<'facet_lifetime>
impl<'facet_lifetime> !Send for Wip<'facet_lifetime>
impl<'facet_lifetime> !Sync for Wip<'facet_lifetime>
impl<'facet_lifetime> Unpin for Wip<'facet_lifetime>
impl<'facet_lifetime> !UnwindSafe for Wip<'facet_lifetime>
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<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§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 moreSource§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