Sane C++ Libraries
C++ Platform Abstraction Libraries
Loading...
Searching...
No Matches
StringsErrorFormatter.h
1// Copyright (c) Stefano Cristiano
2// SPDX-License-Identifier: MIT
3#pragma once
4#include "../Common/ResultErrorFormatter.h"
5#include "StringsError.h"
6
7namespace SC
8{
11
15inline ResultErrorFormat formatStringsError(StringsError error, Span<char> output)
16{
17 switch (error)
18 {
19 case StringsError::InvalidArgumentCount:
20 return ResultErrorFormatter::formatMessage("Argument count is not valid", output);
21 case StringsError::InsufficientArgumentStorage:
22 return ResultErrorFormatter::formatMessage("Argument storage capacity is insufficient", output);
23 default: return ResultErrorFormatter::failure(ResultErrorFormatStatus::UnknownError, output);
24 }
25}
26
28inline ResultErrorFormat formatStringsError(Result result, Span<char> output)
29{
30 if (result)
31 return ResultErrorFormatter::failure(ResultErrorFormatStatus::NotAnError, output);
32 if (result.category() != StringsResultCategory)
33 return ResultErrorFormatter::failure(ResultErrorFormatStatus::ForeignCategory, output);
34 return formatStringsError(static_cast<StringsError>(result.errorValue()), output);
35}
36
38} // namespace SC
StringsError
Stable error codes returned by the Strings library.
Definition StringsError.h:13
ResultErrorFormat formatStringsError(StringsError error, Span< char > output)
Formats a canonical English Strings diagnostic into caller-owned storage.
Definition StringsErrorFormatter.h:15