MooseX::Lexical::Types::TypedScalar - MooseX::Lexical::Types::TypedScalar documentation


MooseX-Lexical-Types documentation Contained in the MooseX-Lexical-Types distribution.

Index


Code Index:

NAME

Top

MooseX::Lexical::Types::TypedScalar

VERSION

Top

version 0.01

AUTHOR

Top

  Florian Ragwitz <rafl@debian.org>

COPYRIGHT AND LICENSE

Top


MooseX-Lexical-Types documentation Contained in the MooseX-Lexical-Types distribution.

package MooseX::Lexical::Types::TypedScalar;
our $VERSION = '0.01';


use strict;
use warnings;
use Carp qw/confess/;
use Variable::Magic qw/wizard cast/;
use namespace::autoclean;

my $wiz = wizard
    data => sub { $_[1]->get_type_constraint },
    set  => sub {
        if (defined (my $msg = $_[1]->validate(${ $_[0] }))) {
            confess $msg;
        }
        ();
    };

sub TYPEDSCALAR {
    cast $_[1], $wiz, $_[0];
    ();
}

1;

__END__