Skip to main content

TimeseriesEngine

Struct TimeseriesEngine 

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

Lite timeseries engine.

Not Send — owned by a single task. The NodeDbLite wrapper handles async bridging.

Implementations§

Source§

impl TimeseriesEngine

Source

pub fn compact_partitions( &mut self, collection: &str, ) -> Option<CompactionResult>

Compact partitions in a collection by merging small adjacent partitions.

Triggers when:

  • Partition count > compaction_partition_threshold (default 20), OR
  • Total size < 50% of expected size after merge

Merges consecutive sealed partitions in time order. The merged partition contains all rows sorted by timestamp.

Source

pub fn should_append_to_current_partition(&self, collection: &str) -> bool

Check if a collection should use size-based partitioning.

When partition_size_target_bytes > 0, flush appends to the current (last) partition if it hasn’t reached the target size. Otherwise, creates a new partition.

Returns true if the current partition should continue receiving data (i.e., don’t create a new partition on this flush).

Source

pub fn run_maintenance(&mut self, collection: &str) -> MaintenanceResult

Run all maintenance tasks for a collection: compaction + KV store compaction.

Call this during idle periods (no active queries, no active ingestion).

Source§

impl TimeseriesEngine

Source

pub fn new() -> Self

Create with Lite defaults.

Source

pub fn with_config(config: TieredPartitionConfig) -> Self

Create with custom config.

Source

pub fn set_battery_state(&mut self, state: BatteryState)

Update battery state (called by host application).

Source

pub fn collection_names(&self) -> Vec<&str>

Source

pub fn row_count(&self, collection: &str) -> usize

Source

pub fn memory_bytes(&self, collection: &str) -> usize

Source

pub fn partition_count(&self, collection: &str) -> usize

Source

pub fn catalog(&self) -> &SeriesCatalog

Source

pub fn config(&self) -> &TieredPartitionConfig

Source

pub fn decode_timestamps(block: &[u8]) -> Vec<i64>

Decode a flushed timestamp block (Gorilla-encoded).

Source

pub fn decode_values(block: &[u8]) -> Vec<f64>

Decode a flushed value block (Gorilla-encoded).

Source

pub fn decode_series_ids(block: &[u8]) -> Vec<SeriesId> ⓘ

Decode a flushed series_id block (raw LE u64).

Source§

impl TimeseriesEngine

Source

pub fn flush(&mut self, collection: &str) -> Option<FlushResult>

Flush a collection’s memtable to Gorilla-compressed KV entries.

Source§

impl TimeseriesEngine

Source

pub fn ingest_metric( &mut self, collection: &str, metric_name: &str, tags: Vec<(String, String)>, sample: MetricSample, ) -> bool

Ingest a metric sample.

Returns true if the memtable needs flushing (memory pressure).

Features:

  • Pre-sync downsampling: if sync_resolution_ms > 0, accumulates samples per resolution window and emits one averaged sample per window.
  • WAL append: if wal_enabled, appends raw sample to WAL for crash safety.
  • Battery-aware: if battery_aware and battery is low, doubles the flush threshold to defer I/O.
  • Burst detection: if ingestion rate > 10x baseline for > 30s, enters bulk import mode with higher flush threshold.
Source

pub fn ingest_batch( &mut self, collection: &str, metric_name: &str, tags: Vec<(String, String)>, samples: &[MetricSample], ) -> bool

Ingest a batch of samples for one series.

Source§

impl TimeseriesEngine

Source

pub fn enforce_storage_budget( &mut self, budget_bytes: u64, policy: BudgetPolicy, ) -> BudgetCheckResult

Check and enforce the storage budget.

Steps (in order, stop when within budget):

  1. Compact fragmented partitions (lossless)
  2. If still over: downsample oldest data (lossy)
  3. Last resort: surface StorageBudgetExceeded warning

Never silently purges data in Pattern C.

Source

pub fn total_storage_bytes(&self) -> u64

Total storage bytes across all collections (partition metadata sizes).

Source§

impl TimeseriesEngine

Source

pub fn plan_downsample(&self) -> Vec<DownsamplePlan>

Plan which partitions should be downsampled to save space.

Returns the oldest partitions sorted by min_ts. The caller reads each partition’s data from the KV store, calls downsample_data(), and writes the result back.

Source

pub fn downsample_data( timestamps: &[i64], values: &[f64], interval_ms: i64, ) -> (Vec<i64>, Vec<f64>)

Downsample raw timestamp+value data into coarser resolution.

The caller provides the decoded data from the KV store. This function averages values within each interval_ms bucket and returns the downsampled (timestamp, value) pairs.

This is a pure function — no side effects on the engine state.

Source

pub fn apply_downsample( &mut self, collection: &str, key_prefix: &str, new_row_count: u64, new_size_bytes: u64, )

