Finance manager
Лабораторна робота №2 - Документація коду
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
Result< T > Class Template Reference

Шаблонний клас, що інкапсулює результат операції, яка може бути успішною (з даними) або невдалою (з помилкою). More...

#include <Result.h>

Public Member Functions

bool is_success () const
 Перевіряє, чи є результат успішним.
 
const T & get_value () const
 Отримує значення з успішного результату.
 
const std::string & get_error () const
 Отримує повідомлення про помилку з невдалого результату.
 

Static Public Member Functions

static Result< T > success (T value)
 Статичний фабричний метод для створення успішного результату.
 
static Result< T > error (const std::string &error_message)
 Статичний фабричний метод для створення невдалого результату (помилки).
 

Private Member Functions

 Result (bool success, T value, std::string error)
 Приватний конструктор.
 

Private Attributes

bool m_is_success
 Прапорець, що показує, чи успішна операція.
 
m_value
 Значення (payload) у разі успіху.
 
std::string m_error
 Рядок з описом помилки у разі невдачі.
 

Detailed Description

template<typename T>
class Result< T >

Шаблонний клас, що інкапсулює результат операції, яка може бути успішною (з даними) або невдалою (з помилкою).

Це "monad-like" клас, схожий на std::optional або std::expected. Він допомагає уникнути використання винятків для обробки очікуваних помилок (напр., "файл не знайдено" при імпорті).

Template Parameters
TТип значення, яке повертається у разі успіху.
Note
Створення об'єктів відбувається через статичні фабричні методи Result<T>::success(value) та Result<T>::error(message).

Constructor & Destructor Documentation

◆ Result()

template<typename T >
Result< T >::Result ( bool  success,
value,
std::string  error 
)
inlineprivate

Приватний конструктор.

Використовується виключно фабричними методами success() та error().

Parameters
successЧи успішний результат.
valueЗначення для збереження (переміщується).
errorПовідомлення про помилку (переміщується).

Member Function Documentation

◆ error()

template<typename T >
static Result< T > Result< T >::error ( const std::string &  error_message)
inlinestatic

Статичний фабричний метод для створення невдалого результату (помилки).

Parameters
error_messageОпис помилки, що сталася.
Returns
Об'єкт Result з is_success() == false та значенням T за замовчуванням.

◆ get_error()

template<typename T >
const std::string & Result< T >::get_error ( ) const
inline

Отримує повідомлення про помилку з невдалого результату.

Returns
Константне посилання на рядок з описом помилки. (Повертає порожній рядок, якщо результат успішний).

◆ get_value()

template<typename T >
const T & Result< T >::get_value ( ) const
inline

Отримує значення з успішного результату.

Warning
Кидає виняток std::runtime_error, якщо викликати цей метод для невдалого результату (коли is_success() == false). Завжди перевіряйте is_success() перед викликом get_value().
Returns
Константне посилання на збережене значення.
Exceptions
std::runtime_errorЯкщо результат є помилкою.

◆ is_success()

template<typename T >
bool Result< T >::is_success ( ) const
inline

Перевіряє, чи є результат успішним.

Returns
true, якщо операція була успішною, інакше false.

◆ success()

template<typename T >
static Result< T > Result< T >::success ( value)
inlinestatic

Статичний фабричний метод для створення успішного результату.

Parameters
valueЗначення, яке потрібно "загорнути" у Result.
Returns
Об'єкт Result з is_success() == true.

Member Data Documentation

◆ m_error

template<typename T >
std::string Result< T >::m_error
private

Рядок з описом помилки у разі невдачі.

◆ m_is_success

template<typename T >
bool Result< T >::m_is_success
private

Прапорець, що показує, чи успішна операція.

◆ m_value

template<typename T >
T Result< T >::m_value
private

Значення (payload) у разі успіху.


The documentation for this class was generated from the following file: