Hermes
str_view.h
Go to the documentation of this file.
1 
28 #ifndef HERMES_COMMON_STR_VIEW_H
29 #define HERMES_COMMON_STR_VIEW_H
30 
31 #include <hermes/common/result.h>
32 
33 namespace hermes {
34 
35 // *********************************************************************************************************************
36 // ConstStrView
37 // *********************************************************************************************************************
38 class ConstStrView {
39 public:
40  // *******************************************************************************************************************
41  // STATIC METHODS
42  // *******************************************************************************************************************
48  static Result<ConstStrView> from(const std::string &str, size_t pos = 0, i64 len = -1);
55  static Result<ConstStrView> from(const char *str, size_t len, size_t pos = 0);
56  // *******************************************************************************************************************
57  // FRIEND FUNCTIONS
58  // *******************************************************************************************************************
59  // *******************************************************************************************************************
60  // CONSTRUCTORS
61  // *******************************************************************************************************************
62  // assignment
63  // *******************************************************************************************************************
64  // OPERATORS
65  // *******************************************************************************************************************
66  // assignment
67  // arithmetic
68  // boolean
72  bool operator==(const std::string &s) const;
73  // *******************************************************************************************************************
74  // METHODS
75  // *******************************************************************************************************************
78  [[nodiscard]] size_t size() const;
79  // *******************************************************************************************************************
80  // PUBLIC FIELDS
81  // *******************************************************************************************************************
82 private:
83  // *******************************************************************************************************************
84  // PRIVATE CONSTRUCTORS
85  // *******************************************************************************************************************
91  ConstStrView(const char *str, size_t start, size_t end);
92 
93  const char *str_{nullptr};
94  size_t start_{0};
95  size_t end_{0};
96  size_t size_{0};
97 };
98 
99 }
100 
101 #endif //HERMES_COMMON_STR_VIEW_H
Definition: str_view.h:38
static Result< ConstStrView > from(const std::string &str, size_t pos=0, i64 len=-1)
Constructs a sub-string view from a std::string object.
Definition: str_view.cpp:33
bool operator==(const std::string &s) const
Checks if this sub-string with the string s are equal.
Definition: str_view.cpp:63
size_t size() const
Gets the size of the view.
Definition: str_view.cpp:59
Holds a valid object or an error.
Definition: result.h:56
int64_t i64
64 bit size integer type
Definition: defs.h:84