1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// This file is part of ICU4X. For terms of use, please see the file
// called LICENSE at the top level of the ICU4X source tree
// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).

//! Parts of a formatted decimal.
//!
//! # Examples
//!
//! ```
//! use icu::calendar::Gregorian;
//! use icu::calendar::{Date, Time};
//! use icu::decimal::parts;
//! use icu::decimal::FixedDecimalFormatter;
//! use icu::locale::locale;
//! use writeable::assert_writeable_parts_eq;
//!
//! let dtf = FixedDecimalFormatter::try_new(
//!     locale!("en").into(),
//!     Default::default(),
//! )
//! .unwrap();
//!
//! let fixed_decimal = "-987654.321".parse().unwrap();
//!
//! // Missing data is filled in on a best-effort basis, and an error is signaled.
//! assert_writeable_parts_eq!(
//!     dtf.format(&fixed_decimal),
//!     "-987,654.321",
//!     [
//!         (0, 1, parts::MINUS_SIGN),
//!         (1, 8, parts::INTEGER),
//!         (4, 5, parts::GROUP),
//!         (8, 9, parts::DECIMAL),
//!         (9, 12, parts::FRACTION),
//!     ]
//! );
//! ```

use writeable::Part;

/// A [`Part`] used by [`FormattedFixedDecimal`](super::FormattedFixedDecimal).
pub const PLUS_SIGN: Part = Part {
    category: "decimal",
    value: "plusSign",
};

/// A [`Part`] used by [`FormattedFixedDecimal`](super::FormattedFixedDecimal).
pub const MINUS_SIGN: Part = Part {
    category: "decimal",
    value: "minusSign",
};

/// A [`Part`] used by [`FormattedFixedDecimal`](super::FormattedFixedDecimal).
pub const INTEGER: Part = Part {
    category: "decimal",
    value: "integer",
};

/// A [`Part`] used by [`FormattedFixedDecimal`](super::FormattedFixedDecimal).
pub const FRACTION: Part = Part {
    category: "decimal",
    value: "fraction",
};

/// A [`Part`] used by [`FormattedFixedDecimal`](super::FormattedFixedDecimal).
pub const GROUP: Part = Part {
    category: "decimal",
    value: "group",
};

/// A [`Part`] used by [`FormattedFixedDecimal`](super::FormattedFixedDecimal).
pub const DECIMAL: Part = Part {
    category: "decimal",
    value: "decimal",
};