Blender V5.0
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#include "BLI_string_ref.hh"
19
20#include <initializer_list>
21#include <iosfwd>
22#include <string>
23
28
33
35bool BLI_uuid_is_nil(bUUID uuid);
36
38bool BLI_uuid_equal(bUUID uuid1, bUUID uuid2);
39
45void BLI_uuid_format(char *buffer, bUUID uuid) ATTR_NONNULL();
46
55bool BLI_uuid_parse_string(bUUID *uuid, const char *buffer) ATTR_NONNULL();
56
58std::ostream &operator<<(std::ostream &stream, bUUID uuid);
59
60namespace blender {
61
62class bUUID : public ::bUUID {
63 public:
67 bUUID() = default;
68
70 bUUID(const ::bUUID &struct_uuid);
71
73 bUUID(std::initializer_list<uint32_t> field_values);
74
76 explicit bUUID(StringRefNull string_formatted_uuid);
77
79 std::string str() const;
80
81 uint64_t hash() const;
82}; // namespace blender
83
84bool operator==(bUUID uuid1, bUUID uuid2);
85bool operator!=(bUUID uuid1, bUUID uuid2);
86
90bool operator<(bUUID uuid1, bUUID uuid2);
91
92} // namespace blender
#define ATTR_NONNULL(...)
bUUID BLI_uuid_nil()
Definition uuid.cc:73
std::ostream & operator<<(std::ostream &stream, bUUID uuid)
Definition uuid.cc:131
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()
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
unsigned long long int uint64_t
bUUID()=default
uint64_t hash() const
Definition uuid.cc:178
std::string str() const
Definition uuid.cc:171
bool operator!=(const CPPType &a, const CPPType &b)
constexpr bool operator<(StringRef a, StringRef b)
bool operator==(const CPPType &a, const CPPType &b)
Universally Unique Identifier according to RFC4122.