Line data Source code
1 : /**
2 : * Copyright Soramitsu Co., Ltd. All Rights Reserved.
3 : * SPDX-License-Identifier: Apache-2.0
4 : */
5 :
6 : #include "utils/string_builder.hpp"
7 :
8 : namespace shared_model {
9 : namespace detail {
10 :
11 : const std::string PrettyStringBuilder::beginBlockMarker = "[";
12 : const std::string PrettyStringBuilder::endBlockMarker = "]";
13 : const std::string PrettyStringBuilder::keyValueSeparator = "=";
14 : const std::string PrettyStringBuilder::singleFieldsSeparator = ",";
15 : const std::string PrettyStringBuilder::initSeparator = ":";
16 : const std::string PrettyStringBuilder::spaceSeparator = " ";
17 :
18 : PrettyStringBuilder &PrettyStringBuilder::init(const std::string &name) {
19 43219 : result_.append(name);
20 43219 : result_.append(initSeparator);
21 43219 : result_.append(spaceSeparator);
22 43219 : result_.append(beginBlockMarker);
23 43219 : return *this;
24 : }
25 :
26 : PrettyStringBuilder &PrettyStringBuilder::insertLevel() {
27 952 : result_.append(beginBlockMarker);
28 952 : return *this;
29 : }
30 :
31 : PrettyStringBuilder &PrettyStringBuilder::removeLevel() {
32 953 : result_.append(endBlockMarker);
33 953 : return *this;
34 : }
35 :
36 : PrettyStringBuilder &PrettyStringBuilder::append(const std::string &name,
37 : const std::string &value) {
38 72618 : result_.append(name);
39 72618 : result_.append(keyValueSeparator);
40 72618 : result_.append(value);
41 72618 : result_.append(singleFieldsSeparator);
42 72618 : result_.append(spaceSeparator);
43 72618 : return *this;
44 : }
45 :
46 : PrettyStringBuilder &PrettyStringBuilder::append(const std::string &value) {
47 13470 : result_.append(value);
48 13470 : result_.append(spaceSeparator);
49 13470 : return *this;
50 : }
51 :
52 : std::string PrettyStringBuilder::finalize() {
53 43255 : result_.append(endBlockMarker);
54 43255 : return result_;
55 : }
56 :
57 : } // namespace detail
58 : } // namespace shared_model
|