
KiokuDB::TypeMap::Entry - Role for KiokuDB::TypeMap entries

package KiokuDB::TypeMap::Foo;
use Moose;
with qw(KiokuDB::TypeMap::Entry);
# or just use KiokuDB::TypeMap::Entry::Std
sub compile {
...
}

This is the role consumed by all typemap entries.

This method is called by KiokuDB::TypeMap::Resolver for a given class, and should return two code references, one for collapsing and one for expanding.
The collapsing sub is called as a method on KiokuDB::Collapser and the expanding sub is called on KiokuDB::Linker.
The callbacks must call other KiokuDB::Collapser and KiokuDB::Linker methods to actually get the work done.
KiokuDB::TypeMap::Entry::Std provides a more concise way of defining typemap entries.