/*
 * BWTNaive.cpp
 *
 *  Created on: 13. 02. 2021
 *      Author: Martin Prokopic
 */

#include <registration/AlgoRegistration.hpp>
#include "BWTNaive.h"

namespace {

auto BWTNaiveLinearString = registration::AbstractRegister <
        stringology::transform::BWTNaive,
        string::LinearStringTerminatingSymbolBWT < >,
        const string::LinearString < > & > ( stringology::transform::BWTNaive::construct ).setDocumentation (
        "Append a minimal terminating symbol to a LinearString and construct BWT of it.\n"
        "\n"
        "@tparam SymbolType\n"
        "@param str the input string\n"
        "@return the BWT-encoded input string with a minimal terminating symbol appended" );

auto BWTNaiveLinearStringTerminatingSymbolBWT = registration::AbstractRegister <
        stringology::transform::BWTNaive,
        string::LinearStringTerminatingSymbolBWT < >,
        const string::LinearStringTerminatingSymbolBWT < > & > (
        stringology::transform::BWTNaive::construct ).setDocumentation (
        "Construct BWT of a linear string with minimal terminating symbol.\n"
        "\n"
        "@tparam SymbolType\n"
        "@param str the input string with minimal terminating symbol at the end\n"
        "@return the BWT-encoded input string" );

} /* namespace */