1
0
Files
YYCCommonplace/src/yycc/carton/clap/summary.hpp

52 lines
1.7 KiB
C++

#pragma once
#include "../../macro/class_copy_move.hpp"
#include <string>
#include <string_view>
namespace yycc::carton::clap::summary {
/// @brief Represents summary information for a command line application.
class Summary {
public:
/**
* @brief Constructs a new Summary object with the specified parameters.
* @param[in] name The name of the application
* @param[in] author The author of the application
* @param[in] version The version of the application
* @param[in] description A description of the application's purpose
*/
Summary(const std::u8string_view& name,
const std::u8string_view& author,
const std::u8string_view& version,
const std::u8string_view& description);
~Summary();
YYCC_DEFAULT_COPY_MOVE(Summary)
public:
/**
* @brief Gets the name of the application.
* @return The application's name as a string view
*/
std::u8string_view get_name() const;
/**
* @brief Gets the author of the application.
* @return The application's author as a string view
*/
std::u8string_view get_author() const;
/**
* @brief Gets the version of the application.
* @return The application's version as a string view
*/
std::u8string_view get_version() const;
/**
* @brief Gets the description of the application.
* @return The application's description as a string view
*/
std::u8string_view get_description() const;
private:
std::u8string name, author, version, description;
};
} // namespace yycc::carton::clap::summary