Apply a completed downsample: update partition metadata after the caller has written the downsampled data back to the KV store.

Source§

impl TimeseriesEngine

Source

pub fn effective_sync_resolution(&self) -> u64

Compute the effective sync resolution based on battery state and configured adaptive behavior.

Normal: use sync_resolution_ms from config (0 = raw). Low battery: increase to 60_000 ms (1-minute averages). Charging: use config default.

Source§

impl TimeseriesEngine

Source

pub fn export_csv( &self, collection: &str, output_path: &Path, ) -> Result<BackupResult, Error>

Export a collection’s data as CSV (lightweight backup for Lite-C).

Writes timestamps and values from all flushed partitions and the current memtable to a CSV file. The caller provides the output path.

For full Parquet export, use the DataFusion integration layer.

Source§

impl TimeseriesEngine

Source

pub fn verify_retention_codec_compat(&self) -> bool

Verify that retention works correctly with cascading codec metadata.

Checks that:

  1. Partitions with codec chain metadata (column_stats with cascade codecs) can be retained by sync status.
  2. Codec metadata survives the retain-then-purge lifecycle.

Returns true if all partitions have valid metadata.

Source§

impl TimeseriesEngine

Source

pub fn scan( &self, collection: &str, range: &TimeRange, ) -> Vec<(i64, f64, SeriesId)>

Scan metric samples in a time range.

Source

pub fn aggregate_by_bucket( &self, collection: &str, range: &TimeRange, bucket_ms: i64, ) -> Vec<(i64, u64, f64, f64, f64)>

Aggregate over a time range with time_bucket grouping.

Source§

impl TimeseriesEngine

Source

pub fn purge_before_ms( &mut self, collection: &str, cutoff_ms: i64, ) -> Vec<String>

Drop the partitions of collection whose max_ts < cutoff_ms.

Unlike apply_retention, this method takes an explicit cutoff rather than reading it from config.retention_period_ms. Used by EnforceTimeseriesRetention, which names one collection and its cutoff. Other collections are untouched.

Source

pub fn apply_retention(&mut self, now_ms: i64) -> Vec<String>

Drop partitions older than the retention period.

Source

pub fn apply_retention_with_sync( &mut self, now_ms: i64, ) -> (Vec<String>, Vec<UnsyncedDropWarning>)

Apply retention with sync-awareness.

Default behavior (retain_until_synced = false): drops by age. Guarded behavior (retain_until_synced = true): keeps unsynced data.

Source§

impl TimeseriesEngine

Source

pub fn sync_watermark(&self, series_id: SeriesId) -> u64

Get the sync watermark for a series.

Source

pub fn acknowledge_sync(&mut self, collection: &str, max_synced_ts: u64)

Update sync watermark after Origin acknowledges a push.

Source

pub fn export_watermarks(&self) -> &HashMap<SeriesId, u64>

Get all current sync watermarks (for persistence).

Source

pub fn import_watermarks(&mut self, watermarks: HashMap<SeriesId, u64>)

Import watermarks from the KV store (cold start restore).

Source

pub fn dirty_collections(&self) -> Vec<&str>

Get collections that have unsynced data.

Source

pub fn assign_sync_lsn(&mut self) -> u64

Assign a sync LSN and advance the counter.

Source

pub fn build_sync_payload( &mut self, collection: &str, lite_id: &str, ) -> Option<TimeseriesPushMsg>

Build a sync push payload for a collection.

Source

pub fn sync_interval_ms(&self) -> u64

Get the configured sync interval in milliseconds.

Source§

impl TimeseriesEngine

Source

pub fn truncate_collection(&mut self, collection: &str) -> usize

Remove every sample of collection: the memtable, every flushed partition, the pending downsample windows, and the WAL entries that have not reached the flush watermark. The series catalog is shared across collections and stays as it is. Returns the number of rows that existed across the memtable and partitions; a collection the engine never saw reports zero.

Source§

impl TimeseriesEngine

Source

pub fn pending_wal_entries(&self, since_seq: u64) -> &[WalEntry]

Get pending WAL entries (for persistence to the KV store by the caller).

Source

pub fn advance_wal_watermark(&mut self, watermark: u64)

Advance the WAL watermark after successful persistence.

Source

pub fn compact_wal(&mut self)

Compact the WAL by removing entries below the flush watermark.

Source

pub fn replay_wal(&mut self, entries: &[WalEntry])

Replay WAL entries after a crash. Called on cold start.

Source

pub fn wal_seq(&self) -> u64

Current WAL sequence number.

Source

pub fn wal_watermark(&self) -> u64

Current WAL flush watermark.

Trait Implementations§

Source§

impl Default for TimeseriesEngine

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

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> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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

impl<T> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
Source§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
Source§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
Source§

impl<T> NodeDbMarker for T
where T: Send + Sync + ?Sized,

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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ZeroElement for T
where T: Default,