Skip to main content

Error

Enum Error 

Source
pub enum Error {
Show 16 variants Signature(String), Field(String), Module(String), Prediction(String), Serialization(String), AssertionFailed { field: Sym, description: &'static str, }, InvalidPattern(String), Io(Error), Json(Error), Utf8(Utf8Error), Storage(String), Memory { operation: &'static str, reason: String, suggestion: &'static str, }, Parse(String), Validation(String), Optimization(OptimizationDetails), Other(String),
}
Expand description

Main error type for Kkachi library

Variants§

§

Signature(String)

Signature-related errors

§

Field(String)

Field-related errors

§

Module(String)

Module execution errors

§

Prediction(String)

Prediction errors

§

Serialization(String)

Serialization errors

§

AssertionFailed

Assertion failure

Fields

§field: Sym

The field that failed assertion

§description: &'static str

Description of the assertion

§

InvalidPattern(String)

Invalid pattern (regex)

§

Io(Error)

I/O errors (only with std feature)

§

Json(Error)

JSON errors

§

Utf8(Utf8Error)

UTF-8 encoding errors

§

Storage(String)

Storage errors (DuckDB, etc.)

§

Memory

Memory store errors with actionable context.

Fields

§operation: &'static str

What operation failed.

§reason: String

Why it failed.

§suggestion: &'static str

What to do about it.

§

Parse(String)

Parse errors (for template parsing, etc.)

§

Validation(String)

Validation errors (for format validation, etc.)

§

Optimization(OptimizationDetails)

Optimization failure - prompt did not converge.

This is DISTINCT from library errors. Optimization errors are expected outcomes that can inform the optimization process. Use Error::is_optimization_error() to check, and Error::optimization_details() to extract context.

§

Other(String)

Generic error

Implementations§

Source§

impl Error

Source

pub fn storage(msg: impl Into<String>) -> Self

Create a storage error.

Source

pub fn memory( operation: &'static str, reason: impl Into<String>, suggestion: &'static str, ) -> Self

Create a memory error with operation context, reason, and suggestion.

Source

pub fn signature(msg: impl Into<String>) -> Self

Create a signature error

Source

pub fn field(msg: impl Into<String>) -> Self

Create a field error

Source

pub fn module(msg: impl Into<String>) -> Self

Create a module error

Source

pub fn prediction(msg: impl Into<String>) -> Self

Create a prediction error

Source

pub fn parse(msg: impl Into<String>) -> Self

Create a parse error

Source

pub fn validation(msg: impl Into<String>) -> Self

Create a validation error

Source

pub fn io(msg: impl Into<String>) -> Self

Create an I/O error with a custom message

Source

pub fn optimization(score: f64, iterations: u32, threshold: f64) -> Self

Create an optimization error (prompt did not converge).

Use this when optimization fails to meet the threshold, not for library/infrastructure errors.

Source

pub fn optimization_with_feedback( score: f64, iterations: u32, threshold: f64, feedback: impl Into<String>, ) -> Self

Create an optimization error with feedback.

Source

pub fn is_optimization_error(&self) -> bool

Check if this is an optimization error (prompt didn’t converge).

Optimization errors are expected and should inform the optimization process. They are distinct from library errors which indicate bugs or infrastructure issues.

§Example
match result {
    Ok(output) => handle_success(output),
    Err(e) if e.is_optimization_error() => {
        // Use the feedback to improve the prompt
        let details = e.optimization_details().unwrap();
        improve_prompt(details.feedback.as_deref());
    }
    Err(e) => {
        // This is a library bug - report it
        panic!("Library error: {}", e);
    }
}
Source

pub fn is_library_error(&self) -> bool

Check if this is a library/infrastructure error (not optimization).

Library errors indicate bugs or configuration issues in kkachi itself, not failures in the optimization process.

Source

pub fn optimization_details(&self) -> Option<&OptimizationDetails>

Get optimization details if this is an optimization error.

Returns None for library errors.

Source

pub fn optimization_details_mut(&mut self) -> Option<&mut OptimizationDetails>

Get mutable optimization details if this is an optimization error.

Source

pub fn is_recoverable(&self) -> bool

Check if this error can be recovered from (optimization errors can).

Source

pub fn category(&self) -> &'static str

Get the error category for logging/metrics.

Trait Implementations§

Source§

impl Debug for Error

Source§

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

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

impl Display for Error

Source§

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

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

impl Error for Error

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<Error> for Error

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for Error

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Utf8Error> for Error

Source§

fn from(source: Utf8Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Error

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnsafeUnpin for Error

§

impl !UnwindSafe for Error

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> 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> 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> 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> 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, 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.