From fee08f360985554de8375018643ad62993984560 Mon Sep 17 00:00:00 2001 From: rus07tam Date: Wed, 26 Nov 2025 13:58:06 +0000 Subject: [PATCH] feat: add UniqueType.unwrap_or() --- src/snakia/types/unique.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/snakia/types/unique.py b/src/snakia/types/unique.py index 24ad86e..2f66e0f 100644 --- a/src/snakia/types/unique.py +++ b/src/snakia/types/unique.py @@ -49,6 +49,11 @@ class UniqueType(type): raise TypeError(f"{cls} not unwrapped") return value # type: ignore + def unwrap_or(cls: type[T], value: V | type[T] | T, default: R, /) -> V | R: + if value is cls or isinstance(value, cls): + return default + return value # type: ignore + def map( cls: type[T], value: V | type[T] | T,