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


NAME

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


SYNOPSIS

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


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'
    );


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.


SEE ALSO

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

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

See the Class::MakeMethods manpage for an overview of the method-generation framework this is based on.

See the Class::MakeMethods::Emulator::ReadMe manpage for distribution, installation, version and support information.

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