mini-llvm 0.1.0
Loading...
Searching...
No Matches
StringDirective.h
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2
3#pragma once
4
5#include <cstdint>
6#include <string>
7#include <utility>
8#include <vector>
9
12
13namespace mini_llvm::mc {
14
16public:
17 explicit StringDirective(std::vector<int8_t> elements)
18 : elements_(std::move(elements)) {}
19
20 std::vector<int8_t> &elements() & {
21 return elements_;
22 }
23
24 const std::vector<int8_t> &elements() const & {
25 return elements_;
26 }
27
28 std::vector<int8_t> &&elements() && {
29 return std::move(elements_);
30 }
31
32 void setElements(std::vector<int8_t> elements) {
33 elements_ = std::move(elements);
34 }
35
36 std::string format() const override;
37
38private:
39 std::vector<int8_t> elements_;
40};
41
42} // namespace mini_llvm::mc
#define MINI_LLVM_EXPORT
Definition Compiler.h:17
Definition Directive.h:10
const std::vector< int8_t > & elements() const &
Definition StringDirective.h:24
void setElements(std::vector< int8_t > elements)
Definition StringDirective.h:32
std::vector< int8_t > & elements() &
Definition StringDirective.h:20
std::string format() const override
std::vector< int8_t > && elements() &&
Definition StringDirective.h:28
StringDirective(std::vector< int8_t > elements)
Definition StringDirective.h:17
Definition Directive.h:8