Skip to main content

FieldSpec

Struct FieldSpec 

Source
pub struct FieldSpec {
    pub ty: Option<FieldType>,
    pub values: OpenClosed,
    pub vocabulary: Option<String>,
    pub reify: bool,
}
Expand description

A field declaration — an entry in the fields block. It promotes a frontmatter field (tags, audience, created) that prov would otherwise merely carry (DESIGN §2, tier 3) into something prov and its frontends know the shape of. Two independent things can be declared, and a field needs at least one of them to be worth an entry:

  • A type (ty) — what the value is. Pure data shape, decidable from the value alone, so it is spelled in fig-schema’s vocabulary rather than one prov invents.
  • A vocabulary (vocabulary) — which values are legal, turning the field into a resolvable reference prov keeps consistent: every value is checked against the vocabulary document the pointer reaches.

They compose (a closed vocabulary of strings is both), but neither implies the other: created is a date with no vocabulary, and a vocabulary field needs no declared type.

Fields§

§ty: Option<FieldType>

The type the field’s values are expected to take, if declared. Drives type-directed parsing and widget choice in a frontend (a date field gets a date picker); prov itself carries it without interpreting it.

§values: OpenClosed

Whether the value set is open (folksonomy) or closed (must be known). Meaningful only alongside a vocabulary.

§vocabulary: Option<String>

The pointer (a link) to the vocabulary document listing this field’s legal terms — resolved like the registry/config pointers (DESIGN §6). None for a field that declares a type but no controlled vocabulary.

§reify: bool

Whether each term is reified as its own node (rich: backlinks, a prose body, stable id) rather than a bare key in a flat registry. A hint to tooling; prov validates membership either way.

Trait Implementations§

Source§

impl Clone for FieldSpec

Source§

fn clone(&self) -> FieldSpec

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for FieldSpec

Source§

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

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

impl Eq for FieldSpec

Source§

impl PartialEq for FieldSpec

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for FieldSpec

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

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

Compare self to key and return true if they are equal.
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, 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.