|
@@ -125,30 +125,39 @@ inline format_object<Ts...> format(const char *Fmt, const Ts &... Vals) {
|
|
|
return format_object<Ts...>(Fmt, Vals...);
|
|
|
}
|
|
|
|
|
|
-/// This is a helper class used for left_justify() and right_justify().
|
|
|
+/// This is a helper class for left_justify, right_justify, and center_justify.
|
|
|
class FormattedString {
|
|
|
+public:
|
|
|
+ enum Justification { JustifyNone, JustifyLeft, JustifyRight, JustifyCenter };
|
|
|
+ FormattedString(StringRef S, unsigned W, Justification J)
|
|
|
+ : Str(S), Width(W), Justify(J) {}
|
|
|
+
|
|
|
+private:
|
|
|
StringRef Str;
|
|
|
unsigned Width;
|
|
|
- bool RightJustify;
|
|
|
+ Justification Justify;
|
|
|
friend class raw_ostream;
|
|
|
-
|
|
|
-public:
|
|
|
- FormattedString(StringRef S, unsigned W, bool R)
|
|
|
- : Str(S), Width(W), RightJustify(R) { }
|
|
|
};
|
|
|
|
|
|
/// left_justify - append spaces after string so total output is
|
|
|
/// \p Width characters. If \p Str is larger that \p Width, full string
|
|
|
/// is written with no padding.
|
|
|
inline FormattedString left_justify(StringRef Str, unsigned Width) {
|
|
|
- return FormattedString(Str, Width, false);
|
|
|
+ return FormattedString(Str, Width, FormattedString::JustifyLeft);
|
|
|
}
|
|
|
|
|
|
/// right_justify - add spaces before string so total output is
|
|
|
/// \p Width characters. If \p Str is larger that \p Width, full string
|
|
|
/// is written with no padding.
|
|
|
inline FormattedString right_justify(StringRef Str, unsigned Width) {
|
|
|
- return FormattedString(Str, Width, true);
|
|
|
+ return FormattedString(Str, Width, FormattedString::JustifyRight);
|
|
|
+}
|
|
|
+
|
|
|
+/// center_justify - add spaces before and after string so total output is
|
|
|
+/// \p Width characters. If \p Str is larger that \p Width, full string
|
|
|
+/// is written with no padding.
|
|
|
+inline FormattedString center_justify(StringRef Str, unsigned Width) {
|
|
|
+ return FormattedString(Str, Width, FormattedString::JustifyCenter);
|
|
|
}
|
|
|
|
|
|
/// This is a helper class used for format_hex() and format_decimal().
|