BareGit
#pragma once

#include <string>

#include <mw/error.hpp>

/// Validated NFC username and normalized uniqueness key.
struct NormalizedUsername
{
    /// NFC display value.
    std::string username;

    /// Full-case-folded NFC uniqueness key.
    std::string key;
};

/// Validate and normalize a submitted UTF-8 username.
mw::E<NormalizedUsername> normalizeUsername(const std::string& input);