Skip to main content

LaserError

Enum LaserError 

Source
#[non_exhaustive]
pub enum LaserError {
Show 42 variants PublishFailed(Box<PublishFailure>), Handler(String), HandlerConfig(String), Rejected(String), Timeout(&'static str), AmbiguousMutation(String), NoRespondTopic, StateStore(String), Config(&'static str), NoStream, Query(QueryError), Kv(KvError), Fork(ForkError), Session(SessionError), Graph(GraphError), Authz(AuthzError), Filter(FilterError), FilterFault { partition_id: u32, offset: u64, reason: FaultReason, }, FilterOversizedRecord { partition_id: u32, offset: u64, }, ConsumerGroupSetup { group_id: u32, name: String, identity: FilterGroupIdentity, source: Box<LaserError>, }, Checkpoint(Box<CheckpointError>), Codec(String), Invalid(String), Protocol(String), Command(CommandError), Unsupported { surface: &'static str, feature: Option<&'static str>, message: String, }, Integrity { reference: String, }, Signature(String), PolicyBlocked(String), StepUpRequired { scope: String, }, PolicyDeferred(String), NoCapableAgent { skill: String, }, NoInbox { agent: String, }, PresenceConflict { advertised: String, requested: String, }, RoutePrincipalMismatch { agent: String, expected: u32, actual: Option<u32>, }, FenceViolation { stale: u64, current: u64, }, BudgetExceeded { ceiling: u64, spent: u64, }, Cancelled { run: String, }, Quarantined { agent: String, }, Iggy(IggyError), Id(IdError), Provenance(ProvenanceError),
}
Expand description

The one error type every fallible SDK call returns.

LaserData-Cloud-served surfaces fail with their typed wire error nested intact (Query, Kv, Fork), so callers can match on the structured cause (QueryError::TooLarge { cap, .. }, KvError::InvalidKey, …) instead of parsing strings. Client-side failures keep their own variants: Codec (encode/decode), Invalid (validation), Protocol (unexpected reply shape). The classifier methods (is_retryable, is_unsupported, is_not_found) answer the common questions without matching variants.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

PublishFailed(Box<PublishFailure>)

A fluent or direct publish that gave up. Carries the cause, the target, the ranges that committed, and the records left unconfirmed.

§

Handler(String)

A transient handler-side failure a handler may return to request a retry (the reliable consumer retries it under the RetryPolicy). Deterministic wiring, startup, and configuration failures use HandlerConfig instead, which never retries.

§

HandlerConfig(String)

A deterministic handler wiring, startup, or configuration failure: a task that stopped before becoming ready, a join failure, an invalid inbox topic or task id, a missing correlation or agent id. Retrying cannot change the outcome, so it is never retryable (the reliable consumer dead-letters it at once rather than burning the retry budget).

§

Rejected(String)

§

