catboost 1.25.1 → 1.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DEPLOYMENT.md +22 -15
- package/README.md +37 -27
- package/binding.gyp +5 -7
- package/build_scripts/bootstrap.js +2 -1
- package/build_scripts/out/build.js +46 -68
- package/build_scripts/out/build_model.js +1 -1
- package/build_scripts/out/{build_ya.js → build_native.js} +1 -1
- package/build_scripts/out/ci.js +5 -5
- package/build_scripts/out/config.js +32 -18
- package/build_scripts/out/install.js +5 -3
- package/build_scripts/out/package_prepublish.js +1 -1
- package/build_scripts/out/packaging.js +1 -19
- package/build_scripts/out/run_tests.js +1 -1
- package/build_scripts/out/test.js +8 -3
- package/config.json +18 -11
- package/inc/catboost/libs/model_interface/c_api.h +349 -3
- package/lib/catboost.d.ts +65 -21
- package/package.json +4 -4
- package/src/api_helpers.cpp +100 -24
- package/src/api_helpers.h +8 -7
- package/src/api_module.cpp +1 -2
- package/src/model.cpp +483 -83
- package/src/model.h +24 -9
- package/inc/contrib/libs/cxxsupp/system_stl/include/stlfwd +0 -14
- package/inc/util/charset/recode_result.h +0 -9
- package/inc/util/charset/unicode_table.h +0 -123
- package/inc/util/charset/unidata.h +0 -421
- package/inc/util/charset/utf8.h +0 -384
- package/inc/util/charset/wide.h +0 -843
- package/inc/util/charset/wide_specific.h +0 -22
- package/inc/util/datetime/base.h +0 -669
- package/inc/util/datetime/constants.h +0 -7
- package/inc/util/datetime/cputimer.h +0 -124
- package/inc/util/datetime/parser.h +0 -292
- package/inc/util/datetime/systime.h +0 -47
- package/inc/util/datetime/uptime.h +0 -8
- package/inc/util/digest/city.h +0 -88
- package/inc/util/digest/fnv.h +0 -73
- package/inc/util/digest/multi.h +0 -14
- package/inc/util/digest/murmur.h +0 -57
- package/inc/util/digest/numeric.h +0 -86
- package/inc/util/digest/sequence.h +0 -48
- package/inc/util/draft/date.h +0 -129
- package/inc/util/draft/datetime.h +0 -184
- package/inc/util/draft/enum.h +0 -136
- package/inc/util/draft/holder_vector.h +0 -102
- package/inc/util/draft/ip.h +0 -131
- package/inc/util/draft/matrix.h +0 -108
- package/inc/util/draft/memory.h +0 -40
- package/inc/util/folder/dirent_win.h +0 -46
- package/inc/util/folder/dirut.h +0 -121
- package/inc/util/folder/filelist.h +0 -81
- package/inc/util/folder/fts.h +0 -108
- package/inc/util/folder/iterator.h +0 -109
- package/inc/util/folder/lstat_win.h +0 -20
- package/inc/util/folder/path.h +0 -225
- package/inc/util/folder/pathsplit.h +0 -113
- package/inc/util/folder/tempdir.h +0 -42
- package/inc/util/generic/adaptor.h +0 -134
- package/inc/util/generic/algorithm.h +0 -765
- package/inc/util/generic/array_ref.h +0 -282
- package/inc/util/generic/array_size.h +0 -24
- package/inc/util/generic/benchmark/vector_count_ctor/f.h +0 -9
- package/inc/util/generic/bitmap.h +0 -1115
- package/inc/util/generic/bitops.h +0 -459
- package/inc/util/generic/bt_exception.h +0 -24
- package/inc/util/generic/buffer.h +0 -232
- package/inc/util/generic/cast.h +0 -176
- package/inc/util/generic/deque.h +0 -24
- package/inc/util/generic/explicit_type.h +0 -42
- package/inc/util/generic/fastqueue.h +0 -55
- package/inc/util/generic/flags.h +0 -244
- package/inc/util/generic/function.h +0 -103
- package/inc/util/generic/fwd.h +0 -171
- package/inc/util/generic/guid.h +0 -61
- package/inc/util/generic/hash.h +0 -2032
- package/inc/util/generic/hash_primes.h +0 -140
- package/inc/util/generic/hash_set.h +0 -490
- package/inc/util/generic/hide_ptr.h +0 -3
- package/inc/util/generic/intrlist.h +0 -876
- package/inc/util/generic/is_in.h +0 -53
- package/inc/util/generic/iterator.h +0 -137
- package/inc/util/generic/iterator_range.h +0 -105
- package/inc/util/generic/lazy_value.h +0 -66
- package/inc/util/generic/list.h +0 -22
- package/inc/util/generic/map.h +0 -44
- package/inc/util/generic/mapfindptr.h +0 -60
- package/inc/util/generic/maybe.h +0 -713
- package/inc/util/generic/maybe_traits.h +0 -164
- package/inc/util/generic/mem_copy.h +0 -55
- package/inc/util/generic/noncopyable.h +0 -38
- package/inc/util/generic/object_counter.h +0 -53
- package/inc/util/generic/ptr.h +0 -1113
- package/inc/util/generic/queue.h +0 -57
- package/inc/util/generic/refcount.h +0 -162
- package/inc/util/generic/reserve.h +0 -11
- package/inc/util/generic/scope.h +0 -65
- package/inc/util/generic/serialized_enum.h +0 -406
- package/inc/util/generic/set.h +0 -42
- package/inc/util/generic/singleton.h +0 -136
- package/inc/util/generic/size_literals.h +0 -65
- package/inc/util/generic/stack.h +0 -18
- package/inc/util/generic/store_policy.h +0 -120
- package/inc/util/generic/strbase.h +0 -612
- package/inc/util/generic/strbuf.h +0 -552
- package/inc/util/generic/strfcpy.h +0 -17
- package/inc/util/generic/string.h +0 -1572
- package/inc/util/generic/string_hash.h +0 -21
- package/inc/util/generic/string_ut.h +0 -1175
- package/inc/util/generic/type_name.h +0 -34
- package/inc/util/generic/typelist.h +0 -114
- package/inc/util/generic/typetraits.h +0 -325
- package/inc/util/generic/utility.h +0 -132
- package/inc/util/generic/va_args.h +0 -400
- package/inc/util/generic/variant.h +0 -631
- package/inc/util/generic/variant_traits.h +0 -171
- package/inc/util/generic/vector.h +0 -119
- package/inc/util/generic/xrange.h +0 -258
- package/inc/util/generic/yexception.h +0 -212
- package/inc/util/generic/yexception_ut.h +0 -14
- package/inc/util/generic/ylimits.h +0 -92
- package/inc/util/generic/ymath.h +0 -206
- package/inc/util/memory/addstorage.h +0 -93
- package/inc/util/memory/alloc.h +0 -27
- package/inc/util/memory/blob.h +0 -296
- package/inc/util/memory/mmapalloc.h +0 -8
- package/inc/util/memory/pool.h +0 -432
- package/inc/util/memory/segmented_string_pool.h +0 -194
- package/inc/util/memory/segpool_alloc.h +0 -118
- package/inc/util/memory/smallobj.h +0 -141
- package/inc/util/memory/tempbuf.h +0 -111
- package/inc/util/network/address.h +0 -136
- package/inc/util/network/endpoint.h +0 -61
- package/inc/util/network/hostip.h +0 -16
- package/inc/util/network/init.h +0 -60
- package/inc/util/network/interface.h +0 -17
- package/inc/util/network/iovec.h +0 -65
- package/inc/util/network/ip.h +0 -116
- package/inc/util/network/nonblock.h +0 -8
- package/inc/util/network/pair.h +0 -9
- package/inc/util/network/poller.h +0 -58
- package/inc/util/network/pollerimpl.h +0 -707
- package/inc/util/network/sock.h +0 -608
- package/inc/util/network/socket.h +0 -421
- package/inc/util/random/common_ops.h +0 -130
- package/inc/util/random/easy.h +0 -47
- package/inc/util/random/entropy.h +0 -21
- package/inc/util/random/fast.h +0 -101
- package/inc/util/random/init_atfork.h +0 -3
- package/inc/util/random/lcg_engine.h +0 -66
- package/inc/util/random/mersenne.h +0 -46
- package/inc/util/random/mersenne32.h +0 -50
- package/inc/util/random/mersenne64.h +0 -50
- package/inc/util/random/normal.h +0 -38
- package/inc/util/random/random.h +0 -30
- package/inc/util/random/shuffle.h +0 -39
- package/inc/util/str_stl.h +0 -266
- package/inc/util/stream/aligned.h +0 -99
- package/inc/util/stream/buffer.h +0 -119
- package/inc/util/stream/buffered.h +0 -225
- package/inc/util/stream/debug.h +0 -53
- package/inc/util/stream/direct_io.h +0 -43
- package/inc/util/stream/file.h +0 -108
- package/inc/util/stream/format.h +0 -444
- package/inc/util/stream/fwd.h +0 -100
- package/inc/util/stream/hex.h +0 -8
- package/inc/util/stream/holder.h +0 -44
- package/inc/util/stream/input.h +0 -273
- package/inc/util/stream/labeled.h +0 -19
- package/inc/util/stream/length.h +0 -100
- package/inc/util/stream/mem.h +0 -255
- package/inc/util/stream/multi.h +0 -32
- package/inc/util/stream/null.h +0 -61
- package/inc/util/stream/output.h +0 -304
- package/inc/util/stream/pipe.h +0 -112
- package/inc/util/stream/printf.h +0 -25
- package/inc/util/stream/str.h +0 -207
- package/inc/util/stream/tee.h +0 -28
- package/inc/util/stream/tempbuf.h +0 -21
- package/inc/util/stream/tokenizer.h +0 -214
- package/inc/util/stream/trace.h +0 -60
- package/inc/util/stream/walk.h +0 -35
- package/inc/util/stream/zerocopy.h +0 -91
- package/inc/util/stream/zerocopy_output.h +0 -57
- package/inc/util/stream/zlib.h +0 -173
- package/inc/util/string/ascii.h +0 -236
- package/inc/util/string/builder.h +0 -39
- package/inc/util/string/cast.h +0 -347
- package/inc/util/string/cstriter.h +0 -14
- package/inc/util/string/escape.h +0 -70
- package/inc/util/string/hex.h +0 -59
- package/inc/util/string/join.h +0 -194
- package/inc/util/string/printf.h +0 -13
- package/inc/util/string/reverse.h +0 -16
- package/inc/util/string/split.h +0 -1080
- package/inc/util/string/strip.h +0 -257
- package/inc/util/string/strspn.h +0 -65
- package/inc/util/string/subst.h +0 -56
- package/inc/util/string/type.h +0 -50
- package/inc/util/string/util.h +0 -195
- package/inc/util/string/vector.h +0 -132
- package/inc/util/system/align.h +0 -50
- package/inc/util/system/atexit.h +0 -22
- package/inc/util/system/atomic.h +0 -51
- package/inc/util/system/atomic_gcc.h +0 -90
- package/inc/util/system/atomic_ops.h +0 -189
- package/inc/util/system/atomic_win.h +0 -114
- package/inc/util/system/backtrace.h +0 -39
- package/inc/util/system/byteorder.h +0 -186
- package/inc/util/system/compat.h +0 -84
- package/inc/util/system/compiler.h +0 -620
- package/inc/util/system/condvar.h +0 -71
- package/inc/util/system/context.h +0 -181
- package/inc/util/system/context_aarch64.h +0 -8
- package/inc/util/system/context_i686.h +0 -9
- package/inc/util/system/context_x86.h +0 -12
- package/inc/util/system/context_x86_64.h +0 -7
- package/inc/util/system/cpu_id.h +0 -159
- package/inc/util/system/daemon.h +0 -28
- package/inc/util/system/datetime.h +0 -98
- package/inc/util/system/defaults.h +0 -149
- package/inc/util/system/demangle.h +0 -5
- package/inc/util/system/demangle_impl.h +0 -23
- package/inc/util/system/direct_io.h +0 -71
- package/inc/util/system/dynlib.h +0 -119
- package/inc/util/system/env.h +0 -32
- package/inc/util/system/error.h +0 -95
- package/inc/util/system/event.h +0 -122
- package/inc/util/system/execpath.h +0 -17
- package/inc/util/system/fasttime.h +0 -6
- package/inc/util/system/fhandle.h +0 -27
- package/inc/util/system/file.h +0 -210
- package/inc/util/system/file_lock.h +0 -34
- package/inc/util/system/filemap.h +0 -383
- package/inc/util/system/flock.h +0 -35
- package/inc/util/system/fs.h +0 -156
- package/inc/util/system/fs_win.h +0 -29
- package/inc/util/system/fstat.h +0 -46
- package/inc/util/system/getpid.h +0 -12
- package/inc/util/system/guard.h +0 -179
- package/inc/util/system/hi_lo.h +0 -139
- package/inc/util/system/hostname.h +0 -10
- package/inc/util/system/hp_timer.h +0 -36
- package/inc/util/system/info.h +0 -12
- package/inc/util/system/interrupt_signals.h +0 -22
- package/inc/util/system/madvise.h +0 -30
- package/inc/util/system/maxlen.h +0 -32
- package/inc/util/system/mem_info.h +0 -18
- package/inc/util/system/mincore.h +0 -38
- package/inc/util/system/mktemp.h +0 -11
- package/inc/util/system/mlock.h +0 -43
- package/inc/util/system/mutex.h +0 -67
- package/inc/util/system/nice.h +0 -3
- package/inc/util/system/pipe.h +0 -90
- package/inc/util/system/platform.h +0 -246
- package/inc/util/system/progname.h +0 -13
- package/inc/util/system/protect.h +0 -25
- package/inc/util/system/rusage.h +0 -26
- package/inc/util/system/rwlock.h +0 -78
- package/inc/util/system/sanitizers.h +0 -122
- package/inc/util/system/sem.h +0 -41
- package/inc/util/system/shellcommand.h +0 -472
- package/inc/util/system/shmat.h +0 -32
- package/inc/util/system/sigset.h +0 -78
- package/inc/util/system/spin_wait.h +0 -10
- package/inc/util/system/spinlock.h +0 -121
- package/inc/util/system/src_location.h +0 -25
- package/inc/util/system/src_root.h +0 -68
- package/inc/util/system/sys_alloc.h +0 -43
- package/inc/util/system/sysstat.h +0 -52
- package/inc/util/system/tempfile.h +0 -34
- package/inc/util/system/thread.h +0 -167
- package/inc/util/system/tls.h +0 -307
- package/inc/util/system/types.h +0 -119
- package/inc/util/system/unaligned_mem.h +0 -67
- package/inc/util/system/user.h +0 -5
- package/inc/util/system/utime.h +0 -6
- package/inc/util/system/valgrind.h +0 -48
- package/inc/util/system/winint.h +0 -43
- package/inc/util/system/yassert.h +0 -121
- package/inc/util/system/yield.h +0 -4
- package/inc/util/thread/factory.h +0 -65
- package/inc/util/thread/fwd.h +0 -30
- package/inc/util/thread/lfqueue.h +0 -406
- package/inc/util/thread/lfstack.h +0 -188
- package/inc/util/thread/pool.h +0 -388
- package/inc/util/thread/singleton.h +0 -42
- package/inc/util/ysafeptr.h +0 -427
- package/inc/util/ysaveload.h +0 -700
package/inc/util/generic/fwd.h
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <util/system/defaults.h>
|
|
4
|
-
|
|
5
|
-
#include <stlfwd>
|
|
6
|
-
|
|
7
|
-
template <typename TCharType, typename TTraits = std::char_traits<TCharType>>
|
|
8
|
-
class TBasicString;
|
|
9
|
-
|
|
10
|
-
using TString = TBasicString<char>;
|
|
11
|
-
using TUtf16String = TBasicString<wchar16>;
|
|
12
|
-
using TUtf32String = TBasicString<wchar32>;
|
|
13
|
-
|
|
14
|
-
template <typename TCharType, typename TTraits = std::char_traits<TCharType>>
|
|
15
|
-
class TBasicStringBuf;
|
|
16
|
-
|
|
17
|
-
using TStringBuf = TBasicStringBuf<char>;
|
|
18
|
-
using TWtringBuf = TBasicStringBuf<wchar16>;
|
|
19
|
-
using TUtf32StringBuf = TBasicStringBuf<wchar32>;
|
|
20
|
-
|
|
21
|
-
//misc
|
|
22
|
-
class TBuffer;
|
|
23
|
-
|
|
24
|
-
//functors
|
|
25
|
-
template <class T = void>
|
|
26
|
-
struct TLess;
|
|
27
|
-
|
|
28
|
-
template <class T = void>
|
|
29
|
-
struct TGreater;
|
|
30
|
-
|
|
31
|
-
template <class T = void>
|
|
32
|
-
struct TEqualTo;
|
|
33
|
-
|
|
34
|
-
template <class T>
|
|
35
|
-
struct THash;
|
|
36
|
-
|
|
37
|
-
//intrusive containers
|
|
38
|
-
struct TIntrusiveListDefaultTag;
|
|
39
|
-
template <class T, class Tag = TIntrusiveListDefaultTag>
|
|
40
|
-
class TIntrusiveList;
|
|
41
|
-
|
|
42
|
-
template <class T, class D, class Tag = TIntrusiveListDefaultTag>
|
|
43
|
-
class TIntrusiveListWithAutoDelete;
|
|
44
|
-
|
|
45
|
-
template <class T, class Tag = TIntrusiveListDefaultTag>
|
|
46
|
-
class TIntrusiveSList;
|
|
47
|
-
|
|
48
|
-
template <class T, class C>
|
|
49
|
-
class TAvlTree;
|
|
50
|
-
|
|
51
|
-
template <class TValue, class TCmp>
|
|
52
|
-
class TRbTree;
|
|
53
|
-
|
|
54
|
-
//containers
|
|
55
|
-
template <class T, class A = std::allocator<T>>
|
|
56
|
-
class TVector;
|
|
57
|
-
|
|
58
|
-
template <class T, class A = std::allocator<T>>
|
|
59
|
-
class TDeque;
|
|
60
|
-
|
|
61
|
-
template <class T, class S = TDeque<T>>
|
|
62
|
-
class TQueue;
|
|
63
|
-
|
|
64
|
-
template <class T, class S = TVector<T>, class C = TLess<T>>
|
|
65
|
-
class TPriorityQueue;
|
|
66
|
-
|
|
67
|
-
template <class Key, class T, class HashFcn = THash<Key>, class EqualKey = TEqualTo<Key>, class Alloc = std::allocator<T>>
|
|
68
|
-
class THashMap;
|
|
69
|
-
|
|
70
|
-
template <class Key, class T, class HashFcn = THash<Key>, class EqualKey = TEqualTo<Key>, class Alloc = std::allocator<T>>
|
|
71
|
-
class THashMultiMap;
|
|
72
|
-
|
|
73
|
-
template <class Value, class HashFcn = THash<Value>, class EqualKey = TEqualTo<Value>, class Alloc = std::allocator<Value>>
|
|
74
|
-
class THashSet;
|
|
75
|
-
|
|
76
|
-
template <class Value, class HashFcn = THash<Value>, class EqualKey = TEqualTo<Value>, class Alloc = std::allocator<Value>>
|
|
77
|
-
class THashMultiSet;
|
|
78
|
-
|
|
79
|
-
template <class T, class A = std::allocator<T>>
|
|
80
|
-
class TList;
|
|
81
|
-
|
|
82
|
-
template <class K, class V, class Less = TLess<K>, class A = std::allocator<K>>
|
|
83
|
-
class TMap;
|
|
84
|
-
|
|
85
|
-
template <class K, class V, class Less = TLess<K>, class A = std::allocator<K>>
|
|
86
|
-
class TMultiMap;
|
|
87
|
-
|
|
88
|
-
template <class K, class L = TLess<K>, class A = std::allocator<K>>
|
|
89
|
-
class TSet;
|
|
90
|
-
|
|
91
|
-
template <class K, class L = TLess<K>, class A = std::allocator<K>>
|
|
92
|
-
class TMultiSet;
|
|
93
|
-
|
|
94
|
-
template <class T, class S = TDeque<T>>
|
|
95
|
-
class TStack;
|
|
96
|
-
|
|
97
|
-
template <size_t BitCount, typename TChunkType = ui64>
|
|
98
|
-
class TBitMap;
|
|
99
|
-
|
|
100
|
-
//autopointers
|
|
101
|
-
class TDelete;
|
|
102
|
-
class TDeleteArray;
|
|
103
|
-
class TFree;
|
|
104
|
-
class TCopyNew;
|
|
105
|
-
|
|
106
|
-
template <class T, class D = TDelete>
|
|
107
|
-
class TAutoPtr;
|
|
108
|
-
|
|
109
|
-
template <class T, class D = TDelete>
|
|
110
|
-
class THolder;
|
|
111
|
-
|
|
112
|
-
template <class T, class C, class D = TDelete>
|
|
113
|
-
class TRefCounted;
|
|
114
|
-
|
|
115
|
-
template <class T>
|
|
116
|
-
class TDefaultIntrusivePtrOps;
|
|
117
|
-
|
|
118
|
-
template <class T, class Ops>
|
|
119
|
-
class TSimpleIntrusiveOps;
|
|
120
|
-
|
|
121
|
-
template <class T, class Ops = TDefaultIntrusivePtrOps<T>>
|
|
122
|
-
class TIntrusivePtr;
|
|
123
|
-
|
|
124
|
-
template <class T, class Ops = TDefaultIntrusivePtrOps<T>>
|
|
125
|
-
class TIntrusiveConstPtr;
|
|
126
|
-
|
|
127
|
-
template <class T, class Ops = TDefaultIntrusivePtrOps<T>>
|
|
128
|
-
using TSimpleIntrusivePtr = TIntrusivePtr<T, TSimpleIntrusiveOps<T, Ops>>;
|
|
129
|
-
|
|
130
|
-
template <class T, class C, class D = TDelete>
|
|
131
|
-
class TSharedPtr;
|
|
132
|
-
|
|
133
|
-
template <class T, class C = TCopyNew, class D = TDelete>
|
|
134
|
-
class TCopyPtr;
|
|
135
|
-
|
|
136
|
-
template <class TPtr, class TCopy = TCopyNew>
|
|
137
|
-
class TCowPtr;
|
|
138
|
-
|
|
139
|
-
template <typename T>
|
|
140
|
-
class TPtrArg;
|
|
141
|
-
|
|
142
|
-
template <typename T>
|
|
143
|
-
using TArrayHolder = THolder<T, TDeleteArray>;
|
|
144
|
-
|
|
145
|
-
template <typename T>
|
|
146
|
-
using TMallocHolder = THolder<T, TFree>;
|
|
147
|
-
|
|
148
|
-
template <typename T>
|
|
149
|
-
using TArrayPtr = TAutoPtr<T, TDeleteArray>;
|
|
150
|
-
|
|
151
|
-
template <typename T>
|
|
152
|
-
using TMallocPtr = TAutoPtr<T, TFree>;
|
|
153
|
-
|
|
154
|
-
//maybe
|
|
155
|
-
namespace NMaybe {
|
|
156
|
-
struct TPolicyUndefinedExcept;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
template <class T, class Policy = ::NMaybe::TPolicyUndefinedExcept>
|
|
160
|
-
class TMaybe;
|
|
161
|
-
|
|
162
|
-
struct TGUID;
|
|
163
|
-
|
|
164
|
-
template <class... Ts>
|
|
165
|
-
class TVariant;
|
|
166
|
-
|
|
167
|
-
template <class T>
|
|
168
|
-
class TArrayRef;
|
|
169
|
-
|
|
170
|
-
template <class T>
|
|
171
|
-
using TConstArrayRef = TArrayRef<const T>;
|
package/inc/util/generic/guid.h
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include "fwd.h"
|
|
4
|
-
|
|
5
|
-
#include <util/str_stl.h>
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* UUID generation
|
|
9
|
-
*
|
|
10
|
-
* NOTE: It is not a real GUID (RFC 4122), as described in
|
|
11
|
-
* https://en.wikipedia.org/wiki/Universally_unique_identifier
|
|
12
|
-
* https://en.wikipedia.org/wiki/Globally_unique_identifier
|
|
13
|
-
*
|
|
14
|
-
* See https://clubs.at.yandex-team.ru/stackoverflow/10238/10240
|
|
15
|
-
* and https://st.yandex-team.ru/IGNIETFERRO-768 for details.
|
|
16
|
-
*/
|
|
17
|
-
struct TGUID {
|
|
18
|
-
ui32 dw[4] = {};
|
|
19
|
-
|
|
20
|
-
constexpr bool IsEmpty() const noexcept {
|
|
21
|
-
return (dw[0] | dw[1] | dw[2] | dw[3]) == 0;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
constexpr explicit operator bool() const noexcept {
|
|
25
|
-
return !IsEmpty();
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
constexpr bool operator==(const TGUID& a, const TGUID& b) noexcept {
|
|
30
|
-
return a.dw[0] == b.dw[0] && a.dw[1] == b.dw[1] && a.dw[2] == b.dw[2] && a.dw[3] == b.dw[3];
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
constexpr bool operator!=(const TGUID& a, const TGUID& b) noexcept {
|
|
34
|
-
return !(a == b);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
struct TGUIDHash {
|
|
38
|
-
constexpr int operator()(const TGUID& a) const noexcept {
|
|
39
|
-
return a.dw[0] + a.dw[1] + a.dw[2] + a.dw[3];
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
template <>
|
|
44
|
-
struct THash<TGUID> {
|
|
45
|
-
constexpr size_t operator()(const TGUID& g) const noexcept {
|
|
46
|
-
return (unsigned int)TGUIDHash()(g);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
void CreateGuid(TGUID* res);
|
|
51
|
-
TString GetGuidAsString(const TGUID& g);
|
|
52
|
-
TString CreateGuidAsString();
|
|
53
|
-
TGUID GetGuid(TStringBuf s);
|
|
54
|
-
bool GetGuid(TStringBuf s, TGUID& result);
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Functions for correct parsing RFC4122 GUID, which described in
|
|
58
|
-
* https://en.wikipedia.org/wiki/Universally_unique_identifier
|
|
59
|
-
**/
|
|
60
|
-
TGUID GetUuid(TStringBuf s);
|
|
61
|
-
bool GetUuid(TStringBuf s, TGUID& result);
|