Blender  V3.3
BLI_uuid.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #pragma once
4 
13 #include "DNA_uuid_types.h"
14 
15 #include "BLI_compiler_attrs.h"
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
25 
29 bUUID BLI_uuid_nil(void);
30 
32 bool BLI_uuid_is_nil(bUUID uuid);
33 
35 bool BLI_uuid_equal(bUUID uuid1, bUUID uuid2);
36 
42 void BLI_uuid_format(char *buffer, bUUID uuid) ATTR_NONNULL();
43 
52 bool BLI_uuid_parse_string(bUUID *uuid, const char *buffer) ATTR_NONNULL();
53 
54 #ifdef __cplusplus
55 }
56 
57 # include <initializer_list>
58 # include <ostream>
59 
61 std::ostream &operator<<(std::ostream &stream, bUUID uuid);
62 
63 namespace blender {
64 
65 class bUUID : public ::bUUID {
66  public:
70  bUUID() = default;
71 
73  bUUID(const ::bUUID &struct_uuid);
74 
76  bUUID(std::initializer_list<uint32_t> field_values);
77 
79  explicit bUUID(const std::string &string_formatted_uuid);
80 
81  uint64_t hash() const;
82 }; // namespace blender
83 
84 bool operator==(bUUID uuid1, bUUID uuid2);
85 bool operator!=(bUUID uuid1, bUUID uuid2);
86 
90 bool operator<(bUUID uuid1, bUUID uuid2);
91 
92 } // namespace blender
93 
94 #endif
#define ATTR_NONNULL(...)
bUUID BLI_uuid_nil(void)
Definition: uuid.cc:70
bool BLI_uuid_parse_string(bUUID *uuid, const char *buffer) ATTR_NONNULL()
Definition: uuid.cc:103
bool BLI_uuid_is_nil(bUUID uuid)
Definition: uuid.cc:76
bUUID BLI_uuid_generate_random(void)
Definition: uuid.cc:21
bool BLI_uuid_equal(bUUID uuid1, bUUID uuid2)
Definition: uuid.cc:81
void BLI_uuid_format(char *buffer, bUUID uuid) ATTR_NONNULL()
Definition: uuid.cc:86
struct bUUID bUUID
Universally Unique Identifier according to RFC4122.
ccl_global float * buffer
std::ostream & operator<<(std::ostream &stream, const AssetCatalogPath &path_to_append)
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:153
unsigned __int64 uint64_t
Definition: stdint.h:90
Universally Unique Identifier according to RFC4122.