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

enum 'ObjectKind' => qw(commit tree blob tag);

has 'kind'    => ( is => 'ro', isa => 'ObjectKind',    required => 1 );
has 'size'    => ( is => 'ro', isa => 'Int',           required => 1 );
has 'content' => ( is => 'rw', isa => 'Str',           required => 1 );
has 'sha1'    => ( is => 'ro', isa => 'Str',           required => 1 );
has 'git'     => ( is => 'ro', isa => 'Git::PurePerl', required => 1, weak_ref => 1 );

__PACKAGE__->meta->make_immutable;

1;