Timeout(&'static str)

§

AmbiguousMutation(String)

A managed mutation’s outcome is unknown: the attempt timed out or the transport failed after dispatch, so the server may or may not have applied it. This is deliberately not generically retryable. The caller must inspect is_ambiguous_mutation and follow the operation-specific recovery contract.

§

NoRespondTopic

§

StateStore(String)

§

Config(&'static str)

§

NoStream

§

Query(QueryError)

LaserData Cloud answered a query/browse/control op with a typed failure.

§

Kv(KvError)

LaserData Cloud answered a key-value op with a typed failure.

§

Fork(ForkError)

LaserData Cloud answered a fork op with a typed failure.

§

Session(SessionError)

LaserData Cloud answered a session read with a typed failure.

§

Graph(GraphError)

LaserData Cloud answered a graph op with a typed failure.

§

Authz(AuthzError)

The streaming server answered an authorization op with a typed failure.

§

Filter(FilterError)

The streaming server or the filter catalog answered a consumer-filter operation with a typed failure.

§

FilterFault

A filtered read stopped in front of a record the filter could not evaluate under the stop fault policy. The record and everything after it stay unacknowledged.

Fields

§partition_id: u32
§offset: u64
§

FilterOversizedRecord

A matching record alone exceeds the filtered reply cap, so no page can carry it. The record and everything after it stay unacknowledged.

Fields

§partition_id: u32
§offset: u64
§

ConsumerGroupSetup

The consumer group was created, or already existed, but its filter could not be configured. The group stays as it is, unbound unless it ran a policy before, and no reader joined it. source is the typed catalog refusal or transport failure.

Fields

§group_id: u32
§name: String
§source: Box<LaserError>
§

Checkpoint(Box<CheckpointError>)

Iggy answered a destination or checkpoint operation with a typed failure.

§

Codec(String)

A client-side encode or decode failed (payload codec, wire envelope, reply bytes). Deterministic for a given input, so never retryable.

§

Invalid(String)

Client-side validation rejected the input before any round-trip (size caps, reserved keys, malformed identifiers).

§

Protocol(String)

The reply decoded but carried an outcome the request cannot accept (e.g. a scan outcome for a get). Indicates server/client skew.

§

Command(CommandError)

A managed endpoint returned its original result code and message.

§

Unsupported

The connected infrastructure does not provide the requested feature (Apache Iggy without LaserData Cloud, or a deployment whose backend does not advertise the sub-capability). Permanent by definition: gate the code path on Laser::capabilities instead of retrying. surface names the accessor the call came through and feature the sub-capability when one exists, so a log line says what was refused without parsing prose. Build with unsupported / unsupported_feature.

Fields

§surface: &'static str

The surface the refused call came through ("query", "kv", …).

§feature: Option<&'static str>

The sub-capability within the surface, when one exists ("cas_fenced", "keyword", "watch", …).

§message: String

What was asked and why it was refused.

§

Integrity

A claim-checked body failed its digest check: the blob store returned bytes whose SHA-256 does not match the BodyRef capsule’s. Never surfaced with the fetched bytes attached, so an integrity failure can never be mistaken for the body.

Fields

§reference: String

The capsule reference whose bytes failed verification.

§

Signature(String)

An envelope signature was absent where required, enrolled to no known key, or failed verification. The authorship and authorization gate, never retryable.

§

PolicyBlocked(String)

The enrolled ActionGovernor rejected the action before the effect ran. Never retryable: the policy, not the transport, said no.

§

StepUpRequired

The enrolled governor paused the action on a stronger approval. scope names the scope the approval must grant, so a handler can run an approval_gate and re-send. Never retryable as-is.

Fields

§scope: String
§

PolicyDeferred(String)

The enrolled governor held the action for later execution. Retryable by definition: later is the point.

§

NoCapableAgent

Capability routing found no live agent advertising skill. The caller retries after the registry refreshes, or routes elsewhere.

Fields

§skill: String
§

NoInbox

An advertised inbox route resolved a capable agent but the agent advertises no inbox topic in its live presence, so there is nowhere to address it. The caller waits for the agent to advertise, supplies an explicit InboxRoute::Fixed, or routes elsewhere. Never falls back to a shared topic name.

Fields

§agent: String
§

PresenceConflict

One physical connection may advertise one logical agent. A second agent would overwrite connection metadata and steal the first agent’s route.

Fields

§advertised: String
§requested: String
§

RoutePrincipalMismatch

A route selected an agent claim whose live connection is not bound to the authenticated principal the caller required.

Fields

§agent: String
§expected: u32
§actual: Option<u32>
§

FenceViolation

A fenced write lost the fence: the held token is below the live sequence, so a newer holder owns the task. Not alarming and never retryable by the loser, it is the at-most-one-effective-writer gate doing its job.

Fields

§stale: u64
§current: u64
§

BudgetExceeded

A spend ceiling was reached. Not retryable until the ceiling is raised.

Fields

§ceiling: u64
§spent: u64
§

Cancelled

A registered run’s recorded cancel intent was observed at a step boundary. The completed steps’ compensations have run. Not retryable on the same run.

Fields

§

Quarantined

The agent was quarantined and may not act. Not retryable.

Fields

§agent: String
§

Iggy(IggyError)

§

Id(IdError)

§

Provenance(ProvenanceError)

Implementations§

Source§

impl LaserError

Source

pub fn publish_cause(&self) -> &Self

Source

pub fn rejected(reason: impl Into<String>) -> Self

A handler returns this to reject a message permanently: the reliable consumer dead-letters it immediately instead of retrying.

Source

pub fn unsupported(surface: &'static str, message: impl Into<String>) -> Self

An unsupported-surface refusal: the whole surface is absent on the connected deployment (e.g. any managed call against Apache Iggy).

Source

pub fn unsupported_feature( surface: &'static str, feature: &'static str, message: impl Into<String>, ) -> Self

An unsupported-feature refusal: the surface is served but this sub-capability is not advertised (e.g. kv.cas_fenced, query.keyword).

Source

pub fn is_retryable(&self) -> bool

Whether retrying the same call can succeed. Managed failures follow the canonical ResultCode classifier, while transport, handler, routing, timeout, and deferred-policy failures retain their local semantics.

Source

pub fn is_unavailable(&self) -> bool

Whether the failure was transient: the store was momentarily out of reach, a connection was refused or dropped, or a concurrency conflict was aborted. The identical request may succeed on a later attempt, so this is the flag a retry loop keys on when it wants only the recoverable class rather than everything is_retryable admits.

Source

pub fn is_not_leader(&self) -> bool

Whether the connected managed backend declined a conditional write because it does not own that operation’s mutation partition.

Source

pub fn is_unsupported(&self) -> bool

Whether the failure means the connected infrastructure (or backend) does not provide the feature at all. Permanent: do not retry, gate the code path instead.

Source

pub fn is_not_found(&self) -> bool

Whether the failure names a missing resource (index, fork). Distinct from a backend being down: the call worked, the thing is not there.

Source

pub fn is_version_skew(&self) -> bool

Whether the failure is wire-version skew between this SDK and the connected LaserData Cloud (the envelope’s v was not accepted). Permanent for this client build: upgrade or downshift instead of retrying.

Source

pub fn is_version_conflict(&self) -> bool

Whether a compare-and-swap lost its precondition (the key changed under it, or an expect_absent create lost a race). Not a failure to retry blindly: re-read the current value and version, recompute, and CAS again.

Source

pub fn is_ambiguous_mutation(&self) -> bool

Whether a managed mutation may already have reached the server. A generic retry loop must stop: recovery depends on the operation. In particular, an ambiguous lease acquisition must wait through its requested TTL before a fresh acquisition, because an applied grant can otherwise conflict with itself and the reply carries no token to renew or release it.

Source

pub fn is_stale(&self) -> bool

Whether a read-consistency barrier could not be met: a query projector or key-value fold has not yet applied the required source position. Retryable: the read model is catching up.

Source

pub fn is_permission_denied(&self) -> bool

Whether the connected server refused the operation for missing permissions (the substrate’s RBAC: global permissions plus per-stream and per-topic grants). The principal exists and authenticated, the grant does not. The fix is an admin conversation, not a retry: ask for the stream or topic permission the failing verb needs (read, send, create), or point the client at a stream the principal can use.

Source

pub fn is_stream_or_topic_not_found(&self) -> bool

Whether the target stream or topic does not exist FOR THIS PRINCIPAL. Under RBAC an existing stream the principal cannot see answers exactly like a missing one, so treat “not found” and “not permitted” as one user-facing question: does this principal have the stream, with the grant the verb needs? Especially relevant on deployments with server-managed dynamic streams, where the stream may simply not exist yet for this principal.

Source

pub fn is_no_capable_agent(&self) -> bool

Whether capability routing found no live agent for the skill.

Source

pub fn is_lease_lost(&self) -> bool

Whether a revocable lease was lost (expired, released, or re-acquired by another holder). For a fenced write, see is_fence_violation.

Source

pub fn is_fence_violation(&self) -> bool

Whether a fenced write lost the fence (a stale holder stepped aside). Not alarming, never retryable by the loser.

Source

pub fn is_budget_exceeded(&self) -> bool

Whether a spend ceiling was reached.

Source

pub fn is_quarantined(&self) -> bool

Whether the agent is quarantined.

Source

pub fn iggy_error_code(&self) -> Option<u32>

The Apache Iggy error code of the failure, when an Iggy error caused it. Reads through publish wrapping and a failed producer send, like the classifiers. Another SDK variant keeps its own classification.

Source

pub fn filter_reason(&self) -> Option<FilterErrorReason>

The typed consumer-filter cause, when the failure is one.

Source

pub fn code(&self) -> ResultCode

This failure’s place in the unified ResultCode space. A managed surface error projects onto its surface code, and a client-side failure maps to the closest code. Lets a caller branch on one dictionary instead of matching every variant, and mirrors the HTTP status the same error gets on the management surface.

Trait Implementations§

Source§

impl Debug for LaserError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for LaserError

Source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for LaserError

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<AuthzError> for LaserError

Source§

fn from(source: AuthzError) -> Self

Converts to this type from the input type.
Source§

impl From<CheckpointError> for LaserError

Source§

fn from(error: CheckpointError) -> Self

Converts to this type from the input type.
Source§

impl From<CommandError> for LaserError

Source§

fn from(error: CommandError) -> Self

Converts to this type from the input type.
Source§

impl From<DecodeError> for LaserError

Source§

fn from(error: DecodeError) -> Self

Converts to this type from the input type.
Source§

impl From<FilterError> for LaserError

Source§

fn from(source: FilterError) -> Self

Converts to this type from the input type.
Source§

impl From<ForkError> for LaserError

Source§

fn from(source: ForkError) -> Self

Converts to this type from the input type.
Source§

impl From<GraphError> for LaserError

Source§

fn from(source: GraphError) -> Self

Converts to this type from the input type.
Source§

impl From<IdError> for LaserError

Source§

fn from(source: IdError) -> Self

Converts to this type from the input type.
Source§

impl From<IggyError> for LaserError

Source§

fn from(source: IggyError) -> Self

Converts to this type from the input type.
Source§

impl From<IntentError> for LaserError

Source§

fn from(error: IntentError) -> Self

Converts to this type from the input type.
Source§

impl From<InvalidError> for LaserError

Source§

fn from(error: InvalidError) -> Self

Converts to this type from the input type.
Source§

impl From<KvError> for LaserError

Source§

fn from(source: KvError) -> Self

Converts to this type from the input type.
Source§

impl From<ProvenanceError> for LaserError

Source§

fn from(source: ProvenanceError) -> Self

Converts to this type from the input type.
Source§

impl From<QueryError> for LaserError

Source§

fn from(source: QueryError) -> Self

Converts to this type from the input type.
Source§

impl From<SessionError> for LaserError

Source§

fn from(source: SessionError) -> Self

Converts to this type from the input type.
Source§

impl From<TypedDecodeError> for LaserError

Folds into the codec family so records.next() composes with ? in a Result<_, LaserError> function, the position kept in the message.

Source§

fn from(error: TypedDecodeError) -> Self

Converts to this type from the input type.
Source§

impl From<ValidateError> for LaserError

Source§

fn from(error: ValidateError) -> Self

Converts to this type from the input type.

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

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

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> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
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