Files
MapLibreParticleLab/include/mln/util/client_options.hpp
Bart Louwers 2a8ebc4906 core: rename mbgl directories to mln (#4511)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-08-22 20:50:14 +02:00

63 lines
1.3 KiB
C++

#pragma once
#include <memory>
#include <string>
namespace mln {
/**
* @brief Holds values for client options.
*/
class ClientOptions final {
public:
/**
* @brief Constructs a ClientOptions object with default values.
*/
ClientOptions();
~ClientOptions();
ClientOptions(ClientOptions&&) noexcept;
ClientOptions& operator=(const ClientOptions& options);
ClientOptions& operator=(ClientOptions&& options);
ClientOptions clone() const;
/**
* @brief Sets the client name.
*
* @param name Client name.
* @return ClientOptions for chaining options together.
*/
ClientOptions& withName(std::string name);
/**
* @brief Gets the previously set (or default) client name.
*
* @return client name
*/
const std::string& name() const;
/**
* @brief Sets the client version.
*
* @param version Client version.
* @return ClientOptions for chaining options together.
*/
ClientOptions& withVersion(std::string version);
/**
* @brief Gets the previously set (or default) client version.
*
* @return client version
*/
const std::string& version() const;
private:
ClientOptions(const ClientOptions&);
class Impl;
std::unique_ptr<Impl> impl_;
};
} // namespace mln