Botan 3.11.0
Crypto and TLS for C&
cpuid_features.h
Go to the documentation of this file.
1/**
2* (C) 2025 Jack Lloyd
3* (C) 2025 polarnis
4*
5* Botan is released under the Simplified BSD License (see license.txt)
6*/
7
8#ifndef BOTAN_CPUID_FEATURES_H_
9#define BOTAN_CPUID_FEATURES_H_
10
11#include <botan/api.h>
12#include <cstdint>
13#include <optional>
14#include <string>
15#include <string_view>
16
17namespace Botan {
18
20 public:
21 enum Bit : uint32_t /* NOLINT(*-use-enum-class) */ {
22 SIMD128 = (1U << 0),
23
26 };
27
28 CPUFeature(Bit b) : m_bit(b) {} // NOLINT(*-explicit-conversions)
29
30 uint32_t as_u32() const { return static_cast<uint32_t>(m_bit); }
31
32 std::string to_string() const;
33
34 static std::optional<CPUFeature> from_string(std::string_view s);
35
36 private:
37 Bit m_bit;
38};
39
40} // namespace Botan
41
42#endif
#define BOTAN_TEST_API
Definition api.h:41
uint32_t as_u32() const
static std::optional< CPUFeature > from_string(std::string_view s)
std::string to_string() const