| 123456789101112131415161718192021222324252627282930313233 |
- export module Core.BitArray;
- import Core.Types;
- export import Core.ToString;
- export namespace Core {
- class BitArray final {
- u64 length : 56;
- u64 bits : 8;
- u64* data;
- public:
- BitArray() noexcept;
- BitArray(const BitArray& other) noexcept;
- BitArray(BitArray&& other) noexcept;
- ~BitArray() noexcept;
- BitArray& operator=(BitArray other) noexcept;
- BitArray& set(size_t index, u64 value) noexcept;
- u64 get(size_t index) const noexcept;
- size_t getLength() const noexcept;
- size_t getBits() const noexcept;
- size_t getInternalByteSize() const noexcept;
- i64 select(size_t index) const noexcept;
- void resize(size_t newLength, size_t newBits) noexcept;
- void fill(u64 value) noexcept;
- size_t toString(StringBase& b) const noexcept;
- void swap(BitArray& other) noexcept;
- };
- static_assert(sizeof(BitArray) == 16, "invalid bit array size");
- }
|