]> git.lizzy.rs Git - rust.git/blobdiff - src/libcore/fmt/rt.rs
rollup merge of #17355 : gamazeps/issue17210
[rust.git] / src / libcore / fmt / rt.rs
index 00c8661c8e3839c0a9c3386d6b37c264162364c4..1c88eb6ddfa17819195e9e796fe043be80b25857 100644 (file)
 //! These definitions are similar to their `ct` equivalents, but differ in that
 //! these can be statically allocated and are slightly optimized for the runtime
 
-#![allow(missing_doc)]
-#![doc(hidden)]
-
-use option::Option;
-
-pub enum Piece<'a> {
-    String(&'a str),
-    // FIXME(#8259): this shouldn't require the unit-value here
-    CurrentArgument(()),
-    Argument(Argument<'a>),
-}
-
+#[doc(hidden)]
 pub struct Argument<'a> {
     pub position: Position,
     pub format: FormatSpec,
-    pub method: Option<&'a Method<'a>>
 }
 
+#[doc(hidden)]
 pub struct FormatSpec {
     pub fill: char,
     pub align: Alignment,
@@ -40,52 +29,45 @@ pub struct FormatSpec {
     pub width: Count,
 }
 
-#[deriving(Eq)]
+/// Possible alignments that can be requested as part of a formatting directive.
+#[deriving(PartialEq)]
 pub enum Alignment {
+    /// Indication that contents should be left-aligned.
     AlignLeft,
+    /// Indication that contents should be right-aligned.
     AlignRight,
+    /// Indication that contents should be center-aligned.
+    AlignCenter,
+    /// No alignment was requested.
     AlignUnknown,
 }
 
+#[doc(hidden)]
 pub enum Count {
     CountIs(uint), CountIsParam(uint), CountIsNextParam, CountImplied,
 }
 
+#[doc(hidden)]
 pub enum Position {
     ArgumentNext, ArgumentIs(uint)
 }
 
+/// Flags which can be passed to formatting via a directive.
+///
+/// These flags are discovered through the `flags` field of the `Formatter`
+/// structure. The flag in that structure is a union of these flags into a
+/// `uint` where each flag's discriminant is the corresponding bit.
 pub enum Flag {
+    /// A flag which enables number formatting to always print the sign of a
+    /// number.
     FlagSignPlus,
+    /// Currently not a used flag
     FlagSignMinus,
+    /// Indicates that the "alternate formatting" for a type should be used.
+    ///
+    /// The meaning of this flag is type-specific.
     FlagAlternate,
+    /// Indicates that padding should be done with a `0` character as well as
+    /// being aware of the sign to be printed.
     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(PluralKeyword),
-    Literal(uint),
-}
-
-pub enum PluralKeyword {
-    Zero,
-    One,
-    Two,
-    Few,
-    Many,
-}
-
-pub struct PluralArm<'a> {
-    pub selector: PluralSelector,
-    pub result: &'a [Piece<'a>],
-}
-
-pub struct SelectArm<'a> {
-    pub selector: &'a str,
-    pub result: &'a [Piece<'a>],
-}