ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
CodePointRangeIterator.hpp
Go to the documentation of this file.
1#ifndef CodePointRangeIterator_HPP
2#define CodePointRangeIterator_HPP
3#include <stdint.h>
4#include <stddef.h>
5#include <stdbool.h>
6#include <algorithm>
7#include <memory>
8#include <variant>
9#include <optional>
10#include "diplomat_runtime.hpp"
11
12#include "CodePointRangeIterator.h"
13
15
19struct CodePointRangeIteratorDeleter {
20 void operator()(capi::CodePointRangeIterator* l) const noexcept {
21 capi::CodePointRangeIterator_destroy(l);
22 }
23};
24
30 public:
31
38 inline const capi::CodePointRangeIterator* AsFFI() const { return this->inner.get(); }
39 inline capi::CodePointRangeIterator* AsFFIMut() { return this->inner.get(); }
40 inline explicit CodePointRangeIterator(capi::CodePointRangeIterator* i) : inner(i) {}
43 CodePointRangeIterator& operator=(CodePointRangeIterator&& other) noexcept = default;
44 private:
45 std::unique_ptr<capi::CodePointRangeIterator, CodePointRangeIteratorDeleter> inner;
46};
47
48#include "CodePointRangeIteratorResult.hpp"
49
51 capi::CodePointRangeIteratorResult diplomat_raw_struct_out_value = capi::CodePointRangeIterator_next(this->inner.get());
52 return CodePointRangeIteratorResult{ .start = std::move(diplomat_raw_struct_out_value.start), .end = std::move(diplomat_raw_struct_out_value.end), .done = std::move(diplomat_raw_struct_out_value.done) };
53}
54#endif
CodePointRangeIterator(CodePointRangeIterator &&) noexcept=default
CodePointRangeIteratorResult next()
Definition CodePointRangeIterator.hpp:50
CodePointRangeIterator()=default
CodePointRangeIterator(capi::CodePointRangeIterator *i)
Definition CodePointRangeIterator.hpp:40
Definition CodePointRangeIteratorResult.hpp:25