Skip to main content

StructuredLogBuilder

Struct StructuredLogBuilder 

Source
pub struct StructuredLogBuilder { /* private fields */ }
Expand description

Concurrent accumulator for StructuredLog. Cheap to Clone (the storage is Arc-shared); the runtime threads it through RuntimeContext and every emission site forwards through it.

Implementations§

Source§

impl StructuredLogBuilder

Source

pub fn emit_annotate( &self, span: SpanId, shell: &str, marker: &str, text: &str, location: Option<&IrSpan>, )

Source

pub fn emit_log( &self, span: SpanId, shell: &str, marker: &str, message: &str, location: Option<&IrSpan>, )

Source

pub fn emit_warning( &self, span: SpanId, shell: &str, marker: &str, message: &str, location: Option<&IrSpan>, )

Source

pub fn emit_error( &self, span: SpanId, shell: &str, marker: &str, message: &str, location: Option<&IrSpan>, )

Source

pub fn emit_cancelled( &self, span: SpanId, shell: Option<&str>, shell_marker: Option<&str>, reason: &CancelReason, )

Emit a cancelled event on the span the VM was in when it observed the cancel token flipping. Carries the reason recorded by whoever called cancel_with(...). Pushes a C sigil into the per-test progress sliding window so live TUI viewers see the cancel land in the same place errors and timeouts do.

Source

pub fn emit_failure_progress(&self)

Push a Failure progress notification only. The structured failure information is carried in the FailureRecord passed to build().

Source

pub fn failure_record(&self, failure: &Failure) -> FailureRecord

Translate a runtime Failure into a FailureRecord, flattening the FailureContext enum into the on-disk shape via its accessor methods. Vm failures produce full diagnostic context; PreVm failures (effect-resolution errors, pre-VM init, cleanup-shell spawn) land with the surrounding span and empty stack / tail / vars - the artifact stays well-formed.

Source

pub fn cancellation_record(&self, c: &Cancellation) -> CancellationRecord

Translate a runtime Cancellation into a CancellationRecord.

Source§

impl StructuredLogBuilder

Source

pub fn emit_send( &self, span: SpanId, shell: &str, marker: &str, data: &str, location: Option<&IrSpan>, )

Source

pub fn emit_recv( &self, span: SpanId, shell: &str, marker: &str, data: &str, location: Option<&IrSpan>, )

Source

pub fn emit_sleep_start( &self, span: SpanId, shell: &str, marker: &str, duration: Duration, location: Option<&IrSpan>, )

Source

pub fn emit_sleep_done( &self, span: SpanId, shell: &str, marker: &str, location: Option<&IrSpan>, )

Source§

impl StructuredLogBuilder

Source

pub fn open_span( &self, kind: SpanKind, parent: Option<SpanId>, location: Option<&IrSpan>, ) -> SpanGuard

Open a span and return a guard that closes it on drop. The caller must keep the guard alive for the span’s lifetime; passing the id (guard.id()) to children is fine. Drop on ? propagation closes cleanly; for a tighter end_ts, use SpanGuard::close() explicitly.

Source

pub fn close_span(&self, id: SpanId)

Close a span by id. Idempotent - see close_span_inner. Used to pin a span’s end_ts to its actual semantic boundary when the owning SpanGuard’s drop point would otherwise be deferred (the failing-effect path through try_guards! is the canonical case).

Source

pub fn set_fn_call_result(&self, id: SpanId, result: &str)

Attach a return value to an in-flight FnCall span. Called from exec_call on the success path before the span closes; failed calls leave result as None so the row title falls back to name/arity.

Source

pub fn resolve_stack(&self, leaf: SpanId) -> Vec<StackFrame>

Walk parent pointers from leaf back to a root span and return the frames in root-to-leaf order. Used at failure-construction time to snapshot the active call chain.

Source

pub fn open_markers_span(&self, location: Option<&IrSpan>) -> SpanGuard

Open the synthetic markers root span. Always opened (per design); viewer filters out empty markers roots.

Source

pub fn open_multimatch_span( &self, parent: SpanId, shell: &str, location: Option<&IrSpan>, ) -> SpanGuard

Open a multi-match span as a child of parent. Carries the owning shell’s display name; the viewer keys on this span kind to apply the observation-vs-drain rule to inner Matched buffer events.

Source

