Blender V4.3
BLI_uuid.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
15#include "DNA_uuid_types.h"
16
17#include "BLI_compiler_attrs.h"
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
27
32
34bool BLI_uuid_is_nil(bUUID uuid);
35
37bool BLI_uuid_equal(bUUID uuid1, bUUID uuid2);
38
44void BLI_uuid_format(char *buffer, bUUID uuid) ATTR_NONNULL();
45
54bool BLI_uuid_parse_string(bUUID *uuid, const char *buffer) ATTR_NONNULL();
55
56#ifdef __cplusplus
57}
58
59# include <initializer_list>
60# include <iosfwd>
61# include <string>
62
63# include "BLI_string_ref.hh"
64
66std::ostream &operator<<(std::ostream &stream, bUUID uuid);
67
68namespace blender {
69
70class bUUID : public ::bUUID {
71 public:
75 bUUID() = default;
76
78 bUUID(const ::bUUID &struct_uuid);
79
81 bUUID(std::initializer_list<uint32_t> field_values);
82
84 explicit bUUID(const StringRefNull string_formatted_uuid);
85
87 std::string str() const;
88
89 uint64_t hash() const;
90}; // namespace blender
91
92bool operator==(bUUID uuid1, bUUID uuid2);
93bool operator!=(bUUID uuid1, bUUID uuid2);
94
98bool operator<(bUUID uuid1, bUUID uuid2);
99
100} // namespace blender
101
102#endif
#define ATTR_NONNULL(...)
bUUID BLI_uuid_nil(void)
Definition uuid.cc:73
bool BLI_uuid_parse_string(bUUID *uuid, const char *buffer) ATTR_NONNULL()
Definition uuid.cc:112
bool BLI_uuid_is_nil(bUUID uuid)
Definition uuid.cc:79
bUUID BLI_uuid_generate_random(void)
Definition uuid.cc:24
bool BLI_uuid_equal(bUUID uuid1, bUUID uuid2)
Definition uuid.cc:84
void BLI_uuid_format(char *buffer, bUUID uuid) ATTR_NONNULL()
Definition uuid.cc:89
struct bUUID bUUID
Universally Unique Identifier according to RFC4122.
#define str(s)
constexpr bool operator!=(StringRef a, StringRef b)
constexpr bool operator==(StringRef a, StringRef b)
constexpr bool operator<(StringRef a, StringRef b)
#define hash
Definition noise.c:154
unsigned __int64 uint64_t
Definition stdint.h:90
Universally Unique Identifier according to RFC4122.
std::ostream & operator<<(std::ostream &stream, bUUID uuid)
Definition uuid.cc:131