format_types.hpp

    1: #ifndef FORMAT_TYPES_HPP
    2: #define FORMAT_TYPES_HPP
    3: /*------------------------------------------------------------------------------
    4: 
    5:   Author:    Andy Rushton
    6:   Copyright: (c) Andy Rushton, 2004
    7:   License:   BSD License, see ../docs/license.html
    8: 
    9:   ------------------------------------------------------------------------------*/
   10: 
   11: ////////////////////////////////////////////////////////////////////////////////
   12: // Integer radix display representations:
   13: //   There are three ways in which the radix is represented:
   14: //     - none - the number is just printed as a number (e.g. 12345). Can be confusing for non-decimal radix
   15: //     - C style - for binary, octal and hex, the C-style prefices 0b, 0 and 0x are used - note that this is an unsigned representation
   16: //     - Hash style - in the form radix#value - the value may be signed, e.g. 10#-9
   17: 
   18: enum radix_display_t
   19: {
   20:   radix_none,               // just print the number with no radix indicated
   21:   radix_hash_style,         // none for decimal, hash style for all others
   22:   radix_hash_style_all,     // hash style for all radices including decimal
   23:   radix_c_style,            // C style for hex and octal, none for others
   24:   radix_c_style_or_hash     // C style for hex and octal, none for decimal, hash style for others
   25: };
   26: 
   27: ////////////////////////////////////////////////////////////////////////////////
   28: // Floating-point display representations:
   29: // There are three formats for the printout:
   30: //   - fixed - formatted as a fixed-point number, so no mantissa is printed (equivalent to %f in printf)
   31: //   - floating - formatted as a normalised floating-point number (equivalent to %e in printf)
   32: //   - mixed - formatted as fixed-point if this is appropriate, otherwise the floating format (equivalent to %g in printf)
   33: 
   34: enum real_display_t
   35: {
   36:   display_fixed,    // %f
   37:   display_floating, // %e
   38:   display_mixed     // %g
   39: };
   40: 
   41: ////////////////////////////////////////////////////////////////////////////////
   42: // Alignment:
   43: //   There are three field alignments:
   44: //     - left aligned - the value is to the left of the field which is padded to the right with spaces
   45: //     - right aligned - the value is to the right of the field which is padded to the left with spaces
   46: //     - centred - the value is in the centre of the field and spaces added to both left and right
   47: 
   48: enum alignment_t
   49: {
   50:   align_left,
   51:   align_right,
   52:   align_centre
   53: };
   54: 
   55: ////////////////////////////////////////////////////////////////////////////////
   56: #endif