hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
string_builder.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_SHARED_MODEL_STRING_BUILDER_HPP
7 #define IROHA_SHARED_MODEL_STRING_BUILDER_HPP
8 
9 #include <string>
10 
11 #include "common/to_string.hpp"
12 
13 namespace shared_model {
14  namespace detail {
19  public:
24  PrettyStringBuilder &init(const std::string &name);
25 
30 
35 
37 
38  PrettyStringBuilder &append(const std::string &o);
39 
40  template <typename T>
41  PrettyStringBuilder &append(const T &o) {
43  }
44 
46 
52  template <typename Name, typename Value>
53  PrettyStringBuilder &appendNamed(const Name &name, const Value &value) {
54  appendPartial(name);
55  appendPartial(keyValueSeparator);
56  return append(iroha::to_string::toString(value));
57  }
58 
63  std::string finalize();
64 
65  private:
66  std::string result_;
67  bool need_field_separator_;
68  static const std::string beginBlockMarker;
69  static const std::string endBlockMarker;
70  static const std::string keyValueSeparator;
71  static const std::string singleFieldsSeparator;
72  static const std::string initSeparator;
73  static const std::string spaceSeparator;
74 
75  template <typename T>
76  inline void appendPartial(T const &value) {
77  if (need_field_separator_) {
78  result_.append(singleFieldsSeparator);
79  need_field_separator_ = false;
80  }
81  result_.append(value);
82  }
83  };
84  } // namespace detail
85 } // namespace shared_model
86 
87 #endif // IROHA_SHARED_MODEL_STRING_BUILDER_HPP
PrettyStringBuilder & init(const std::string &name)
Definition: string_builder.cpp:18
std::string finalize()
Definition: string_builder.cpp:44
PrettyStringBuilder & removeLevel()
Definition: string_builder.cpp:32
PrettyStringBuilder & append(const std::string &o)
-------— Single element undecorated append. -------— ///
Definition: string_builder.cpp:38
PrettyStringBuilder & insertLevel()
Definition: string_builder.cpp:26
Definition: string_builder.hpp:18
PrettyStringBuilder & append(const T &o)
Definition: string_builder.hpp:41
std::string toString(const ::iroha::utility_service::Status &val)
Definition: proto_status_tools.cpp:56
Definition: command_executor.hpp:12
PrettyStringBuilder & appendNamed(const Name &name, const Value &value)
----—— Augmented appending functions. ----—— ///
Definition: string_builder.hpp:53