pub fn open_marker_eval_span( &self, parent: SpanId, marker_kind: MarkerEvalKind, modifier: MarkerEvalModifier, decision: MarkerEvalDecision, location: Option<&IrSpan>, ) -> SpanGuard

Open a marker-eval span as a child of a markers root.

Source

pub fn emit_bool_check( &self, span: SpanId, evaluation: MarkerEvalDetail, location: Option<&IrSpan>, ) -> EventSeq

Emit the final truthy/falsy outcome event inside a marker-eval span. Mirrors the shape stored on MarkerRecording.evaluation. Returns the emitted event’s EventSeq so callers (e.g. replay_markers) can use it as a focus pointer.

Source

pub fn record_shell_spawn(&self, marker: &str, name: &str, command: &str)

Source

pub fn record_shell_terminate(&self, marker: &str)

Source

pub fn emit_shell_spawn( &self, span: SpanId, shell: &str, marker: &str, command: &str, location: Option<&IrSpan>, )

Source

pub fn emit_shell_ready( &self, span: SpanId, shell: &str, marker: &str, location: Option<&IrSpan>, )

Source

pub fn emit_shell_switch( &self, span: SpanId, shell: &str, marker: &str, location: Option<&IrSpan>, )

Source

pub fn emit_shell_terminate( &self, span: SpanId, shell: &str, marker: &str, location: Option<&IrSpan>, )

Source

pub fn push_fn_enter(&self, name: &str)

Source

pub fn push_fn_exit(&self)

Source

pub fn push_effect_setup(&self, name: &str)

Source

pub fn push_effect_teardown(&self)

Source

pub fn emit_effect_expose_shell( &self, span: SpanId, name: &str, target: &str, qualifier: Option<&str>, location: Option<&IrSpan>, )

Source

pub fn emit_effect_expose_var( &self, span: SpanId, name: &str, target: &str, qualifier: Option<&str>, value: &str, location: Option<&IrSpan>, )

Source§

impl StructuredLogBuilder

Source

pub fn emit_match_start( &self, span: SpanId, shell: &str, marker: &str, pattern: &str, is_regex: bool, effective: &IrTimeout, location: Option<&IrSpan>, )

Source

pub fn emit_match_done_record( &self, span: SpanId, shell: &str, marker: &str, matched: &str, elapsed: Duration, captures: Option<HashMap<String, String>>, buffer_seq: EventSeq, location: Option<&IrSpan>, )

Record a structured MatchDone event referencing a buffer event that was pushed (atomically with the consume operation) by OutputBuffer::consume_*. The buffer event push is the consumer’s responsibility - this method only emits the structured event + progress notification.

Source

pub fn emit_timeout( &self, span: SpanId, shell: &str, marker: &str, pattern: &str, effective: &IrTimeout, location: Option<&IrSpan>, )

Source

pub fn emit_fail_pattern_set( &self, span: SpanId, shell: &str, marker: &str, pattern: &str, is_regex: bool, location: Option<&IrSpan>, )

Source

pub fn emit_fail_pattern_cleared( &self, span: SpanId, shell: &str, marker: &str, location: Option<&IrSpan>, )

Source

pub fn emit_fail_pattern_triggered( &self, span: SpanId, shell: &str, marker: &str, pattern: &str, is_regex: bool, matched_line: &str, location: Option<&IrSpan>, )

Source

pub fn emit_timeout_set( &self, span: SpanId, shell: &str, marker: &str, timeout: &IrTimeout, previous: &IrTimeout, location: Option<&IrSpan>, )

Source

pub fn emit_multimatch_start( &self, span: SpanId, shell: &str, marker: &str, patterns: &[MultiMatchPattern], effective: &IrTimeout, location: Option<&IrSpan>, )

Emit the multi-match-start event for <{ ... }. patterns is in source order; the runtime will reference these indices from later multi-match-pattern-done and multi-match-timeout events.

Source

pub fn emit_multimatch_pattern_done( &self, span: SpanId, shell: &str, marker: &str, index: usize, elapsed: Duration, buffer_seq: EventSeq, location: Option<&IrSpan>, )

Emit a multi-match-pattern-done event for a single pattern within an in-flight multimatch block. buffer_seq references the BufferEventKind::Matched event pushed atomically with the pattern’s success under the buf lock; that event carries the matched text and offsets (single source of truth).

Source

pub fn emit_multimatch_done( &self, span: SpanId, shell: &str, marker: &str, advance_to: EventSeq, location: Option<&IrSpan>, )

