Data-Record-Serialize

 view release on metacpan or  search on metacpan

lib/Data/Record/Serialize/Role/Base.pm  view on Meta::CPAN

package Data::Record::Serialize::Role::Base;

# ABSTRACT: Base Role for Data::Record::Serialize

use v5.12;
use Moo::Role;

our $VERSION = '2.03';

use Data::Record::Serialize::Error { errors => [ 'fields', 'types' ] }, -all;

use Data::Record::Serialize::Util -all;

use Types::Standard qw[ ArrayRef CodeRef CycleTuple HashRef Enum Str Bool is_HashRef Maybe ];
use Data::Record::Serialize::Types qw( SerializeType );

use Ref::Util qw( is_coderef is_arrayref );
use List::Util 1.33 qw( any );

use POSIX ();

use namespace::clean;
















has types => (
    is  => 'rwp',
    isa => ( HashRef [SerializeType] | CycleTuple [ Str, SerializeType ] )
    ,    # need parens for perl <= 5.12.5
    predicate => 1,
    trigger   => sub {
        $_[0]->clear_type_index;
        $_[0]->clear_output_types;
    },
);













has default_type => (
    is        => 'ro',
    isa       => SerializeType,
    predicate => 1,
);













( run in 2.519 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )