<commit_before>#pragma once

#include <string>
#include <list>
#include <iterator>

#define NOT_IMPLEMENTED throw std::logic_error("Not implemented");

#ifdef _DEBUG
#define ENSURE(A, E)                                                           \
    if (!(A)) {                                                                  \
    throw std::invalid_argument(E);                                            \
    }
#define ENSURE_NOT_NULL(A) ENSURE(A, "null pointer")
#else
#define ENSURE(A, E)
#define ENSURE_NOT_NULL(A)
#endif

namespace memseries {
    namespace utils {

        struct BitOperations {
            template <class T> static inline uint8_t get(T v, uint8_t num) {
                return (v >> num) & 1;
            }

            template <class T> static inline bool check(T v, uint8_t num) {
                return get(v, num) == 1;
            }

            template <class T> static inline T set(T v, uint8_t num) {
                return v | (T(1) << num);
            }

            template <class T> static inline T clr(T v, uint8_t num) {
                return v & ~(T(1) << num);
            }
        };

        class NonCopy {
        private:
            NonCopy(const NonCopy &) = delete;
            NonCopy &operator=(const NonCopy &) = delete;

        protected:
            NonCopy() = default;
        };

        template <typename T> bool inInterval(T from, T to, T value) {
            return value >= from && value <= to;
        }

        struct Range
        {
            uint8_t *begin;
            uint8_t *end;
            Range(){
                begin=end=nullptr;
            }

            Range(uint8_t *_begin, uint8_t *_end){
                begin=_begin;
                end=_end;
            }
        };
    }
}<commit_msg>Range dtor.<commit_after>#pragma once

#include <string>
#include <list>
#include <iterator>

#define NOT_IMPLEMENTED throw std::logic_error("Not implemented");

#ifdef _DEBUG
#define ENSURE(A, E)                                                           \
    if (!(A)) {                                                                  \
    throw std::invalid_argument(E);                                            \
    }
#define ENSURE_NOT_NULL(A) ENSURE(A, "null pointer")
#else
#define ENSURE(A, E)
#define ENSURE_NOT_NULL(A)
#endif

namespace memseries {
    namespace utils {

        struct BitOperations {
            template <class T> static inline uint8_t get(T v, uint8_t num) {
                return (v >> num) & 1;
            }

            template <class T> static inline bool check(T v, uint8_t num) {
                return get(v, num) == 1;
            }

            template <class T> static inline T set(T v, uint8_t num) {
                return v | (T(1) << num);
            }

            template <class T> static inline T clr(T v, uint8_t num) {
                return v & ~(T(1) << num);
            }
        };

        class NonCopy {
        private:
            NonCopy(const NonCopy &) = delete;
            NonCopy &operator=(const NonCopy &) = delete;

        protected:
            NonCopy() = default;
        };

        template <typename T> bool inInterval(T from, T to, T value) {
            return value >= from && value <= to;
        }

        struct Range
        {
            uint8_t *begin;
            uint8_t *end;
            Range(){
                begin=end=nullptr;
            }

            Range(uint8_t *_begin, uint8_t *_end){
                begin=_begin;
                end=_end;
            }

            ~Range(){

            }
        };
    }
}
{'fraction_non_alphanumeric': 0.10299003322259136, 'fraction_numerical': 0.007198228128460687, 'mean_word_length': 1.2233846153846153, 'pattern_counts': {'":': 0, '<': 29, '<?xml version=': 0, '>': 25, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 12, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1264243', 'n_tokens_mistral': 1027, 'n_tokens_neox': 993, 'n_words': 278}