NAME
MooseX::Storage::Base::SerializedClass - Deserialize according to the serialized __CLASS__
VERSION
version 0.0.1
SYNOPSIS
package ThirdDimension;
use Moose::Role;
has 'z' => (is => 'rw', isa => 'Int');
package Point;
use Moose;
use MooseX::Storage;
with Storage( base => 'SerializedClass', traits => [ 'WithRoles' ] );
has 'x' => (is => 'rw', isa => 'Int');
has 'y' => (is => 'rw', isa => 'Int');
1;
use Moose::Util qw/ with_traits /;
my $p = with_traits( 'Point', 'ThirdDimension' )->new(x => 10, y => 10, z => 10);
my $packed = $p->pack();
# { __CLASS__ => 'Point', '__ROLES__' => [ 'ThirdDimension' ], x => 10, y => 10, z => 10 }
# unpack the hash into a class
my $p2 = Point->unpack($packed);
print $p2->z;
DESCRIPTION
Behaves like MooseX::Storage::Basic, with the exception that the unpacking will reinflate the object into the class and roles as provided in the serialized data. It is means to be used in conjuncture with MooseX::Storage::Traits::WithRoles.
EXPORTED FUNCTIONS
The function moosex_unpack
can be exported. The function unpacks a serialized object based on its __CLASS__
and __ROLES__
attributes.
use MooseX::Storage::Base::SerializedClass qw/ moosex_unpack /;
my $object = moosex_unpack( $struct );
AUTHOR
Yanick Champoux <yanick@babyl.dyndns.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2015 by Yanick Champoux.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.