Skip to content

Error Handling

The PaginatorError enum provides clear, actionable error messages:

use paginator_rs::{PaginatorError, PaginatorResult};
match result {
Ok(response) => println!("Success!"),
Err(PaginatorError::InvalidPage(page)) => {
eprintln!("Invalid page: {}. Page must be >= 1", page);
}
Err(PaginatorError::InvalidPerPage(per_page)) => {
eprintln!("Invalid per_page: {}. Must be between 1 and 100", per_page);
}
Err(PaginatorError::SerializationError(msg)) => {
eprintln!("Serialization error: {}", msg);
}
Err(PaginatorError::Custom(msg)) => {
eprintln!("Custom error: {}", msg);
}
}
VariantDescription
InvalidPage(u32)Page number is less than 1
InvalidPerPage(u32)Per-page value is outside 1-100 range
SerializationError(String)Failed to serialize/deserialize data
Custom(String)Custom error with a message

A type alias for convenience:

pub type PaginatorResult<T> = Result<T, PaginatorError>;

Cursor decoding can fail with a String error:

let result = CursorBuilder::new()
.from_encoded("invalid_base64");
match result {
Ok(builder) => { /* use builder */ }
Err(e) => eprintln!("Invalid cursor: {}", e),
}