Merged CMOP into Moose
[gitmo/Moose.git] / benchmarks / cmop / lib / Bench / Accessor.pm
CommitLineData
38bf2a25 1#!/usr/bin/perl
2
3package Bench::Accessor;
4use Moose;
5use Moose::Util::TypeConstraints;
6
7eval {
8coerce ArrayRef
9 => from HashRef
10 => via { [ %$_ ] };
11};
12
13has class => (
14 isa => "Str",
15 is => "ro",
16);
17
18has construct => (
19 isa => "ArrayRef",
20 is => "ro",
21 auto_deref => 1,
22 coerce => 1,
23);
24
25has accessor => (
26 isa => "Str",
27 is => "ro",
28);
29
30has accessor_args => (
31 isa => "ArrayRef",
32 is => "ro",
33 auto_deref => 1,
34 coerce => 1,
35);
36
37sub code {
38 my $self = shift;
39
40 my $obj = $self->class->new( $self->construct );
41 my @accessor_args = $self->accessor_args;
42 my $accessor = $self->accessor;
43
44 sub { $obj->$accessor( @accessor_args ) };
45}
46
47__PACKAGE__;
48
49__END__