LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
EnumType.hpp
Go to the documentation of this file.
1/* Copyright 2022 - 2025 R. Thomas
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15#ifndef LIEF_DWARF_EDITOR_ENUM_TYPE_H
16#define LIEF_DWARF_EDITOR_ENUM_TYPE_H
17#include <cstdint>
18#include <string>
19
20#include "LIEF/visibility.h"
22
23namespace LIEF {
24namespace dwarf {
25namespace editor {
26
27namespace details {
28class EnumValue;
29}
30class LIEF_API EnumType : public Type {
33 public:
34 using Type::Type;
35 class LIEF_API Value {
38 public:
39 Value() = delete;
40 Value(std::unique_ptr<details::EnumValue> impl);
41
43 private:
44 std::unique_ptr<details::EnumValue> impl_;
45 };
46 EnumType& set_size(uint64_t size);
50 std::unique_ptr<Value> add_value(const std::string& name, int64_t value);
53
54 static bool classof(const Type* type);
55
56 ~EnumType() override = default;
57};
58
59}
60}
61}
62#endif
~Value()
Value(std::unique_ptr< details::EnumValue > impl)
Value()=delete
This class represents an editable enum type (DW_TAG_enumeration_type)
Definition EnumType.hpp:32
EnumType & set_size(uint64_t size)
Define the number of bytes required to hold an instance of the enumeration (DW_AT_byte_size).
~EnumType() override=default
static bool classof(const Type *type)
std::unique_ptr< Value > add_value(const std::string &name, int64_t value)
Add an enum value by specifying its name and its integer value.
This class is the base class for any types created when editing DWARF debug info.
Definition DWARF/editor/Type.hpp:36
Definition DWARF/editor/CompilationUnit.hpp:36
Definition Editor.hpp:30
Namespace for the DWARF debug format.
Definition DWARF/CompilationUnit.hpp:28
LIEF namespace.
Definition Abstract/Binary.hpp:39
#define LIEF_API
Definition visibility.h:41