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

1use forgetless::{Error, Forgetless};
2
3match Forgetless::new().add("content").run().await {
4 Ok(result) => println!("{}", result.total_tokens),
5 Err(Error::TokenBudgetExceeded { requested, available }) => {
6 eprintln!("budget exceeded: {requested} > {available}");
7 }
8 Err(Error::InvalidConfig(message)) => eprintln!("invalid config: {message}"),
9 Err(Error::ChunkingError(message)) => eprintln!("chunking failed: {message}"),
10 Err(Error::TokenCountError(message)) => eprintln!("tokenizer failed: {message}"),
11 Err(Error::ContextBuildError(message)) => eprintln!("context build failed: {message}"),
12 Err(Error::Embedding(message)) => eprintln!("embedding failed: {message}"),
13 Err(Error::Model(message)) => eprintln!("model failed: {message}"),
14 Err(other) => eprintln!("{other}"),
15}