NAME
Type::Params::Signature - internal representation of a function signature
STATUS
This module is not covered by the Type-Tiny stability policy.
DESCRIPTION
This is mostly internal code, but can be used to provide basic introspection for signatures.
Constructors
Attributes
All attributes are read-only.
package
ClassName-
The package we're providing a signature for. Will be used to look up any stringy type names.
subname
Str-
The sub we're providing a signature for.
description
Strmethod
ArrayRef[InstanceOf['Type::Params::Parameter']]head
ArrayRef[InstanceOf['Type::Params::Parameter']]tail
ArrayRef[InstanceOf['Type::Params::Parameter']]parameters
ArrayRef[InstanceOf['Type::Params::Parameter']]slurpy
InstanceOf['Type::Params::Parameter']on_die
CodeRefstrictness
Bool|ScalarRefnext
CodeRefgoto_next
CodeRef-
Alias for
next
. can_shortcut
Bool-
Indicates whether the signature has no potential to alter
@_
allowing it to be returned without being copied if type checks pass. Generally speaking, you should not provide this to the constructor and rely on Type::Params::Signature to figure it out. coderef
InstanceOf['Eval::TypeTiny::CodeAccumulator']-
You probably don't want to provide this to the constructor. The whole point of this module is to build it for you!
Attributes related to named parameters
is_named
Boolallow_dash
Boolbless
Bool|ClassNameclass
ClassNameconstructor
Strclass_attributes
HashRef-
HashRef suitable for passing to the
import
method of Class::XSAccessor. A default will be generated based onparameters
named_to_list
ArrayRef-
Can be coerced from a bool based on
parameters
. list_to_named
Booloo_trace
Bool-
Defaults to true. Indicates whether blessed
$arg
hashrefs created by the signature will include a'~~caller'
key.
Bare attributes
These attributes may be passed to the constructors and may do something, but no methods are provided to access the values later.
positional
orpos
ArrayRefnamed
ArrayRefmultiple
ormulti
ArrayRefreturns
Bool-
Shortcut for setting
returns_scalar
andreturns_list
simultaneously. want_source
Boolwant_details
Boolwant_object
Boolrationalize_slurpies
Bool
Methods
Predicates
Predicate methods return true/false to indicate the presence or absence of attributes.
has_description
has_head
has_tail
has_parameters
has_slurpy
has_on_die
has_strictness
has_returns_scalar
has_returns_list
Class making methods
These methods will be called automatically during object construction and should not typically be called. They are public methods in case it is desired to subclass Type::Params::Signature.
make_class_pp
-
Builds the class specified in
bless
by evaluating Perl code. make_class_xs
-
Builds the class specified in
bless
using Class::XSAccessor. make_class
-
Calls either
make_class_pp
ormake_class_xs
. make_class_pp_code
-
Generates the code for
make_class_pp
.
Other methods
BUILD
-
Called by the constructors. You should not call this.
return_wanted
-
Normally returns the signature coderef, unless
want_source
,want_details
, orwant_object
were provided to the constructor, in which case it will return the source code for the coderef, a hashref of details, or$self
.
ENVIRONMENT
PERL_TYPE_PARAMS_XS
-
Affects the building of accessors for
$arg
objects. If set to true, will use Class::XSAccessor. If set to false, will use pure Perl. If this environment variable does not exist, will use Class::XSAccessor.If Class::XSAccessor is not installed or is too old, pure Perl will always be used as a fallback.
BUGS
Please report any bugs to https://github.com/tobyink/p5-type-tiny/issues.
SEE ALSO
Type::Params, Type::Params::Parameter, Type::Params::Alternatives.
AUTHOR
Toby Inkster <tobyink@cpan.org>.
COPYRIGHT AND LICENCE
This software is copyright (c) 2023-2025 by Toby Inkster.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
DISCLAIMER OF WARRANTIES
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.