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 : PrettyStringBuilder &PrettyStringBuilder::init(const std::string &name) {
12 9064 : result_.append(name);
13 9064 : result_.append(initSeparator);
14 9064 : result_.append(spaceSeparator);
15 9064 : result_.append(beginBlockMarker);
16 9064 : return *this;
17 : }
18 :
19 : PrettyStringBuilder &PrettyStringBuilder::insertLevel() {
20 2701 : result_.append(beginBlockMarker);
21 2701 : return *this;
22 : }
23 :
24 : PrettyStringBuilder &PrettyStringBuilder::removeLevel() {
25 2704 : result_.append(endBlockMarker);
26 2704 : return *this;
27 : }
28 :
29 : PrettyStringBuilder &PrettyStringBuilder::append(const std::string &name,
30 : const std::string &value) {
31 16030 : result_.append(name);
32 16030 : result_.append(keyValueSeparator);
33 16030 : result_.append(value);
34 16030 : result_.append(singleFieldsSeparator);
35 16030 : result_.append(spaceSeparator);
36 16030 : return *this;
37 : }
38 :
39 : PrettyStringBuilder &PrettyStringBuilder::append(const std::string &value) {
40 9982 : result_.append(value);
41 9982 : result_.append(spaceSeparator);
42 9982 : return *this;
43 : }
44 :
45 : std::string PrettyStringBuilder::finalize() {
46 9064 : result_.append(endBlockMarker);
47 9064 : return result_;
48 : }
49 :
50 : } // namespace detail
51 : } // namespace shared_model
|