Emit a multi-match-done event - the block satisfied every pattern. advance_to references the per-pattern Matched buffer event whose match ends farthest in the buffer (the single drain the runtime applies at block exit advances the cursor by len(before) + len(matched) of that referenced event).

Source

pub fn emit_multimatch_timeout( &self, span: SpanId, shell: &str, marker: &str, unmatched: &[usize], location: Option<&IrSpan>, )

Emit a multi-match-timeout event - the block deadline expired with at least one pattern still unmatched. unmatched is a list of indices into the original MultiMatchStart.patterns vec.

Source§

impl StructuredLogBuilder

Source

pub fn emit_var_let( &self, span: SpanId, shell: Option<&str>, marker: Option<&str>, name: &str, value: &str, location: Option<&IrSpan>, )

Source

pub fn emit_var_assign( &self, span: SpanId, shell: &str, marker: &str, name: &str, value: &str, previous: &str, location: Option<&IrSpan>, )

Source

pub fn emit_string_eval( &self, span: SpanId, shell: &str, marker: &str, result: &str, location: Option<&IrSpan>, )

Source

pub fn emit_interpolation( &self, span: SpanId, shell: Option<&str>, marker: Option<&str>, template: &str, result: &str, bindings: &[(String, String)], location: Option<&IrSpan>, )

Emit an interpolation event. Shell callers pass Some(shell) / Some(marker); pure callers (LogSink) pass None / None.

Source

pub fn emit_var_read( &self, span: SpanId, name: &str, value: &str, location: Option<&IrSpan>, )

Pure variable-read event. Used by LogSink to surface bare ${X}-style reads that resolve against scope/env. The result is the resolved string ("" when the var is undefined).

Source

pub fn emit_pure_match_start( &self, span: SpanId, shell: Option<&str>, marker: Option<&str>, value: &str, pattern: &str, is_regex: bool, location: Option<&IrSpan>, )

Pure string-match attempt. Emitted before a marker ?/= or a pure-match statement runs. Shell-bound callers (a pure-match statement inside a shell block) pass Some(shell) / Some(marker); shell-less callers (marker replay, test/effect preambles) pass None / None.

Source

pub fn emit_pure_match_done( &self, span: SpanId, shell: Option<&str>, marker: Option<&str>, matched: &str, captures: &HashMap<String, String>, location: Option<&IrSpan>, )

Pure string-match success. Shell context is threaded the same way as Self::emit_pure_match_start.

Source

pub fn emit_pure_match_failed( &self, span: SpanId, shell: Option<&str>, marker: Option<&str>, location: Option<&IrSpan>, )

Pure string-match failure (no match). Shell context is threaded the same way as Self::emit_pure_match_start.

Source§

impl StructuredLogBuilder

Source

pub fn new( progress_tx: ProgressTx, test_start: Instant, sources: SourceTable, project_root: Arc<Path>, ) -> Self

Source

pub fn current_seq(&self) -> EventSeq

Latest emitted seq, or 0 if no event has fired yet. Failures use this to point the structured-log artifact at the most recent event (typically a Timeout or FailPatternTriggered).

Source

pub fn push_event( &self, span: SpanId, shell: Option<&str>, shell_marker: Option<&str>, location: Option<&IrSpan>, kind: EventKind, ) -> EventSeq

Source

pub fn push_buffer_event( &self, shell: &str, shell_marker: &str, kind: BufferEventKind, ) -> EventSeq

Source

pub fn build( self, info: TestInfo, env: EnvInfo, outcome: TestOutcome, artifacts: Vec<ArtifactEntry>, ) -> StructuredLog

Trait Implementations§

Source§

impl Clone for StructuredLogBuilder

Source§

fn clone(&self) -> StructuredLogBuilder

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Paint for T
where T: ?Sized,

Source§

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 primary(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Primary].

§Example
println!("{}", value.primary());
Source§

fn fixed(&self, color: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Fixed].

§Example
println!("{}", value.fixed(color));
Source§

fn rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Rgb].

§Example
println!("{}", value.rgb(r, g, b));
Source§

fn black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Black].

§Example
println!("{}", value.black());
Source§

fn red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Red].

§Example
println!("{}", value.red());
Source§

fn green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Green].

§Example
println!("{}", value.green());
Source§

fn yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Yellow].

§Example
println!("{}", value.yellow());
Source§

