pub struct NodeError {
pub code: String,
pub message: String,
pub retryable: bool,
pub backoff_ms: Option<u64>,
pub details: Option<ErrorDetail>,
/* private fields */
}Expand description
Error type emitted by Greentic nodes.
Fields§
§code: StringMachine readable error code.
message: StringHuman readable message explaining the failure.
retryable: boolWhether the failure is retryable by the runtime.
backoff_ms: Option<u64>Optional backoff duration in milliseconds for the next retry.
details: Option<ErrorDetail>Optional structured error detail payload.
Implementations§
Source§impl NodeError
impl NodeError
Sourcepub fn new(code: impl Into<String>, message: impl Into<String>) -> NodeError
pub fn new(code: impl Into<String>, message: impl Into<String>) -> NodeError
Constructs a non-retryable failure with the supplied code and message.
Sourcepub fn with_retry(self, backoff_ms: Option<u64>) -> NodeError
pub fn with_retry(self, backoff_ms: Option<u64>) -> NodeError
Marks the error as retryable with an optional backoff value.
Sourcepub fn with_detail(self, detail: ErrorDetail) -> NodeError
pub fn with_detail(self, detail: ErrorDetail) -> NodeError
Attaches structured details to the error.
Sourcepub fn with_detail_text(self, detail: impl Into<String>) -> NodeError
pub fn with_detail_text(self, detail: impl Into<String>) -> NodeError
Attaches a textual detail payload to the error.
Sourcepub fn with_detail_binary(self, detail: Vec<u8>) -> NodeError
pub fn with_detail_binary(self, detail: Vec<u8>) -> NodeError
Attaches a binary detail payload to the error.
Sourcepub fn with_source<E>(self, source: E) -> NodeError
pub fn with_source<E>(self, source: E) -> NodeError
Attaches a source error to the failure for debugging purposes.
Sourcepub fn detail(&self) -> Option<&ErrorDetail>
pub fn detail(&self) -> Option<&ErrorDetail>
Returns the structured details, when available.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for NodeError
impl<'de> Deserialize<'de> for NodeError
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<NodeError, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<NodeError, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Error for NodeError
Available on crate feature std only.
impl Error for NodeError
Available on crate feature
std only.Source§fn source(&self) -> Option<&(dyn Error + 'static)>
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
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Source§impl JsonSchema for NodeError
impl JsonSchema for NodeError
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreSource§impl Serialize for NodeError
impl Serialize for NodeError
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for NodeError
impl !RefUnwindSafe for NodeError
impl Send for NodeError
impl Sync for NodeError
impl Unpin for NodeError
impl !UnwindSafe for NodeError
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> FromBase64 for Twhere
T: for<'de> Deserialize<'de>,
impl<T> FromBase64 for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<C> SignWithKey<String> for Cwhere
C: ToBase64,
impl<C> SignWithKey<String> for Cwhere
C: ToBase64,
fn sign_with_key(self, key: &impl SigningAlgorithm) -> Result<String, Error>
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.