diff options
Diffstat (limited to 'src/libstd/fmt/rt.rs')
| -rw-r--r-- | src/libstd/fmt/rt.rs | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/src/libstd/fmt/rt.rs b/src/libstd/fmt/rt.rs index 01c2c06c3fb..33e86a4485b 100644 --- a/src/libstd/fmt/rt.rs +++ b/src/libstd/fmt/rt.rs @@ -17,9 +17,17 @@ #![allow(missing_doc)] #![doc(hidden)] -use fmt::parse; use option::Option; +#[cfg(stage0)] +pub use fmt::parse::{Alignment, AlignLeft, AlignRight, AlignUnknown}; +#[cfg(stage0)] +pub use fmt::parse::{PluralKeyword, Zero, One, Two, Few, Many}; +#[cfg(stage0)] +pub use fmt::parse::{Flag, FlagSignPlus, FlagSignMinus, FlagSignAwareZeroPad}; +#[cfg(stage0)] +pub use fmt::parse::{FlagAlternate}; + pub enum Piece<'a> { String(&'a str), // FIXME(#8259): this shouldn't require the unit-value here @@ -35,12 +43,20 @@ pub struct Argument<'a> { pub struct FormatSpec { pub fill: char, - pub align: parse::Alignment, + pub align: Alignment, pub flags: uint, pub precision: Count, pub width: Count, } +#[cfg(not(stage0))] +#[deriving(Eq)] +pub enum Alignment { + AlignLeft, + AlignRight, + AlignUnknown, +} + pub enum Count { CountIs(uint), CountIsParam(uint), CountIsNextParam, CountImplied, } @@ -49,16 +65,32 @@ pub enum Position { ArgumentNext, ArgumentIs(uint) } +#[cfg(not(stage0))] +pub enum Flag { + FlagSignPlus, + FlagSignMinus, + FlagAlternate, + FlagSignAwareZeroPad, +} + pub enum Method<'a> { Plural(Option<uint>, &'a [PluralArm<'a>], &'a [Piece<'a>]), Select(&'a [SelectArm<'a>], &'a [Piece<'a>]), } pub enum PluralSelector { - Keyword(parse::PluralKeyword), + Keyword(PluralKeyword), Literal(uint), } +pub enum PluralKeyword { + Zero, + One, + Two, + Few, + Many, +} + pub struct PluralArm<'a> { pub selector: PluralSelector, pub result: &'a [Piece<'a>], |
