from dataclasses import dataclass
@dataclass(frozen=True, slots=True)
class Ok[T]:
value: T
@dataclass(frozen=True, slots=True)
class Err[E]:
error: E
type Result[T, E] = Ok[T] | Err[E]
def parse_int(s: str) -> Result[int, str]:
try:
return Ok(int(s))
except ValueError:
return Err(f"Not an integer: {s!r}")
match parse_int("42"):
case Ok(value): print("got", value)
case Err(error): print("failed:", error)
Create a free account and build your private vault. Share publicly whenever you want.