Source code for pak.types.default
r""":class:`.Type`\s for manipulating default values."""
from .type import Type
__all__ = [
"Defaulted",
]
[docs]class Defaulted(Type):
"""A :class:`.Type` with a custom default value.
The resulting :class:`.Type` inherits from
``elem_type`` and :class:`Defaulted`, in that order.
Parameters
----------
elem_type : typelike
The :class:`.Type` to modify the default of.
default
The new default value.
Examples
--------
>>> import pak
>>> DefaultedInt8 = pak.Defaulted(pak.Int8, 1)
>>> DefaultedInt8.default()
1
"""
@classmethod
@Type.prepare_types
def _call(cls, elem_type: Type, default):
return cls.make_type(
f"{cls.__qualname__}{elem_type.__qualname__}",
(elem_type, cls),
_default = default,
)