Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

Number Class Reference

Inheritance diagram for Number:

Styled Int Long List of all members.

Public Types

enum  NFormat {
  Binary = 'b', Octal = 'o', Hex = 'x', HexUpper = 'X',
  Decimal = 'd', Unsigned = 'u'
}

Static Public Member Functions

static char[] format (char[] dst, long i, NFormat fmt=NFormat.Decimal, Flags flags=0)
static package uint trim (char[] digits, inout bool sign, uint *radix=null)

Private Types

enum  Flags {
  Fill = 1, Left = Fill << 1, Prec = Left << 1, Hash = Prec << 1,
  Space = Hash << 1, Zero = Space << 1, Sign = Zero << 1, Comma = Sign << 1,
  Plus = Comma << 1, Array = Plus << 1
}

Static Private Member Functions

static void error (char[] msg)

Detailed Description

Utility functions for integer conversion.

While these functions are all static, they are encapsulated within a class inheritance to preserve some namespace cohesion. One might use structs for encapsualtion instead, but then inheritance would be lost. Note that the root class, Styled, is abstract to prevent accidental instantiation of these classes.

Definition at line 56 of file Number.d.


Member Enumeration Documentation

enum NFormat
 

Enumeration values:
Binary 
Octal 
Hex 
HexUpper 
Decimal 
Unsigned 

Definition at line 58 of file Number.d.

enum Flags [inherited]
 

Declare stylistic flags

Enumeration values:
Fill 
Left 
Prec 
Hash 
Space 
Zero 
Sign 
Comma 
Plus 
Array 

Definition at line 76 of file Styled.d.


Member Function Documentation

static char [] format char[]  dst,
long  i,
NFormat  fmt = NFormat.Decimal,
Flags  flags = 0
[inline, static]
 

Format numeric values into the provided output buffer. The traditional printf() conversion specifiers are adhered to, and the following types are supported:

u - unsigned decimal d - signed decimal o - octal x - lowercase hexadecimal X - uppercase hexadecimal b - binary

Modifiers supported include:

# : prefix the conversion with a type identifier + : prefix positive decimals with a '+' space : prefix positive decimals with one space 0 : left-pad the number with zeros

These modifiers are specifed via the 'flags' provided, and are represented via these identifiers:

# : Flags.Hash + : Flags.Plus space : Flags.Space 0 : Flags.Zero

Definition at line 90 of file Number.d.

References Styled::error().

static package uint trim char[]  digits,
inout bool  sign,
uint *  radix = null
[inline, static]
 

Strip leading whitespace, extract an optional numeric sign, and optionally strip and return a possible radix prefix.

This can be used as a precursor to the conversion of digits into a number.

Returns the number of matching characters.

Definition at line 197 of file Number.d.

Referenced by Long::parse(), and Int::parse().

static void error char[]  msg  )  [inline, static, inherited]
 

Throw an exception with the provided messsage

Definition at line 338 of file Styled.d.

Referenced by format(), Format::print(), and Format::Sprintf::utf8().


The documentation for this class was generated from the following file:
Generated on Fri Nov 11 18:44:40 2005 for Mango by  doxygen 1.4.0