NAME
Types::ReadOnly - type constraints and coercions for read-only data structures and locked hashes
SYNOPSIS
has foo => (is => 'ro', isa => ReadOnly[ArrayRef], coerce => 1);
DESCRIPTION
This is a type constraint library for write-restricted references.
This module is built with Type::Tiny, which means that you can use it with Moo, Mouse, Moose, or none of the above.
Type Constraints
This library provides the following type constraints:
ReadOnly
-
A type constraint for references to read-only scalars, arrays and hashes. Values don't necessarily need to be deeply read-only to pass the type check.
This type constraint inherits coercions from its parameter, and makes the result read-only (deeply).
Locked
-
A type constraint for hashrefs with locked keys (see Hash::Util).
This type constraint only works when it is parameterized with
HashRef
or a hashref-like type constraint. For exampleLocked[HashRef]
orLocked[ Map[ IpAddr, HostName ] ]
.When parameterized with a
Dict
type constraint (see Types::Standard), it will use theDict
type as the authoritative list of keys that the hashref should be locked with, unless the Dict includes a slurpy parameter (e.g.Dict[foo => Int, slurpy HashRef[Num]]
).This type constraint inherits coercions from its parameter, and applies
lock_ref_keys
to the result.
BUGS
Please report any bugs to http://rt.cpan.org/Dist/Display.html?Queue=Types-ReadOnly.
SEE ALSO
Type::Tiny::Manual, Hash::Util, Const::Fast, MooseX::Types::Ro.
AUTHOR
Toby Inkster <tobyink@cpan.org>.
COPYRIGHT AND LICENCE
This software is copyright (c) 2013, 2019 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.