Status
This module is covered by the Type-Tiny stability policy.
Description
Union type constraints.
This package inherits from Type::Tiny; see that for most documentation. Major differences are listed below:
Constructor
The new
constructor from Type::Tiny still works, of course. But there is also:
new_by_overload(%attributes)
Like the
new
constructor, but will sometimes return another type constraint which is not strictly an instance of Type::Tiny::Union, but still encapsulates the same meaning. This constructor is used by Type::Tiny's overloading of the|
operator.
Attributes
type_constraints
Arrayref of type constraints.
When passed to the constructor, if any of the type constraints in the union is itself a union type constraint, this is "exploded" into the new union.
constraint
Unlike Type::Tiny, you cannot pass a constraint coderef to the constructor. Instead rely on the default.
inlined
Unlike Type::Tiny, you cannot pass an inlining coderef to the constructor. Instead rely on the default.
parent
Unlike Type::Tiny, you cannot pass an inlining coderef to the constructor. A parent will instead be automatically calculated.
coercion
You probably do not pass this to the constructor. (It's not currently disallowed, as there may be a use for it that I haven't thought of.)
The auto-generated default will be a Type::Coercion::Union object.
Methods
find_type_for($value)
Returns the first individual type constraint in the union which
$value
passes.stringifies_to($constraint)
numifies_to($constraint)
with_attribute_values($attr1 => $constraint1, ...)
Overloading
- Arrayrefification calls
type_constraints
.
Bugs
Please report any bugs to https://github.com/tobyink/p5-type-tiny/issues.