NAME
    Data::Visitor::Lite - an easy implementation of Data::Visitor::Callback

SYNOPSIS
        use Data::Visitor::Lite;
        my $visitor = Data::Visitor::Lite->new($replacer);

        my $value = $visitor->visit({ 
          # some structure
        });

DESCRIPTION
    Data::Visitor::Lite is an easy implementation of Data::Visitor::Callback

new(@replacers)
    this is a constructor of Data::Visitor::Lite.

        my $visitor = Data::Visitor::Lite->new(
            # '-implements' replacer type means only replace 
            #   when an object can implements provided methods
            [-implements => ['to_plain_object'] => sub {$_[0]->to_plain_object}],

            # '-isa' replace type means only replace 
            #   when an object is a sub-class of provided package,
            [-isa => 'Some::SuperClass' => sub{$_[0]->encode_to_utf8}]

            # '-plain' replace type means only replace 
            #   when an object is not a reference|blessed value 
            [-plain => sub{ $_[0]+1}]

        );

        my $value = $visitor->visit({ something });

AUTHOR
    Daichi Hiroki <hirokidaichi {at} gmail.com>

SEE ALSO
    Data::Visitor::Callback

LICENSE
    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.