NAME

Object::Pad::ClassAttr::Struct - declare an Object::Pad class to be struct-like

SYNOPSIS

use Object::Pad;
use Object::Pad::ClassAttr::Struct;

class Colour :Struct {
   # These get :param :mutator automatically
   has $red   = 0;
   has $green = 0;
   has $blue  = 0;

   # Additional methods are still permitted
   method lightness {
      return ($red + $green + $blue) / 3;
   }
}

my $cyan = Colour->new( green => 1, blue => 1 );

DESCRIPTION

This module provides a third-party class attribute for Object::Pad-based classes, which applies some attributes automatically to every slot added to the class, as a convenient shortcut for making structure-like classes.

CLASS ATTRIBUTES

:Struct

class Name :Struct ... { ... }

Automatically applies the :param and :mutator attributes to every slot defined on the class.

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>