The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Git::PurePerl::DirectoryEntry;
use Moose;
use MooseX::StrictConstructor;
use Moose::Util::TypeConstraints;
use namespace::autoclean;

has 'mode'     => ( is => 'ro', isa => 'Str',           required => 1 );
has 'filename' => ( is => 'ro', isa => 'Str',           required => 1 );
has 'sha1'     => ( is => 'ro', isa => 'Str',           required => 1 );
has 'git'      => ( is => 'ro', isa => 'Git::PurePerl', required => 1, weak_ref => 1 );

sub object {
    my $self = shift;
    return $self->git->get_object( $self->sha1 );
}

__PACKAGE__->meta->make_immutable;