|
NAMETypes::Standard::Dict - exporter utility and utility functions for the Dict type constraint STATUSThis module is not covered by the Type-Tiny stability policy. DESCRIPTIONThis is mostly internal code, but has one public-facing function. Function
ExportsTypes::Standard::Dict can be used experimentally as an exporter. use Types::Standard 'Str';
use Types::Standard::Dict Credentials => { of => [
username => Str,
password => Str,
] };
This will export the following functions into your namespace: Multiple types can be exported at once: use Types::Standard -types;
use Types::Standard::Dict (
Credentials => { of => [
username => Str,
password => Str,
] },
Headers => { of => [
'Content-Type' => Optional[Str],
'Accept' => Optional[Str],
'User-Agent' => Optional[Str],
] },
);
# Exporting this separately so it can use the types defined by
# the first export.
use Types::Standard::Dict (
HttpRequestData => { of => [
credentials => Credentials,
headers => Headers,
url => Str,
method => Enum[ qw( OPTIONS HEAD GET POST PUT DELETE PATCH ) ],
] },
);
assert_HttpRequestData( {
credentials => { username => 'bob', password => 's3cr3t' },
headers => { 'Accept' => 'application/json' },
url => 'http://example.net/api/v1/stuff',
method => 'GET',
} );
It's possible to further constrain the hashref using "where": use Types::Standard::Dict MyThing => { of => [ ... ], where => sub { ... } };
BUGSPlease report any bugs to <https://github.com/tobyink/p5-type-tiny/issues>. SEE ALSOTypes::Standard. AUTHORToby Inkster <tobyink@cpan.org>. COPYRIGHT AND LICENCEThis software is copyright (c) 2013-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 WARRANTIESTHIS 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.
|