1 package Git::PurePerl::Object;
3 use MooseX::StrictConstructor;
4 use Moose::Util::TypeConstraints;
5 use namespace::autoclean;
7 enum 'ObjectKind' => qw(commit tree blob tag);
9 has 'kind' => ( is => 'ro', isa => 'ObjectKind', required => 1 );
10 has 'size' => ( is => 'ro', isa => 'Int', required => 1 );
11 has 'content' => ( is => 'rw', isa => 'Str', required => 1 );
12 has 'sha1' => ( is => 'ro', isa => 'Str', required => 1 );
13 has 'git' => ( is => 'ro', isa => 'Git::PurePerl', required => 1, weak_ref => 1 );
15 __PACKAGE__->meta->make_immutable;