summaryrefslogtreecommitdiff
path: root/libmformat/libmformat/format.cxx
blob: 181eb86310d07c99c90e0df674b426558a19cf4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// file: libmformat/format.cxx -*- C++ -*-

module format;

import std.core; // transform()
import std.io;   // to{upper,lower}()

using namespace std;

namespace format
{
  string
  message (const string& g, const string& n, volume v)
  {
    string r (g);

    transform (r.begin (), r.end (), r.begin (),
               [v] (char c) -> char
               {
                 switch (v)
                 {
                 case volume::quiet:  return tolower (c);
                 case volume::normal: return c;
                 case volume::loud:   return toupper (c);
                 }
               });

    return r += ", " + n + '!';
  }
}