urna_format/sections/
mod.rs1pub mod blob;
17mod canonical;
18mod chunk_ids;
19mod codec;
20mod contract;
21pub mod graph;
22mod provenance;
23mod space_table;
24mod spans;
25
26pub const REPACK_KIND_CHUNK_IDS: u8 = 0;
32pub const REPACK_KIND_SPANS: u8 = 1;
33
34pub use blob::{
35 BLOB_DATA_PAYLOAD_VERSION, BLOB_REF_NONE, BLOB_REFS_PAYLOAD_VERSION,
36 BLOB_SPAN_OVERLAY_PAYLOAD_VERSION, BlobDataTable, BlobRefRecord, BlobSpanEntry,
37 decode_blob_data_table, decode_blob_refs, decode_blob_span_overlay, encode_blob_data,
38 encode_blob_refs, encode_blob_span_overlay,
39};
40pub use canonical::{decode_chunks_canonical, encode_chunks_canonical};
41pub use chunk_ids::{
42 decode_chunk_ids, decode_chunk_ids_intpack, encode_chunk_ids, encode_chunk_ids_intpack,
43};
44pub use contract::{SearchContract, decode_search_contract, encode_search_contract};
45pub use provenance::{decode_provenance, encode_provenance};
46pub use space_table::{
47 SPACE_DTYPE_F16, SPACE_DTYPE_F32, SPACE_DTYPE_I4, SPACE_DTYPE_I8, SPACE_TABLE_PAYLOAD_VERSION,
48 SpaceEntry, decode_space_table, encode_space_table,
49};
50pub use spans::{
51 OriginalSpan, decode_chunks_original_spans, decode_chunks_original_spans_intpack,
52 encode_chunks_original_spans, encode_chunks_original_spans_intpack,
53};
54
55pub fn decode_txt_streams(bytes: &[u8]) -> crate::Result<Vec<u8>> {
61 crate::encoding::decode_txt_streams_payload(bytes)
62}
63
64pub fn decode_intpack_repack(bytes: &[u8]) -> crate::Result<Vec<u8>> {
68 let (kind, rest) =
69 bytes
70 .split_first()
71 .ok_or_else(|| crate::error::UrnaError::MalformedSectionPayload {
72 section_id: 0,
73 reason: "intpack repack: empty payload".into(),
74 })?;
75 match *kind {
76 REPACK_KIND_CHUNK_IDS => decode_chunk_ids_intpack(rest),
77 REPACK_KIND_SPANS => decode_chunks_original_spans_intpack(rest),
78 other => Err(crate::error::UrnaError::MalformedSectionPayload {
79 section_id: 0,
80 reason: format!("intpack repack: unknown kind {}", other),
81 }),
82 }
83}