core: rework unit_active_state_to_glyph() to use a translation table

Let's make this a bit more readable by implementing this via a
translation table, indexed by the state.
This commit is contained in:
Lennart Poettering
2021-04-08 23:01:25 +02:00
parent eff60d8cea
commit eeb6923d5a

View File

@@ -296,22 +296,19 @@ static const char* const notify_access_table[_NOTIFY_ACCESS_MAX] = {
DEFINE_STRING_TABLE_LOOKUP(notify_access, NotifyAccess);
SpecialGlyph unit_active_state_to_glyph(UnitActiveState state) {
switch (state) {
case UNIT_ACTIVE:
return SPECIAL_GLYPH_BLACK_CIRCLE;
case UNIT_RELOADING:
return SPECIAL_GLYPH_CIRCLE_ARROW;
case UNIT_INACTIVE:
return SPECIAL_GLYPH_WHITE_CIRCLE;
case UNIT_FAILED:
return SPECIAL_GLYPH_MULTIPLICATION_SIGN;
case UNIT_ACTIVATING:
case UNIT_DEACTIVATING:
return SPECIAL_GLYPH_BLACK_CIRCLE;
case UNIT_MAINTENANCE:
return SPECIAL_GLYPH_WHITE_CIRCLE;
static const SpecialGlyph map[_UNIT_ACTIVE_STATE_MAX] = {
[UNIT_ACTIVE] = SPECIAL_GLYPH_BLACK_CIRCLE,
[UNIT_RELOADING] = SPECIAL_GLYPH_CIRCLE_ARROW,
[UNIT_INACTIVE] = SPECIAL_GLYPH_WHITE_CIRCLE,
[UNIT_FAILED] = SPECIAL_GLYPH_MULTIPLICATION_SIGN,
[UNIT_ACTIVATING] = SPECIAL_GLYPH_BLACK_CIRCLE,
[UNIT_DEACTIVATING] = SPECIAL_GLYPH_BLACK_CIRCLE,
[UNIT_MAINTENANCE] = SPECIAL_GLYPH_WHITE_CIRCLE,
};
default:
return SPECIAL_GLYPH_BLACK_CIRCLE;
}
if (state < 0)
return _SPECIAL_GLYPH_INVALID;
assert(state < _UNIT_ACTIVE_STATE_MAX);
return map[state];
}