Commit | Line | Data |
---|---|---|
c20dc98b | 1 | package TestWrapper; |
3df5416a | 2 | use Moose; |
c20dc98b | 3 | |
52d358e2 | 4 | extends 'MooseX::Types::Wrapper'; |
3df5416a | 5 | #use Class::C3; |
52d358e2 | 6 | #use base 'MooseX::Types::Wrapper'; |
c20dc98b | 7 | |
57dad71e | 8 | override type_export_generator => sub { |
3df5416a | 9 | my $code = super(); |
c20dc98b | 10 | return sub { $code->(@_) }; |
3df5416a | 11 | }; |
c20dc98b | 12 | |
3df5416a | 13 | #sub type_export_generator { |
14 | # my $class = shift; | |
15 | # my ($type, $full) = @_; | |
16 | # my $code = $class->next::method(@_); | |
17 | # return sub { $code->(@_) }; | |
18 | #} | |
19 | ||
57dad71e | 20 | override check_export_generator => sub { |
3df5416a | 21 | my $code = super(); |
c20dc98b | 22 | return sub { |
23 | return $code unless @_; | |
24 | return $code->(@_); | |
25 | }; | |
3df5416a | 26 | }; |
27 | ||
28 | #sub check_export_generator { | |
29 | # my $class = shift; | |
30 | # my ($type, $full, $undef_msg) = @_; | |
31 | # my $code = $class->next::method(@_); | |
32 | # return sub { | |
33 | # return $code unless @_; | |
34 | # return $code->(@_); | |
35 | # }; | |
36 | #} | |
c20dc98b | 37 | |
57dad71e | 38 | override coercion_export_generator => sub { |
3df5416a | 39 | my $code = super(); |
c20dc98b | 40 | return sub { |
3df5416a | 41 | my $value = $code->(@_); |
42 | die "coercion returned undef\n" unless defined $value; | |
43 | return $value; | |
c20dc98b | 44 | }; |
3df5416a | 45 | }; |
46 | ||
47 | #sub coercion_export_generator { | |
48 | # my $class = shift; | |
49 | # my ($type, $full, $undef_msg) = @_; | |
50 | # my $code = $class->next::method(@_); | |
51 | # return sub { | |
52 | # my $val = $code->(@_); | |
53 | # die "coercion returned undef\n" unless defined $val; | |
54 | # return $val; | |
55 | # }; | |
56 | #} | |
c20dc98b | 57 | |
58 | 1; |