29 lines
1.0 KiB
Hare
29 lines
1.0 KiB
Hare
// Any error which may be returned from a function in this module.
|
|
export type error = !enum {
|
|
INVALID_GROUP_HEADER,
|
|
INVALID_ENTRY,
|
|
// unused for now
|
|
DUPLICATE_GROUP,
|
|
DUPLICATE_ENTRY,
|
|
DUPLICATE_LOCALIZATION,
|
|
NO_DEFAULT_VALUE,
|
|
ENTRY_OUTSIDE_GROUP,
|
|
// --------------
|
|
UNSUPPORTED_ESCAPE,
|
|
STRING_NOT_ASCII,
|
|
};
|
|
|
|
// Converts a desktop entry [[error]] into a user-friendly string.
|
|
export fn strerror(err: error) str = switch {
|
|
case INVALID_GROUP_HEADER => yield "invalid group header";
|
|
case INVALID_ENTRY => yield "invalid entry";
|
|
case DUPLICATE_GROUP => yield "duplicate group";
|
|
case DUPLICATE_ENTRY => yield "duplicate entry";
|
|
case DUPLICATE_LOCALIZATION => yield "duplicate localization";
|
|
case NO_DEFAULT_VALUE => yield "no default value";
|
|
case ENTRY_OUTSIDE_GROUP => yield "entry outside group";
|
|
case UNSUPPORTED_ESCAPE => yield "unsupported escape";
|
|
case STRING_NOT_ASCII => yield "string not ascii";
|
|
case => yield "unknown";
|
|
};
|