Skip to content

Commit 9ebe512

Browse files
committed
Replace std::holds_alternative with std::get_if.
1 parent adc254f commit 9ebe512

File tree

1 file changed

+33
-29
lines changed

1 file changed

+33
-29
lines changed

src/storage/kv_storage/littlefs/kv_littlefs.cpp

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -26,27 +26,32 @@ namespace cyphal::support::platform::storage
2626
{
2727

2828
/**************************************************************************************
29-
* CONSTANTS
29+
* PRIVATE FREE FUNCTIONS
3030
**************************************************************************************/
3131

32-
static std::map<littlefs::Error, Error> const LITTLEFS_TO_STORAGE_ERROR_MAP =
32+
[[nodiscard]] static inline Error toError(littlefs::Error const err)
3333
{
34-
{littlefs::Error::IO , Error::IO},
35-
{littlefs::Error::CORRUPT , Error::Internal},
36-
{littlefs::Error::NOENT , Error::Existence},
37-
{littlefs::Error::EXIST , Error::Existence},
38-
{littlefs::Error::NOTDIR , Error::Existence},
39-
{littlefs::Error::ISDIR , Error::Existence},
40-
{littlefs::Error::NOTEMPTY , Error::Existence},
41-
{littlefs::Error::BADF , Error::Internal},
42-
{littlefs::Error::FBIG , Error::Capacity},
43-
{littlefs::Error::INVAL , Error::API},
44-
{littlefs::Error::NOSPC , Error::Capacity},
45-
{littlefs::Error::NOMEM , Error::Internal},
46-
{littlefs::Error::NOATTR , Error::API},
47-
{littlefs::Error::NAMETOOLONG , Error::API},
48-
{littlefs::Error::NO_FD_ENTRY , Error::API},
49-
};
34+
static std::map<littlefs::Error, Error> const LITTLEFS_TO_STORAGE_ERROR_MAP =
35+
{
36+
{littlefs::Error::IO , Error::IO},
37+
{littlefs::Error::CORRUPT , Error::Internal},
38+
{littlefs::Error::NOENT , Error::Existence},
39+
{littlefs::Error::EXIST , Error::Existence},
40+
{littlefs::Error::NOTDIR , Error::Existence},
41+
{littlefs::Error::ISDIR , Error::Existence},
42+
{littlefs::Error::NOTEMPTY , Error::Existence},
43+
{littlefs::Error::BADF , Error::Internal},
44+
{littlefs::Error::FBIG , Error::Capacity},
45+
{littlefs::Error::INVAL , Error::API},
46+
{littlefs::Error::NOSPC , Error::Capacity},
47+
{littlefs::Error::NOMEM , Error::Internal},
48+
{littlefs::Error::NOATTR , Error::API},
49+
{littlefs::Error::NAMETOOLONG , Error::API},
50+
{littlefs::Error::NO_FD_ENTRY , Error::API},
51+
};
52+
53+
return LITTLEFS_TO_STORAGE_ERROR_MAP.at(err);
54+
}
5055

5156
/**************************************************************************************
5257
* CTOR/DTOR
@@ -69,17 +74,17 @@ auto KeyValueStorage_littlefs::get(const std::string_view key, const std::size_t
6974

7075
/* Open the file containing the registry value. */
7176
auto const rc_open = _filesystem.open(key_filename.str(), littlefs::OpenFlag::RDONLY);
72-
if (std::holds_alternative<littlefs::Error>(rc_open))
73-
return LITTLEFS_TO_STORAGE_ERROR_MAP.at(std::get<littlefs::Error>(rc_open));
77+
if (const auto * const err = std::get_if<littlefs::Error>(&rc_open))
78+
return toError(*err);
7479

7580
littlefs::FileHandle const file_hdl = std::get<littlefs::FileHandle>(rc_open);
7681

7782
/* Read from the file. */
7883
auto const rc_read = _filesystem.read(file_hdl, data, size);
79-
if (std::holds_alternative<littlefs::Error>(rc_read))
84+
if (const auto * const err = std::get_if<littlefs::Error>(&rc_read))
8085
{
8186
(void)_filesystem.close(file_hdl);
82-
return LITTLEFS_TO_STORAGE_ERROR_MAP.at(std::get<littlefs::Error>(rc_read));
87+
return toError(*err);
8388
}
8489

8590
(void)_filesystem.close(file_hdl);
@@ -96,17 +101,17 @@ auto KeyValueStorage_littlefs::put(const std::string_view key, const std::size_t
96101

97102
/* Open the file containing the registry value. */
98103
auto const rc_open = _filesystem.open(key_filename.str(), littlefs::OpenFlag::WRONLY | littlefs::OpenFlag::CREAT | littlefs::OpenFlag::TRUNC);
99-
if (std::holds_alternative<littlefs::Error>(rc_open))
100-
return LITTLEFS_TO_STORAGE_ERROR_MAP.at(std::get<littlefs::Error>(rc_open));
104+
if (const auto * const err = std::get_if<littlefs::Error>(&rc_open))
105+
return toError(*err);
101106

102107
littlefs::FileHandle const file_hdl = std::get<littlefs::FileHandle>(rc_open);
103108

104109
/* Write to the file. */
105110
auto const rc_write = _filesystem.write(file_hdl, data, size);
106-
if (std::holds_alternative<littlefs::Error>(rc_write))
111+
if (const auto * const err = std::get_if<littlefs::Error>(&rc_write))
107112
{
108113
(void)_filesystem.close(file_hdl);
109-
return LITTLEFS_TO_STORAGE_ERROR_MAP.at(std::get<littlefs::Error>(rc_write));
114+
return toError(*err);
110115
}
111116

112117
(void)_filesystem.close(file_hdl);
@@ -127,9 +132,8 @@ auto KeyValueStorage_littlefs::drop(const std::string_view key) -> std::optional
127132
std::stringstream key_filename;
128133
key_filename << key_hash;
129134

130-
auto const rc = _filesystem.remove(key_filename.str());
131-
if (rc != littlefs::Error::OK)
132-
return Error::IO;
135+
if (auto const err = _filesystem.remove(key_filename.str()); err != littlefs::Error::OK)
136+
return toError(err);
133137

134138
return std::nullopt;
135139
}

0 commit comments

Comments
 (0)