Result- und Option-Typen für explizite Fehlerbehandlung ohne Exceptions — nach dem Vorbild von Rust's Result<T, E> und Option<T>. Konkrete Typen: ResultInt64 (ok/err mit Wert und Fehlercode), ResultVec2, ResultBool, OptionInt64, OptionVec2. Methoden: IsOk/IsErr, Unwrap, UnwrapOr, Map, MapErr, AndThen. Sichere Arithmetik: SafeAdd, SafeSub, SafeMul, SafeDiv, SafeMod und sichere Array-Zugriffe.
Einsatzbereiche: fehlerresistente Bibliotheks-APIs, DO-178C-konforme Programmierung, Funktionen die zwischen Erfolg und Fehler unterscheiden müssen ohne globale Fehlervariablen.
Autor: Andreas Röne
Copyright: 2024-2025 Andreas Röne
std.mathstd.vector| Name | Typ | Wert | Sichtbarkeit |
|---|---|---|---|
ERR_NONE | int64 | 0 | priv |
ERR_UNKNOWN | int64 | 1 | priv |
ERR_INVALID_INPUT | int64 | 2 | priv |
ERR_OUT_OF_BOUNDS | int64 | 3 | priv |
ERR_DIVISION_BY_ZERO | int64 | 4 | priv |
ERR_OVERFLOW | int64 | 5 | priv |
ERR_UNDERFLOW | int64 | 6 | priv |
ERR_PARSE_ERROR | int64 | 7 | priv |
ERR_NOT_FOUND | int64 | 8 | priv |
ERR_ALREADY_EXISTS | int64 | 9 | priv |
ERR_PERMISSION_DENIED | int64 | 10 | priv |
ERR_IO | int64 | 11 | priv |
ERR_OUT_OF_MEMORY | int64 | 12 | priv |
ERR_NOT_IMPLEMENTED | int64 | 13 | priv |
| Feld | Typ |
|---|---|
success | bool |
value | int64 |
error_code | int64 |
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
OkInt64(value: int64): ResultInt64 | pub | Erzeugt erfolgreiches ResultInt64 mit Wert |
ErrInt64(error_code: int64): ResultInt64 | pub | Erzeugt fehlgeschlagenes ResultInt64 mit Fehlercode |
ErrInt64WithValue(error_code: int64, value: int64): ResultInt64 | pub | Erzeugt Fehler-Result mit Fehlercode und Wert |
ResultInt64IsOk(r: ResultInt64): bool | pub | Prüft ob ResultInt64 erfolgreich ist |
ResultInt64IsErr(r: ResultInt64): bool | pub | Prüft ob ResultInt64 einen Fehler enthält |
ResultInt64Unwrap(r: ResultInt64): int64 | pub | Gibt Wert zurück oder bricht bei Fehler ab |
ResultInt64UnwrapOr(r: ResultInt64, fallback: int64): int64 | pub | Gibt Wert oder Fallback bei Fehler zurück |
ResultInt64UnwrapOrElse(r: ResultInt64, default_fn: int64): int64 | pub | Gibt Wert oder Ergebnis der Fallback-Funktion zurück |
ResultInt64Expect(r: ResultInt64, msg: pchar): int64 | pub | Gibt Wert zurück oder bricht mit Nachricht ab |
ResultInt64Error(r: ResultInt64): int64 | pub | Gibt Fehlercode des Results zurück |
ResultInt64Map(r: ResultInt64, fn_val: int64): ResultInt64 | pub | Transformiert Wert bei Erfolg per Funktion |
ResultInt64MapErr(r: ResultInt64, fn_err: int64): ResultInt64 | pub | Transformiert Fehlercode per Funktion |
ResultInt64AndThen(r: ResultInt64, fn_op: int64): ResultInt64 | pub | Kettet Operationen bei Erfolg weiter |
| Feld | Typ |
|---|---|
success | bool |
value | Vec2 |
error_code | int64 |
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
OkVec2(value: Vec2): ResultVec2 | pub | Erzeugt erfolgreiches ResultVec2 mit Wert |
ErrVec2(error_code: int64): ResultVec2 | pub | Erzeugt fehlgeschlagenes ResultVec2 mit Fehlercode |
ResultVec2IsOk(r: ResultVec2): bool | pub | Prüft ob ResultVec2 erfolgreich ist |
ResultVec2IsErr(r: ResultVec2): bool | pub | Prüft ob ResultVec2 einen Fehler enthält |
ResultVec2Unwrap(r: ResultVec2): Vec2 | pub | Gibt Vec2-Wert zurück oder bricht bei Fehler ab |
ResultVec2UnwrapOr(r: ResultVec2, fallback: Vec2): Vec2 | pub | Gibt Vec2-Wert oder Fallback bei Fehler zurück |
ResultVec2Error(r: ResultVec2): int64 | pub | Gibt Fehlercode des Vec2-Results zurück |
| Feld | Typ |
|---|---|
success | bool |
value | bool |
error_code | int64 |
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
OkBool(value: bool): ResultBool | pub | Erzeugt erfolgreiches ResultBool mit Wert |
ErrBool(error_code: int64): ResultBool | pub | Erzeugt fehlgeschlagenes ResultBool mit Fehlercode |
ResultBoolIsOk(r: ResultBool): bool | pub | Prüft ob ResultBool erfolgreich ist |
ResultBoolIsErr(r: ResultBool): bool | pub | Prüft ob ResultBool einen Fehler enthält |
ResultBoolUnwrap(r: ResultBool): bool | pub | Gibt Bool-Wert zurück oder bricht bei Fehler ab |
ResultBoolError(r: ResultBool): int64 | pub | Gibt Fehlercode des Bool-Results zurück |
| Feld | Typ |
|---|---|
has_value | bool |
value | int64 |
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
SomeInt64(value: int64): OptionInt64 | pub | Erzeugt OptionInt64 mit vorhandenem Wert |
NoneInt64(): OptionInt64 | pub | Erzeugt leeres OptionInt64 ohne Wert |
OptionInt64IsSome(opt: OptionInt64): bool | pub | Prüft ob OptionInt64 einen Wert enthält |
OptionInt64IsNone(opt: OptionInt64): bool | pub | Prüft ob OptionInt64 leer ist |
OptionInt64Unwrap(opt: OptionInt64): int64 | pub | Gibt Wert zurück oder bricht bei None ab |
OptionInt64UnwrapOr(opt: OptionInt64, fallback: int64): int64 | pub | Gibt Wert oder Fallback bei None zurück |
OptionInt64Map(opt: OptionInt64, fn_val: int64): OptionInt64 | pub | Transformiert Wert bei Some per Funktion |
| Feld | Typ |
|---|---|
has_value | bool |
value | Vec2 |
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
SomeVec2(value: Vec2): OptionVec2 | pub | Erzeugt OptionVec2 mit vorhandenem Wert |
NoneVec2(): OptionVec2 | pub | Erzeugt leeres OptionVec2 ohne Wert |
OptionVec2IsSome(opt: OptionVec2): bool | pub | Prüft ob OptionVec2 einen Wert enthält |
OptionVec2IsNone(opt: OptionVec2): bool | pub | Prüft ob OptionVec2 leer ist |
OptionVec2Unwrap(opt: OptionVec2): Vec2 | pub | Gibt Vec2-Wert zurück oder bricht bei None ab |
OptionVec2UnwrapOr(opt: OptionVec2, fallback: Vec2): Vec2 | pub | Gibt Vec2-Wert oder Fallback bei None zurück |
ErrorCodeToString(code: int64): pchar | pub | Gibt deutschen Fehlertext für Fehlercode zurück |
SafeAdd(a: int64, b: int64): ResultInt64 | pub | Addiert zwei Zahlen mit Überlaufprüfung |
SafeSub(a: int64, b: int64): ResultInt64 | pub | Subtrahiert zwei Zahlen mit Unterlaufprüfung |
SafeMul(a: int64, b: int64): ResultInt64 | pub | Multipliziert zwei Zahlen mit Überlaufprüfung |
SafeDiv(a: int64, b: int64): ResultInt64 | pub | Dividiert mit Prüfung auf Division durch Null |
SafeMod(a: int64, b: int64): ResultInt64 | pub | Modulo mit Prüfung auf Division durch Null |
SafeArrayGet(arr: int64, len: int64, index: int64): ResultInt64 | pub | Liest Array-Element mit Grenzprüfung |
SafeArraySet(arr: int64, len: int64, index: int64, value: int64): ResultBool | pub | Schreibt Array-Element mit Grenzprüfung |