Skip to content
This repository was archived by the owner on Jun 26, 2025. It is now read-only.

ilmari/moosex-types-ro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

MooseX::Types::Ro - Moose type constraints for read-only containers

SYNOPSIS

package Foo;

use Moose;
use MooseX::Types::Ro qw(RoArrayRef RoHashRef);

has array => ( is => 'ro', isa => RoArrayRef, coerce => 1 );
has hash => ( is => 'ro', isa => RoHashRef, coerce => 1 );

my $foo = Foo->new(array => [1, 2, 3], hash => { foo => 1, bar => 2 });

# These all throw exceptions now:

$foo->array->[0] = 42;
$foo->array->[3] = 42;
push @{$foo->array}, 69;

$foo->hash->{bar} = 3;
delete $foo->hash->{bar};p
$foo->hash->{baz} = 4;

DESCRIPTION

MooseX::Types::Ro provides Moose type constraints for read-only array and hash references. Attempting to modify the values in any way, including adding or deleting from the arrays and hashes will throw an exception.

TYPES

RoArrayRef

A subtype of ArrayRef in which the array itself and all the elements are read-only. Coerces from ArrayRef by making a shallow copy and marking it read-only.

RoHashRef

A subtype of HashRef in which the hash itself and all the values are read-only. Coerces from HashRef by making a shallow copy and marking it read-only.

SEE ALSO

MooseX::Types, MooseX::Types::Moose, Moose::Util::TypeConstraints, Internals

AUTHOR

Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>.

COPYRIGHT & LICENSE

Copyright (c) 2010 Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>.

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

About

MooseX::Types::Ro - Moose types for read-only containers

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy