]> git.tdb.fi Git - libs/core.git/blobdiff - source/fmt.h
Move files around to prepare for assimilation into core
[libs/core.git] / source / fmt.h
diff --git a/source/fmt.h b/source/fmt.h
deleted file mode 100644 (file)
index ba75958..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/* $Id$
-
-This file is part of libmspstrings
-Copyright © 2006-2008 Mikko Rasa
-Distributed under the LGPL
-*/
-
-#ifndef MSP_STRINGS_FMT_H_
-#define MSP_STRINGS_FMT_H_
-
-#include <ostream>
-#include <string>
-
-namespace Msp {
-
-/**
-Stores formatting information for converting variables into strings.  Can be
-applied to an std::ostream or fed to lexical_cast.  Also used internally by
-Formatter.
-
-Formats can be constructed from printf-style conversion specifications, by
-chaining calls to the various setter functions, or with a mixture of both.
-
-Since type information for conversions is acquired through templates, the
-meaning of the conversion specifier character is reduced to only specifying
-what the conversion should look like.  Of special note is the s conversion,
-which will result in a default conversion for any data type.  Size modifiers
-are not supported and there is no difference between signed and unsigned
-conversions.
-
-Some new conversions are supported:
-
-  b/B  Binary integer conversion
-  P    Uppercase pointer conversion (like %#X)
-*/
-class Fmt
-{
-public:
-       enum Type
-       {
-               NUM,
-               CHAR,
-               STR
-       };
-
-       enum Base
-       {
-               AUTOBASE = 0,
-               DEC = 10,
-               HEX = 16,
-               OCT = 8,
-               BIN = 2
-       };
-
-       enum FloatMode
-       {
-               FIXED,
-               AUTOFLT,
-               SCI
-       };
-
-       enum Align
-       {
-               LEFT,
-               RIGHT
-       };
-
-private:
-       unsigned wd;
-       unsigned prec;
-       bool spos;
-       wchar_t fillc;
-       Base base;
-       bool sbase;
-       FloatMode fmode;
-       bool spoint;
-       Align align;
-       bool ucase;
-       Type type;
-
-public:
-       Fmt() { reset(); }
-       Fmt(const char *f) { reset(); parse(f); }
-       Fmt(const std::string &f) { reset(); parse(f.c_str()); }
-
-private:
-       void parse(const char *);
-
-public:
-       Fmt &width(unsigned w) { wd = w; return *this; }
-       Fmt &precision(unsigned p) { prec = p; return *this; }
-       Fmt &showpos(bool s=true) { spos = s; return *this; }
-       Fmt &fill(wchar_t f) { fillc = f; return *this; }
-       Fmt &fixed() { fmode = FIXED; return *this; }
-       Fmt &scientific() { fmode = SCI; return *this; }
-       Fmt &showpoint(bool s=true) { spoint = s; return *this; }
-       Fmt &showbase(bool s=true) { sbase = s; return *this; }
-       Fmt &left() { align = LEFT; return *this; }
-       Fmt &right() { align = RIGHT; return *this; }
-       Fmt &dec() { base = DEC; return *this; }
-       Fmt &hex() { base = HEX; return *this; }
-       Fmt &oct() { base = OCT; return *this; }
-       Fmt &bin() { base = BIN; return *this; }
-       Fmt &uppercase(bool u=true) { ucase = u; return *this; }
-       Fmt &numeric() { type = NUM; return *this; }
-       Fmt &character() { type = CHAR; return *this; }
-       Fmt &string() { type = STR; return *this; }
-       Fmt &reset();
-
-       unsigned get_width() const { return wd; }
-       unsigned get_precision() const { return prec; }
-       bool get_showpos() const { return spos; }
-       wchar_t get_fill() const { return fillc; }
-       Base get_base() const { return base; }
-       bool get_showbase() const { return sbase; }
-       FloatMode get_floatmode() const { return fmode; }
-       bool get_showpoint() const { return spoint; }
-       Align get_align() const { return align; }
-       bool get_uppercase() const { return ucase; }
-       Type get_type() const { return type; }
-
-       void apply(std::ostream &) const;
-};
-
-inline std::ostream &operator<<(std::ostream &o, const Fmt &f)
-{ f.apply(o); return o; }
-
-} // namespace Msp
-
-#endif