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

Sort::Key::Register - tell Sort::Key how to sort new data types.

Author

       Salvador Fandiño, <sfandino@yahoo.com>

Description

       Sort::Key::Register allows one to register new data types with Sort::Key so that they can be sorted as
       natively supported ones.

       It works as a pragma module and doesn't export any function, all its functionality is provided via "use":

         use Sort::Key::Register ...

       To avoid collisions between modules registering types with the same name, you should qualify them with
       the package name.

         use Sort::Key::Register 'MyPkg::foo' => sub { $_ }, '-int';

         # or using __PACKAGE__:
         use Sort::Key::Register __PACKAGE__, sub { $_ }, '-int';

   USAGE
       use Sort::Key::Register $name => \&multikeygen, @keytypes;
           registers type $name.

           &multikeygen  is  the  multi-key  extraction function for the type and @keytypes are the types of the
           extracted keys.

       use Sort::Key::Register $name => $keytype;
           this 'use' is useful for simple types that are sorted  as  another  type  already  registered,  maybe
           changing the direction of the sort (ascending or descending).

Name

       Sort::Key::Register - tell Sort::Key how to sort new data types.

See Also

       Sort::Key, Sort::Key::Maker.

Synopsis

         use Sort::Key::Register Person =>
             sub { $_->surname, $_->name },
             qw(string string);

         use Sort::Key::Register 'Color::Component' => 'integer';

         use Sort::Key::Register Color =>
             sub { $_->R, $_->G, $_->B },
             ('Color::Component') x 3;

See Also