lib-ruby-parser (C++ bindings)  4.0.1+ruby-3.1.1
C++ bindings for lib-ruby-parser library
string.hpp
Go to the documentation of this file.
1 #ifndef LIB_RUBY_PARSER_String_HPP
2 #define LIB_RUBY_PARSER_String_HPP
3 
4 #include <cstddef>
5 #include <cstdint>
6 #include <cstdbool>
7 
8 namespace lib_ruby_parser
9 {
13  class String
14  {
15  public:
16  char *ptr;
17  size_t capacity;
18  size_t len;
19 
20  String() = delete;
21  String(char *ptr, size_t len, size_t capacity);
22 
23  String(const String &) = delete;
24  String &operator=(String const &) = delete;
25 
26  String(String &&);
27  String &operator=(String &&);
28 
29  ~String();
30 
31  static String Owned(char *s, size_t len);
32  static String Copied(const char *s);
33  };
34 
35  extern "C"
36  {
37  struct StringBlob
38  {
39  uint8_t bytes[sizeof(String)];
40  };
41  }
42 
50  {
51  public:
53 
54  MaybeString();
55  explicit MaybeString(String s);
56 
57  MaybeString(const MaybeString &) = delete;
58  MaybeString &operator=(MaybeString const &) = delete;
59 
60  MaybeString(MaybeString &&) = default;
61  MaybeString &operator=(MaybeString &&) = default;
62 
63  ~MaybeString() = default;
64 
66  bool is_some() const;
68  bool is_none() const;
69  };
70 } // namespace lib_ruby_parser
71 
72 #endif // LIB_RUBY_PARSER_String_HPP
lib_ruby_parser::String::capacity
size_t capacity
Definition: string.hpp:17
lib_ruby_parser::MaybeString::is_none
bool is_none() const
Returns true if pointer is None
lib_ruby_parser::StringBlob::bytes
uint8_t bytes[sizeof(String)]
Definition: string.hpp:39
lib_ruby_parser::MaybeString::operator=
MaybeString & operator=(MaybeString const &)=delete
lib_ruby_parser::MaybeString::~MaybeString
~MaybeString()=default
lib_ruby_parser::String::ptr
char * ptr
Definition: string.hpp:16
lib_ruby_parser::String::~String
~String()
lib_ruby_parser::String::operator=
String & operator=(String const &)=delete
lib_ruby_parser::StringBlob
Definition: string.hpp:37
lib_ruby_parser::MaybeString
Definition: string.hpp:49
lib_ruby_parser::MaybeString::string
String string
Definition: string.hpp:52
lib_ruby_parser::String::Copied
static String Copied(const char *s)
lib_ruby_parser::String
Definition: string.hpp:13
lib_ruby_parser::String::Owned
static String Owned(char *s, size_t len)
lib_ruby_parser
Definition: api.hpp:7
lib_ruby_parser::String::len
size_t len
Definition: string.hpp:18
lib_ruby_parser::MaybeString::MaybeString
MaybeString()
lib_ruby_parser::String::String
String()=delete
lib_ruby_parser::MaybeString::is_some
bool is_some() const
Returns true if pointer is Some(String)