diff options
| author | bors <bors@rust-lang.org> | 2014-06-04 22:21:43 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-06-04 22:21:43 -0700 |
| commit | 073c8f10fc40b07596fd1018a2002db8e6d5222a (patch) | |
| tree | 783b1bbf3428ae680f52c366ed66ef49451daadc /src/libcore | |
| parent | 422d54bed212b4f0356fb56bbc31c8deef7a6b77 (diff) | |
| parent | 1827241840656ffe7adcfb83a0f29c8deda759bd (diff) | |
| download | rust-073c8f10fc40b07596fd1018a2002db8e6d5222a.tar.gz rust-073c8f10fc40b07596fd1018a2002db8e6d5222a.zip | |
auto merge of #14592 : alexcrichton/rust/rustdoc-links, r=huonw
These are a few assorted fixes for some issues I found this morning (details in the commits).
Diffstat (limited to 'src/libcore')
| -rw-r--r-- | src/libcore/fmt/rt.rs | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/libcore/fmt/rt.rs b/src/libcore/fmt/rt.rs index f2e1476cc1c..1feebbb35b6 100644 --- a/src/libcore/fmt/rt.rs +++ b/src/libcore/fmt/rt.rs @@ -14,11 +14,9 @@ //! 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; +#[doc(hidden)] pub enum Piece<'a> { String(&'a str), // FIXME(#8259): this shouldn't require the unit-value here @@ -26,12 +24,14 @@ pub enum Piece<'a> { 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,38 +40,60 @@ pub struct FormatSpec { pub width: Count, } +/// 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, + /// 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, } +#[doc(hidden)] pub enum Method<'a> { Plural(Option<uint>, &'a [PluralArm<'a>], &'a [Piece<'a>]), Select(&'a [SelectArm<'a>], &'a [Piece<'a>]), } +#[doc(hidden)] pub enum PluralSelector { Keyword(PluralKeyword), Literal(uint), } +#[doc(hidden)] pub enum PluralKeyword { Zero, One, @@ -80,11 +102,13 @@ pub enum PluralKeyword { Many, } +#[doc(hidden)] pub struct PluralArm<'a> { pub selector: PluralSelector, pub result: &'a [Piece<'a>], } +#[doc(hidden)] pub struct SelectArm<'a> { pub selector: &'a str, pub result: &'a [Piece<'a>], |
