pub mod car;
pub mod commit;
pub mod error;
pub mod mst;
pub use car::{CarBuilder, CarImporter};
pub use error::{AtmosError, Result};
pub use mst::storage::{
GlobalStats, MemoryMstStorage, MstStorage, MultiTenantConfig, MultiTenantConfigBuilder,
MultiTenantMstStorage, PdsStorage, RepoId, RepoStats, StorageBackend, StorageWrapper,
};
#[cfg(feature = "fjall")]
pub use mst::storage::{
CompressionAlgorithm, CompressionConfig, FjallMstStorage, FjallStorageConfig,
SerializationFormat,
};
pub use bytes::Bytes;
pub use cid::Cid;
pub use ipld_core::ipld::Ipld;
pub mod prelude {
pub use crate::car::utils::{create_test_ipld, load_car_file, save_car_file};
pub use crate::car::{CarBuilder, CarImporter};
pub use crate::error::{AtmosError, Result};
pub use crate::mst::storage::{
GlobalStats, MemoryMstStorage, MstStorage, MultiTenantConfig, MultiTenantConfigBuilder,
MultiTenantMstStorage, PdsStorage, RepoId, RepoStats, StorageBackend, StorageWrapper,
};
#[cfg(feature = "fjall")]
pub use crate::mst::storage::{
CompressionAlgorithm, CompressionConfig, FjallMstStorage, FjallStorageConfig,
SerializationFormat,
};
pub use bytes::Bytes;
pub use cid::Cid;
pub use ipld_core::ipld::Ipld;
}
#[cfg(test)]
mod tests {
use super::*;
use crate::car::utils;
#[tokio::test]
async fn test_library_integration() -> Result<()> {
let mut builder = CarBuilder::new();
let test_ipld = utils::create_test_ipld();
let cid = builder.add_cbor(&test_ipld)?;
builder.add_root(cid);
let importer = builder.build();
assert_eq!(importer.len(), 1);
assert!(importer.contains(&cid));
let decoded = importer.decode_cbor(&cid)?;
assert_eq!(decoded, test_ipld);
Ok(())
}
}