pub mod array;
pub mod longstring;
pub mod rawbytes;
pub mod simplearchive;
pub mod succinctarchive;
pub mod wasmcode;
use crate::inline::Encodes;
use anybytes::Bytes;
use crate::blob::BlobEncoding;
use crate::id_hex;
use crate::macros::entity;
use crate::metadata::{self, MetaDescribe};
use super::Blob;
use super::TryFromBlob;
pub struct UnknownBlob;
impl BlobEncoding for UnknownBlob {}
impl MetaDescribe for UnknownBlob {
fn describe() -> crate::trible::Fragment {
let id = id_hex!("EAB14005141181B0C10C4B5DD7985F8D");
entity! { crate::id::ExclusiveId::force_ref(&id) @
metadata::name: "UnknownBlob",
metadata::description: "Fallback blob encoding for byte payloads with no known type. Discouraged in practice — use a specific blob encoding (e.g. `LongString`, `Array<T>`, `SimpleArchive`) instead.",
metadata::tag: metadata::KIND_BLOB_ENCODING,
}
}
}
impl TryFromBlob<UnknownBlob> for Bytes {
type Error = std::convert::Infallible;
fn try_from_blob(blob: Blob<UnknownBlob>) -> Result<Self, Self::Error> {
Ok(blob.bytes)
}
}
impl Encodes<Bytes> for UnknownBlob
where crate::inline::encodings::hash::Handle<UnknownBlob>: crate::inline::InlineEncoding,
{
type Output = Blob<UnknownBlob>;
fn encode(source: Bytes) -> Blob<UnknownBlob> {
Blob::new(source)
}
}