manpagez: man pages & more
man Type::Params::Signature(3)
Home | html | info | man
Type::Params::Signature(3)                 User Contributed Perl Documentation



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
       new(%attributes)
       "new_from_compile($style, %attributes)"
       new_from_v2api(\%attributes)

   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" Str
       "method" 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" CodeRef
       "strictness" Bool|ScalarRef
       "next" CodeRef
       "goto_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" Bool
       "allow_dash" Bool
       "bless" Bool|ClassName
       "class" ClassName
       "constructor" Str
       "class_attributes" HashRef
           HashRef suitable for passing to the "import" method of
           Class::XSAccessor. A default will be generated based on
           "parameters"

       "named_to_list" ArrayRef
           Can be coerced from a bool based on "parameters".

       "list_to_named" Bool
       "oo_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" or "pos" ArrayRef
       "named" ArrayRef
       "multiple" or "multi" ArrayRef
       "returns" Bool
           Shortcut for setting "returns_scalar" and "returns_list"
           simultaneously.

       "want_source" Bool
       "want_details" Bool
       "want_object" Bool
       "rationalize_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" or "make_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", or "want_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(3), Type::Params::Parameter(3),
       Type::Params::Alternatives(3).


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.

perl v5.34.3                      2025-09-02        Type::Params::Signature(3)

type-tiny 2.8.3 - Generated Thu Sep 4 14:22:28 CDT 2025
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.