Skip to main content

FormatKind

Enum FormatKind 

Source
#[repr(u8)]
pub enum FormatKind { Json = 0, }
Expand description

Data format kind for tape identification

Each tape carries a format marker indicating its source format, enabling format-specific parsing and transformation logic.

Variants§

§

Json = 0

JSON (JavaScript Object Notation) - base format

Implementations§

Source§

impl FormatKind

Source

pub const fn name(self) -> &'static str

Get the format name as a string

Source

pub fn from_name(name: &str) -> Option<Self>

Parse format kind from string

Source

pub const fn supports_comments(self) -> bool

Check if this format supports comments

Source

pub const fn supports_references(self) -> bool

Check if this format supports references/anchors

Source§

impl FormatKind

Source

pub fn detect_from_extension(ext: &str) -> Option<DetectionResult>

Detect format from file extension

Returns Some(result) with Confidence::Exact for known extensions.

§Examples
use fionn_core::FormatKind;

let result = FormatKind::detect_from_extension("json").unwrap();
assert_eq!(result.format, FormatKind::Json);
Source

pub fn detect_from_mime_type(mime: &str) -> Option<DetectionResult>

Detect format from MIME type

Returns Some(result) with Confidence::Exact for known MIME types.

§Examples
use fionn_core::FormatKind;

let result = FormatKind::detect_from_mime_type("application/json").unwrap();
assert_eq!(result.format, FormatKind::Json);
Source

pub fn detect_from_content(content: &[u8]) -> DetectionResult

Detect format from content by examining the first bytes

Uses heuristics to determine the most likely format. Returns the format with highest confidence, or JSON as fallback.

§Detection Heuristics
FormatDetection Method
JSONStarts with { or [ (after whitespace)
YAMLContains --- document marker or : with indentation
TOMLContains [section] or key = value patterns
CSVContains , with consistent structure per line
ISONContains :type: reference patterns
TOONContains indented tabular data with array headers
§Examples
use fionn_core::FormatKind;

let json = r#"{"hello": "world"}"#;
let result = FormatKind::detect_from_content(json.as_bytes());
assert_eq!(result.format, FormatKind::Json);
Source

pub fn detect( content: &[u8], extension: Option<&str>, mime_type: Option<&str>, ) -> DetectionResult

Detect format using all available methods

Tries detection in order of reliability:

  1. File extension (if provided)
  2. MIME type (if provided)
  3. Content sniffing

Returns the result with highest confidence.

Trait Implementations§

Source§

impl Clone for FormatKind

Source§

fn clone(&self) -> FormatKind

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FormatKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for FormatKind

Source§

fn default() -> FormatKind

Returns the “default value” for a type. Read more
Source§

impl Display for FormatKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for FormatKind

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for FormatKind

Source§

fn eq(&self, other: &FormatKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for FormatKind

Source§

impl Eq for FormatKind

Source§

impl StructuralPartialEq for FormatKind

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.