33 lines
1.1 KiB
C++
33 lines
1.1 KiB
C++
/*
|
|
* Copyright 2015 - 2025 gary@drinkingtea.net
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "string.hpp"
|
|
|
|
namespace ox {
|
|
|
|
class StringParam {
|
|
private:
|
|
ox::String m_value;
|
|
public:
|
|
StringParam(StringParam const&) = delete;
|
|
constexpr StringParam(StringParam &&o) noexcept: m_value{std::move(o.m_value)} {}
|
|
constexpr StringParam(char const*value) noexcept: m_value{value} {}
|
|
constexpr StringParam(detail::BaseStringView const&value) noexcept: m_value{value} {}
|
|
constexpr StringParam(ox::String const&value) noexcept: m_value{value} {}
|
|
constexpr StringParam(ox::String &&value) noexcept: m_value{std::move(value)} {}
|
|
constexpr operator ox::String() && noexcept { return std::move(m_value); }
|
|
explicit constexpr operator ox::CStringView() const noexcept { return m_value; }
|
|
explicit constexpr operator ox::StringView() const noexcept { return m_value; }
|
|
[[nodiscard]]
|
|
constexpr ox::CStringView view() const noexcept { return m_value; }
|
|
};
|
|
|
|
}
|