pub mod blob;
mod canonical;
mod chunk_ids;
mod codec;
mod contract;
pub mod graph;
mod provenance;
mod space_table;
mod spans;
pub const REPACK_KIND_CHUNK_IDS: u8 = 0;
pub const REPACK_KIND_SPANS: u8 = 1;
pub use blob::{
BLOB_DATA_PAYLOAD_VERSION, BLOB_REF_NONE, BLOB_REFS_PAYLOAD_VERSION,
BLOB_SPAN_OVERLAY_PAYLOAD_VERSION, BlobDataTable, BlobRefRecord, BlobSpanEntry,
decode_blob_data_table, decode_blob_refs, decode_blob_span_overlay, encode_blob_data,
encode_blob_refs, encode_blob_span_overlay,
};
pub use canonical::{decode_chunks_canonical, encode_chunks_canonical};
pub use chunk_ids::{
decode_chunk_ids, decode_chunk_ids_intpack, encode_chunk_ids, encode_chunk_ids_intpack,
};
pub use contract::{SearchContract, decode_search_contract, encode_search_contract};
pub use provenance::{decode_provenance, encode_provenance};
pub use space_table::{
SPACE_DTYPE_F16, SPACE_DTYPE_F32, SPACE_DTYPE_I4, SPACE_DTYPE_I8, SPACE_TABLE_PAYLOAD_VERSION,
SpaceEntry, decode_space_table, encode_space_table,
};
pub use spans::{
OriginalSpan, decode_chunks_original_spans, decode_chunks_original_spans_intpack,
encode_chunks_original_spans, encode_chunks_original_spans_intpack,
};
pub fn decode_txt_streams(bytes: &[u8]) -> crate::Result<Vec<u8>> {
crate::encoding::decode_txt_streams_payload(bytes)
}
pub fn decode_intpack_repack(bytes: &[u8]) -> crate::Result<Vec<u8>> {
let (kind, rest) =
bytes
.split_first()
.ok_or_else(|| crate::error::UrnaError::MalformedSectionPayload {
section_id: 0,
reason: "intpack repack: empty payload".into(),
})?;
match *kind {
REPACK_KIND_CHUNK_IDS => decode_chunk_ids_intpack(rest),
REPACK_KIND_SPANS => decode_chunks_original_spans_intpack(rest),
other => Err(crate::error::UrnaError::MalformedSectionPayload {
section_id: 0,
reason: format!("intpack repack: unknown kind {}", other),
}),
}
}