Skip to main content

EntityValue

Struct EntityValue 

Source
pub struct EntityValue { /* private fields */ }
Expand description

Fluent builder for entity-typed context values with agreement features.

Produced by entity(); consumed into a Value::Entity via IntoValue::into_value or EntityValue::build.

§Example

use prosaic_core::{ctx, entity, Value};
use prosaic_core::agreement::{Gender, Number, Definiteness};

let c = ctx! {
    user: entity("Alice").fem().sing().defined(),
    service: entity("UserService"),
};

match c.get("user").unwrap() {
    Value::Entity { name, features } => {
        assert_eq!(name, "Alice");
        assert_eq!(features.gender, Gender::Fem);
    }
    _ => panic!("expected Entity"),
}

Implementations§

Source§

impl EntityValue

Source

pub fn masc(self) -> Self

Set gender to masculine.

Source

pub fn fem(self) -> Self

Set gender to feminine.

Source

pub fn neut(self) -> Self

Set gender to neuter.

Source

pub fn common(self) -> Self

Set gender to common (Dutch / Scandinavian 2-gender systems).

Source

pub fn sing(self) -> Self

Set number to singular.

Source

pub fn plur(self) -> Self

Set number to plural.

Source

pub fn dual(self) -> Self

Set number to dual (Arabic, Slovenian, Biblical Hebrew).

Source

pub fn defined(self) -> Self

Set definiteness to definite.

Source

pub fn indef(self) -> Self

Set definiteness to indefinite.

Source

pub fn animate(self) -> Self

Set animacy to animate.

Source

pub fn inanimate(self) -> Self

Set animacy to inanimate.

Source

pub fn case(self, c: Case) -> Self

Set the grammatical case.

Source

pub fn person(self, p: AgreementPerson) -> Self

Set the grammatical person.

Source

pub fn with_features(self, f: AgreementFeatures) -> Self

Replace all features at once with a pre-built AgreementFeatures.

Source

pub fn build(self) -> Value

Consume this builder into a Value::Entity.

Trait Implementations§

Source§

impl Clone for EntityValue

Source§

fn clone(&self) -> EntityValue

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 EntityValue

Source§

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

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

impl IntoValue for EntityValue

Source§

impl PartialEq for EntityValue

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 Eq for EntityValue

Source§

impl StructuralPartialEq for EntityValue

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, 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.