Errors

The public Result<T> alias wraps the crate’s Error enum. The variants come from src/core/error.rs.

Error variants#

VariantWhen it appears
TokenBudgetExceededPublic error variant for budget failures; the current builder path usually selects or truncates instead of raising it.
InvalidConfigA provided configuration is not valid for the current operation.
ChunkingErrorChunk generation or parsing failed.
SerializationErrorSerde failed while parsing or writing JSON.
TokenCountErrorTokenizer initialization or counting failed.
MemoryErrorReserved public variant for memory-related failures.
ContextBuildErrorGeneral context assembly or model setup problem.
EmbeddingEmbedding generation failed.
ModelLocal text model initialization or inference failed.

Handling errors#

rust
use forgetless::{Error, Forgetless};

match Forgetless::new().add("content").run().await {
    Ok(result) => println!("{}", result.total_tokens),
    Err(Error::TokenBudgetExceeded { requested, available }) => {
        eprintln!("budget exceeded: {requested} > {available}");
    }
    Err(Error::InvalidConfig(message)) => eprintln!("invalid config: {message}"),
    Err(Error::ChunkingError(message)) => eprintln!("chunking failed: {message}"),
    Err(Error::TokenCountError(message)) => eprintln!("tokenizer failed: {message}"),
    Err(Error::ContextBuildError(message)) => eprintln!("context build failed: {message}"),
    Err(Error::Embedding(message)) => eprintln!("embedding failed: {message}"),
    Err(Error::Model(message)) => eprintln!("model failed: {message}"),
    Err(other) => eprintln!("{other}"),
}