surrealdb-core 3.2.1

A scalable, distributed, collaborative, document-graph database, for the realtime web
Documentation
use std::sync::LazyLock;

use mime::Mime;
use surrealdb_types::SurrealValue;

use crate::api::format;

#[derive(Clone, Copy, Debug, Default, SurrealValue, PartialOrd, Ord, PartialEq, Eq)]
#[surreal(crate = "surrealdb_types")]
#[surreal(untagged, lowercase, default)]
pub enum BodyStrategy {
	#[default]
	Auto,
	Json,
	Cbor,
	Flatbuffers,
	Plain,
	Bytes,
	Native,
}

pub static APPLICATION_CBOR: LazyLock<Mime> =
	LazyLock::new(|| format::CBOR.parse().expect("application/cbor is a valid mime type"));

pub static APPLICATION_SDB_FB: LazyLock<Mime> = LazyLock::new(|| {
	format::FLATBUFFERS.parse().expect("application/vnd.surrealdb.flatbuffers is a valid mime type")
});

pub static APPLICATION_SDB_NATIVE: LazyLock<Mime> = LazyLock::new(|| {
	format::NATIVE.parse().expect("application/vnd.surrealdb.native is a valid mime type")
});