now with thaw as well as freeze, see TODOs
[gitmo/MooseX-Storage.git] / lib / MooseX / Storage.pm
1
2 package MooseX::Storage;
3
4 sub import {
5     my $pkg = caller();
6     $pkg->meta->alias_method('Storage' => sub {
7         my $engine_name = 'MooseX::Storage::' . (shift);
8         Class::MOP::load_class($engine_name) 
9             || die "Could not load engine ($engine_name) for package ($pkg)";
10         return $engine_name;
11     });
12 }
13
14 package MooseX::Storage::Base;
15 use Moose::Role;
16
17 requires 'pack';
18 requires 'unpack';
19
20 requires 'freeze';
21 requires 'thaw';
22
23 requires 'load';
24 requires 'store';
25
26 1;
27
28 __END__
29
30 =pod
31
32 =cut