MooseX::Storage::Base::SerializedClass - Deserialize according to the serialized __CLASS__
version 0.0.1
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;
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.
The function moosex_unpack can be exported. The function unpacks a serialized object based on its __CLASS__ and __ROLES__ attributes.
moosex_unpack
__CLASS__
__ROLES__
use MooseX::Storage::Base::SerializedClass qw/ moosex_unpack /; my $object = moosex_unpack( $struct );
Yanick Champoux <yanick@babyl.dyndns.org>
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.
To install MooseX::Storage::Traits::WithRoles, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MooseX::Storage::Traits::WithRoles
CPAN shell
perl -MCPAN -e shell install MooseX::Storage::Traits::WithRoles
For more information on module installation, please visit the detailed CPAN module installation guide.