1#![allow(async_fn_in_trait)]
2pub mod lance;
3pub mod metadata;
4pub mod traits;
5
6#[cfg(test)]
7mod tests;
8
9use std::fmt;
10
11#[derive(Debug)]
13pub enum StorageError {
14 Io(String),
15 Serde(serde_json::Error),
16 Parquet(String),
17 Invalid(String),
18 Lance(String),
19 QueryError(String),
20}
21
22impl fmt::Display for StorageError {
23 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
24 match self {
25 StorageError::Io(msg) => write!(f, "IO error: {}", msg),
26 StorageError::Serde(msg) => write!(f, "Serialization error: {}", msg),
27 StorageError::Parquet(msg) => write!(f, "Parquet error: {}", msg),
28 StorageError::Invalid(msg) => write!(f, "Invalid data: {}", msg),
29 StorageError::Lance(msg) => write!(f, "Lance error: {}", msg),
30 StorageError::QueryError(msg) => write!(f, "Query error: {}", msg),
31 }
32 }
33}
34
35impl std::error::Error for StorageError {}
36
37pub type StorageResult<T> = Result<T, StorageError>;
38
39use std::sync::Once;
41
42static INIT: Once = Once::new();
43
44pub fn init() {
45 INIT.call_once(|| {
46 let env = env_logger::Env::default().default_filter_or("debug");
48
49 let _ = env_logger::Builder::from_env(env).try_init();
51 });
52}