logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

KiokuDB::Role::ID::Content - Content dependent object IDs

Author

       Yuval Kogman <nothingmuch@woobling.org>

Description

       This is a role for KiokuDB::Role::Immutable objects whose IDs depend on their content, or in other words
       content addressable objects.

       A canonical example is a string identified by its SHA-1 hash, as is demonstrated in the "SYNOPSIS".

       Objects which do this role are never updated in the database just like KiokuDB::Role::Immutable objects.

       Additionally, it is not an error to insert such objects twice since the objects are assumed to be
       identical.

Name

       KiokuDB::Role::ID::Content - Content dependent object IDs

Synopsis

           package BLOB;
           use Moose;

           use Digest::SHA1;

           with qw(KiokuDB::Role::ID::Content);

           sub kiokudb_object_id {
               my $self = shift;
               sha1_hex($self->data);
           }

           has data => (
               isa => "Str",
               is  => "ro",
               required => 1,
           );

Version

       version 0.57

See Also