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

Class::MakeMethods::Emulator::Struct - Emulate Class::Struct

Compatibility

       This module aims to offer a "95% compatible" drop-in replacement for the core Class::Struct module for
       purposes of comparison and code migration.

       The "class-struct.t" test for the core Class::Struct module is included with this package. The test is
       unchanged except for the a direct substitution of this emulator's name in the place of the core module.

       However, there are numerous internal differences between the methods generated by the original
       Class::Struct and this emulator, and some existing code may not work correctly without modification.

Description

       This module emulates the functionality of Class::Struct by munging the provided field-declaration
       arguments to match those expected by Class::MakeMethods.

       It supports the same four types of accessors, the choice of array-based or hash-based objects, and the
       choice of installing methods in the current package or a specified target.

Example

       The below three declarations create equivalent methods for a simple hash-based class with a constructor
       and four accessors.

         use Class::Struct;
         struct (
             simple  => '$',
             ordered => '@',
             mapping => '%',
             obj_ref => 'FooObject'
         );

         use Class::MakeMethods::Emulator::Struct;
         struct (
             simple  => '$',
             ordered => '@',
             mapping => '%',
             obj_ref => 'FooObject'
           );

         use Class::MakeMethods (
             -MakerClass               => 'Standard::Array',
             'new'                     => 'new',
             'scalar'                  => 'simple',
             'array -auto_init 1'      => 'ordered',
             'hash -auto_init 1'       => 'mapping',
             'object -auto_init 1'     => '-class FooObject obj_ref'
           );

Name

       Class::MakeMethods::Emulator::Struct - Emulate Class::Struct

See Also

       See Class::MakeMethods for general information about this distribution.

       See Class::MakeMethods::Emulator for more about this family of subclasses.

       See Class::Struct for documentation of the original module.

       See Class::MakeMethods::Standard::Hash and Class::MakeMethods::Standard::Array for documentation of the
       created methods.

perl v5.36.0                                       2022-10-13                 MakeMethods::Emulator::Struct(3pm)

Synopsis

         use Class::MakeMethods::Emulator::Struct;

         struct (
             simple  => '$',
             ordered => '@',
             mapping => '%',
             obj_ref => 'FooObject'
         );

See Also