NAME

Sub::Multi::Tiny::Dispatcher::TypeParams - Dispatcher-maker using Type::Params for Sub::Multi::Tiny

SYNOPSIS

# In a multisub
require Sub::Multi::Tiny qw($param D:TypeParams);

# Internals of Sub::Multi::Tiny
use Type::Params;
my $dispatcher_coderef =
    Sub::Multi::Tiny::Dispatcher::TypeParams::MakeDispatcher({impls=>[]...});

This module dispatches to any function that can be distinguished by the multisig function in Type::Params. See "MULTIPLE SIGNATURES" in Type::Params.

See Sub::Multi::Tiny for more about the usage of this module. This module does not export any symbols.

USAGE NOTES

Candidate order

The candidates must be listed with more specific first, since they are tried top to bottom. For example, constraint "Str" in Types::Standard matches any scalar (as of Types::Standard v1.004004), so it should be listed after more specific constraints such as "Int" in Types::Standard.

Named parameters

Type::Parameters::multisig() does not directly support named parameters. Instead, use a slurpy hash (Dict) parameter to collect named parameters. An example is given in "Mixed Positional and Named Parameters" in Type::Params.

FUNCTIONS

MakeDispatcher

Make the default dispatcher for the given multi. See "SYNOPSIS".

import

When used, also imports Type::Tiny into the caller's namespace (since Type::Tiny types are how this dispatcher functions!). The caller may also wish to import Types::Standard, but we don't do so here in the interest of generality.

AUTHOR

Chris White <cxw@cpan.org>

LICENSE

Copyright (C) 2019 Chris White <cxw@cpan.org>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.