Don't require the `--structure` argument.
UInt64 seed, const char * determinator_data, size_t determinator_size)
    {
        code_points.resize(params.order);
        char * pos = data;
        char * end = data + buffer_size;
        while (pos < end)
        {
            Table::LookupResult it;
            size_t context_size = params.order;
            while (true)
            {
                it = table.find(hashContext(code_points.data() + code_points.size() - context_size, code_points.data() + code_points.size()));
                if (it && it->getMapped().total + it->getMapped().count_end != 0)
                    break;
                if (context_size == 0)
                    break;
                --context_size;
            }
            if (!it)
                throw Exception("Logical error in markov model", ErrorCodes::LOGICAL_ERROR);
            size_t offset_from_begin_of_string = pos - data;
            size_t determinator_sliding_window_size = params.determinator_sliding_window_size;
            if (determinator_sliding_window_size > determinator_size)
                determinator_sliding_window_size = determinator_size;
            size_t determinator_sliding_window_overflow = offset_from_begin_of_string + determinator_sliding_window_size > determinator_size