fn blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Blue].

§Example
println!("{}", value.blue());
Source§

fn magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Magenta].

§Example
println!("{}", value.magenta());
Source§

fn cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Cyan].

§Example
println!("{}", value.cyan());
Source§

fn white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: White].

§Example
println!("{}", value.white());
Source§

fn bright_black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlack].

§Example
println!("{}", value.bright_black());
Source§

fn bright_red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightRed].

§Example
println!("{}", value.bright_red());
Source§

fn bright_green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightGreen].

§Example
println!("{}", value.bright_green());
Source§

fn bright_yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightYellow].

§Example
println!("{}", value.bright_yellow());
Source§

fn bright_blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlue].

§Example
println!("{}", value.bright_blue());
Source§

fn bright_magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.bright_magenta());
Source§

fn bright_cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightCyan].

§Example
println!("{}", value.bright_cyan());
Source§

fn bright_white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightWhite].

§Example
println!("{}", value.bright_white());
Source§

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>

Returns self with the bg() set to [Color :: Primary].

§Example
println!("{}", value.on_primary());
Source§

fn on_fixed(&self, color: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Fixed].

§Example
println!("{}", value.on_fixed(color));
Source§

fn on_rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Rgb].

§Example
println!("{}", value.on_rgb(r, g, b));
Source§

fn on_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Black].

§Example
println!("{}", value.on_black());
Source§

fn on_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Red].

§Example
println!("{}", value.on_red());
Source§

fn on_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Green].

§Example
println!("{}", value.on_green());
Source§

fn on_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Yellow].

§Example
println!("{}", value.on_yellow());
Source§

fn on_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Blue].

§Example
println!("{}", value.on_blue());
Source§

fn on_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Magenta].

§Example
println!("{}", value.on_magenta());
Source§

fn on_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Cyan].

§Example
println!("{}", value.on_cyan());
Source§

fn on_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: White].

§Example
println!("{}", value.on_white());
Source§

fn on_bright_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlack].

§Example
println!("{}", value.on_bright_black());
Source§

fn on_bright_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightRed].

§Example
println!("{}", value.on_bright_red());
Source§

fn on_bright_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightGreen].

§Example
println!("{}", value.on_bright_green());
Source§

fn on_bright_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightYellow].

§Example
println!("{}", value.on_bright_yellow());
Source§

fn on_bright_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlue].

§Example
println!("{}", value.on_bright_blue());
Source§

fn on_bright_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.on_bright_magenta());
Source§

fn on_bright_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightCyan].

§Example
println!("{}", value.on_bright_cyan());
Source§

fn on_bright_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightWhite].

§Example
println!("{}", value.on_bright_white());
Source§

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 bold(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Bold].

§Example
println!("{}", value.bold());
Source§

fn dim(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Dim].

§Example
println!("{}", value.dim());
Source§

fn italic(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Italic].

§Example
println!("{}", value.italic());
Source§

fn underline(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Underline].

§Example
println!("{}", value.underline());

Returns self with the attr() set to [Attribute :: Blink].

§Example
println!("{}", value.blink());

Returns self with the attr() set to [Attribute :: RapidBlink].

§Example
println!("{}", value.rapid_blink());
Source§

fn invert(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Invert].

§Example
println!("{}", value.invert());
Source§

fn conceal(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Conceal].

§Example
println!("{}", value.conceal());
Source§

fn strike(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Strike].

§Example
println!("{}", value.strike());
Source§

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 mask(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Mask].

§Example
println!("{}", value.mask());
Source§

fn wrap(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Wrap].

§Example
println!("{}", value.wrap());
Source§

fn linger(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Linger].

§Example
println!("{}", value.linger());
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.

Returns self with the quirk() set to [Quirk :: Clear].

§Example
println!("{}", value.clear());
Source§

fn resetting(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Resetting].

§Example
println!("{}", value.resetting());
Source§

fn bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Bright].

§Example
println!("{}", value.bright());
Source§

fn on_bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: OnBright].

§Example
println!("{}", value.on_bright());
Source§

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);
Source§

fn new(self) -> Painted<Self>
where Self: Sized,

Create a new Painted with a default Style. Read more
Source§

fn paint<S>(&self, style: S) -> Painted<&Self>
where S: Into<Style>,

Apply a style wholesale to self. Any previous style is replaced. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.