Struct icu::plurals::PluralOperands

source ·
pub struct PluralOperands { /* private fields */ }
Expand description

A full plural operands representation of a number. See CLDR Plural Rules for complete operands description. Plural operands in compliance with CLDR Plural Rules.

See full operands description.

Data Types

The following types can be converted to PluralOperands:

  • Integers, signed and unsigned
  • Strings representing an arbitrary-precision decimal
  • [FixedDecimal]

This crate does not support selection from a floating-point number, because floats are not capable of carrying trailing zeros, which are required for proper plural rule selection. For example, in English, “1 star” has a different plural form than “1.0 stars”, but this distinction cannot be represented using a float. Clients should use [FixedDecimal] instead.

Examples

From int

use icu::plurals::PluralOperands;
use icu_plurals::rules::RawPluralOperands;

assert_eq!(
    PluralOperands::from(RawPluralOperands {
        i: 2,
        v: 0,
        w: 0,
        f: 0,
        t: 0,
        c: 0,
    }),
    PluralOperands::from(2_usize)
);

From &str

use icu::plurals::PluralOperands;
use icu_plurals::rules::RawPluralOperands;

assert_eq!(
    Ok(PluralOperands::from(RawPluralOperands {
        i: 123,
        v: 2,
        w: 2,
        f: 45,
        t: 45,
        c: 0,
    })),
    "123.45".parse()
);

From [FixedDecimal]

use fixed_decimal::FixedDecimal;
use icu::plurals::PluralOperands;
use icu_plurals::rules::RawPluralOperands;

assert_eq!(
    PluralOperands::from(RawPluralOperands {
        i: 123,
        v: 2,
        w: 2,
        f: 45,
        t: 45,
        c: 0,
    }),
    (&FixedDecimal::from(12345).multiplied_pow10(-2)).into()
);

Trait Implementations§

source§

impl Clone for PluralOperands

source§

fn clone(&self) -> PluralOperands

Returns a copy 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 PluralOperands

source§

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

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

impl Default for PluralOperands

source§

fn default() -> PluralOperands

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

impl From<&FixedDecimal> for PluralOperands

source§

fn from(dec: &FixedDecimal) -> PluralOperands

Converts a [fixed_decimal::FixedDecimal] to PluralOperands. Retains at most 18 digits each from the integer and fraction parts.

source§

impl From<i128> for PluralOperands

source§

fn from(input: i128) -> PluralOperands

Converts to this type from the input type.
source§

impl From<i16> for PluralOperands

source§

fn from(input: i16) -> PluralOperands

Converts to this type from the input type.
source§

impl From<i32> for PluralOperands

source§

fn from(input: i32) -> PluralOperands

Converts to this type from the input type.
source§

impl From<i64> for PluralOperands

source§

fn from(input: i64) -> PluralOperands

Converts to this type from the input type.
source§

impl From<i8> for PluralOperands

source§

fn from(input: i8) -> PluralOperands

Converts to this type from the input type.
source§

impl From<isize> for PluralOperands

source§

fn from(input: isize) -> PluralOperands

Converts to this type from the input type.
source§

impl From<u128> for PluralOperands

source§

fn from(input: u128) -> PluralOperands

Converts to this type from the input type.
source§

impl From<u16> for PluralOperands

source§

fn from(input: u16) -> PluralOperands

Converts to this type from the input type.
source§

impl From<u32> for PluralOperands

source§

fn from(input: u32) -> PluralOperands

Converts to this type from the input type.
source§

impl From<u64> for PluralOperands

source§

fn from(input: u64) -> PluralOperands

Converts to this type from the input type.
source§

impl From<u8> for PluralOperands

source§

fn from(input: u8) -> PluralOperands

Converts to this type from the input type.
source§

impl From<usize> for PluralOperands

source§

fn from(input: usize) -> PluralOperands

Converts to this type from the input type.
source§

impl FromStr for PluralOperands

§

type Err = OperandsError

The associated error which can be returned from parsing.
source§

fn from_str( input: &str ) -> Result<PluralOperands, <PluralOperands as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq<PluralOperands> for PluralOperands

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for PluralOperands

source§

impl StructuralPartialEq for PluralOperands

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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 Twhere T: Clone,

§

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 Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
§

impl<T> ErasedDestructor for Twhere T: 'static,

source§

impl<T> MaybeSendSync for T