MC Protocol Serial C++ 0.2.3
MC protocol serial library for MCU-oriented environments
Loading...
Searching...
No Matches
status.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4
5namespace mcprotocol::serial {
6
22
26struct Status {
29 const char* message = "ok";
30
31 [[nodiscard]] constexpr bool ok() const noexcept {
32 return code == StatusCode::Ok;
33 }
34};
35
37[[nodiscard]] constexpr inline Status ok_status() noexcept {
38 return {};
39}
40
42[[nodiscard]] constexpr inline Status make_status(
43 StatusCode code,
44 const char* message,
45 std::uint16_t plc_error_code = 0) noexcept {
46 return Status {.code = code, .plc_error_code = plc_error_code, .message = message};
47}
48
49} // namespace mcprotocol::serial
constexpr Status make_status(StatusCode code, const char *message, std::uint16_t plc_error_code=0) noexcept
Builds a status value with an optional PLC end code.
Definition status.hpp:42
constexpr Status ok_status() noexcept
Returns the default success status.
Definition status.hpp:37
StatusCode
Library-level status code returned by encode, decode, transport, and client operations.
Definition status.hpp:8
Result object returned by most public APIs.
Definition status.hpp:26
std::uint16_t plc_error_code
Definition status.hpp:28
constexpr bool ok() const noexcept
Definition status.hpp:31