mod cache;
mod embedder;
mod modernbert;
mod rescorer;
mod summarizer;
#[cfg(feature = "code-neural")]
pub mod code;
pub use cache::{CacheConfig, EmbeddingCache, KvCache, LayerCache, SlidingWindowCache};
pub use embedder::{BatchDocumentEmbedder, DocumentEmbedding, EmbeddingConfig, ModernBertEmbedder};
pub use modernbert::{Device, ModernBertConfig, ModernBertModel};
pub use rescorer::{ModernBertRescorer, RankedPath, RescoringConfig, RescoringResult, ScoredPath};
pub use summarizer::{ScoredSentence, Summarizer, SummarizerConfig, Synopsis, SynopsisSource};
pub type Result<T> = std::result::Result<T, NeuralError>;
#[derive(Debug, thiserror::Error)]
pub enum NeuralError {
#[error("Failed to load model: {0}")]
ModelLoad(String),
#[error("Tokenization error: {0}")]
Tokenization(String),
#[error("Inference error: {0}")]
Inference(String),
#[error("Device not available: {0}")]
DeviceNotAvailable(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("Candle error: {0}")]
Candle(String),
}
impl From<candle_core::Error> for NeuralError {
fn from(e: candle_core::Error) -> Self {
NeuralError::Candle(e.to_string())
}
}