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::TypeMap - Class to collapsing/expanding logic.

Attributes

       entries
           A hash of normal entries.

       isa_entries
           A hash of "$object->isa" based entries.

       includes
           A list of parent typemaps to inherit entries from.

Author

       Yuval Kogman <nothingmuch@woobling.org>

Description

       The KiokuDB typemap maps classes to KiokuDB::TypeMap::Entry objects.

       The mapping is by class, and entries can be keyed normally (using "ref $object" equality) or by filtering
       on "$object->isa($class)" ("isa_entries").

Methods

       resolve $class
           Given a class returns the "KiokuDB::TypeMap::Entry" object corresponding to that class.

           Called by KiokuDB::TypeMap::Resolver

       resolve_entry $entry
           If the entry is an alias, it will be resolved recursively, and simply returned otherwise.

       all_entries
           Returns the merged "entries" from this typemap and all the included typemaps.

       all_isa_entries
           Returns the merged "isa_entries" from this typemap and all the included typemaps.

       all_isa_entry_classes
           An  array  reference  of  all  the  classes  in  "all_isa_entries", sorted from least derived to most
           derived.

Name

       KiokuDB::TypeMap - Class to collapsing/expanding logic.

Synopsis

           use KiokuDB::TypeMap;

           KiokuDB::TypeMap->new(
               entries => {
                   'Foo' => KiokuDB::TypeMap::Entry::Naive->new,
               },
               isa_entries => {
                   'My::Class' => KiokuDB::TypeMap::Entry::Naive->new,
               },
               includes => [
                   $typemap_foo,
                   $typemap_bar,
               ],
           );

Version

       version 0.57

See Also