LeviLamina
Loading...
Searching...
No Matches
IntegerSequenceCodec.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5namespace astc_codec {
6
7class IntegerSequenceCodec {
8public:
9 // IntegerSequenceCodec inner types define
10 enum class EncodingMode : int {
11 KTritEncoding = 0,
12 KQuintEncoding = 1,
13 KBitEncoding = 2,
14 };
15
16public:
17 // member variables
18 // NOLINTBEGIN
21 // NOLINTEND
22
23public:
24 // prevent constructor by default
25 IntegerSequenceCodec& operator=(IntegerSequenceCodec const&);
26 IntegerSequenceCodec(IntegerSequenceCodec const&);
27 IntegerSequenceCodec();
28
29public:
30 // member functions
31 // NOLINTBEGIN
32#ifdef LL_PLAT_C
33 MCNAPI explicit IntegerSequenceCodec(int range);
34#endif
35 // NOLINTEND
36
37public:
38 // static functions
39 // NOLINTBEGIN
40#ifdef LL_PLAT_C
41 MCNAPI static int GetBitCount(int num_vals, int trits, int quints, int bits);
42
43 MCNAPI static int GetBitCountForRange(int num_vals, int range);
44
45 MCNAPI static void GetCountsForRange(int range, int* trits, int* quints, int* bits);
46#endif
47 // NOLINTEND
48
49public:
50 // constructor thunks
51 // NOLINTBEGIN
52#ifdef LL_PLAT_C
53 MCNAPI void* $ctor(int range);
54#endif
55 // NOLINTEND
56};
57
58} // namespace astc_codec
Definition Alias.h:14