[][src]Struct rink::context::Context

pub struct Context {
    pub dimensions: BTreeSet<Dim>,
    pub canonicalizations: BTreeMap<String, String>,
    pub units: BTreeMap<String, Number>,
    pub quantities: BTreeMap<Unit, String>,
    pub reverse: BTreeMap<Unit, String>,
    pub prefixes: Vec<(String, Number)>,
    pub definitions: BTreeMap<String, Expr>,
    pub docs: BTreeMap<String, String>,
    pub categories: BTreeMap<String, String>,
    pub category_names: BTreeMap<String, String>,
    pub datepatterns: Vec<Vec<DatePattern>>,
    pub substances: BTreeMap<String, Substance>,
    pub substance_symbols: BTreeMap<String, String>,
    pub temporaries: BTreeMap<String, Number>,
    pub short_output: bool,
    pub use_humanize: bool,
}

The evaluation context that contains unit definitions.

Fields

dimensions: BTreeSet<Dim>canonicalizations: BTreeMap<String, String>units: BTreeMap<String, Number>quantities: BTreeMap<Unit, String>reverse: BTreeMap<Unit, String>prefixes: Vec<(String, Number)>definitions: BTreeMap<String, Expr>docs: BTreeMap<String, String>categories: BTreeMap<String, String>category_names: BTreeMap<String, String>datepatterns: Vec<Vec<DatePattern>>substances: BTreeMap<String, Substance>substance_symbols: BTreeMap<String, String>temporaries: BTreeMap<String, Number>short_output: booluse_humanize: bool

Methods

impl Context
[src]

pub fn new() -> Context
[src]

Creates a new, empty context

pub fn load_dates(&mut self, dates: Vec<Vec<DatePattern>>)
[src]

pub fn lookup(&self, name: &str) -> Option<Number>
[src]

Given a unit name, returns its value if it exists. Supports SI prefixes, plurals, bare dimensions like length, and quantities.

pub fn canonicalize(&self, name: &str) -> Option<String>
[src]

Given a unit name, try to return a canonical name (expanding aliases and such)

pub fn describe_unit(&self, value: &Number) -> (bool, String)
[src]

Describes a value's unit, gives true if the unit is reciprocal (e.g. you should prefix "1.0 / " or replace "multiply" with "divide" when rendering it).

pub fn typo_dym<'a>(&'a self, what: &str) -> Option<&'a str>
[src]

pub fn unknown_unit_err(&self, name: &str) -> NotFoundError
[src]

impl Context
[src]

pub fn eval(&self, expr: &Expr) -> Result<Value, QueryError>
[src]

Evaluates an expression to compute its value, excluding -> conversions.

pub fn eval_unit_name(
    &self,
    expr: &Expr
) -> Result<(BTreeMap<String, isize>, Num), QueryError>
[src]

pub fn show(
    &self,
    raw: &Number,
    bottom: &Number,
    bottom_name: BTreeMap<String, isize>,
    bottom_const: Num,
    base: u8,
    digits: Digits
) -> ConversionReply
[src]

pub fn eval_outer(&self, expr: &Query) -> Result<QueryReply, QueryError>
[src]

Evaluates an expression, include -> conversions.

impl Context
[src]

pub fn humanize<Tz: TimeZone>(&self, date: DateTime<Tz>) -> Option<String>
[src]

impl Context
[src]

pub fn load(&mut self, defs: Defs)
[src]

Takes a parsed definitions.units from gnu_units::parse(). Prints if there are errors in the file.

Trait Implementations

impl Debug for Context
[src]

Auto Trait Implementations

impl !Send for Context

impl !Sync for Context

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Typeable for T where
    T: Any

fn get_type(&self) -> TypeId

Get the TypeId of this object.