Changes for version 0.011000 - 2026-01-07
- Packaging
- Require Class::XSAccessor 0.016000.
- Require Type::Tiny 2.010000.
- Other
- Added: Provide MooseX::Marlin and MooX::Marlin to allow Moose and Moo to inherit from Marlin classes and compose Marlin roles.
- Marlin::Struct's magical coercion from arrayrefs is now aware of ':Alias'.
- Marlin::XAttribute::Alias no longer forces PP constructors to be generated.
- Move some attribute logic from Marlin to Marlin::Attribute making it easier for attribute extensions to override.
- Partial support for inheritance from Object::Pad classes (but sometimes it segfaults).
- Support inheritance from Class::Tiny classes.
- Support inheritance from Mite classes and composing Mite roles.
- Support inheritance from Mouse classes and composing Mouse roles.
- Updated: Changes to work with newest Class::XSAccessor.
Documentation
comparing Moo, Moose, and class with Marlin
getting the most out of Marlin
Modules
🐟 pretty fast class builder with most Moo/Moose features 🐟
Marlin, but it's a role
quickly create struct-like classes
exports a few keywords it's nice to have with Marlin
Marlin extension to add a clone method to your class.
Marlin attribute extension for attribute aliases.
Marlin attribute extension for localizing attribute values.
Marlin attribute extension for lvalue accessors.
🐮 ❤️ 🐟 inherit from Marlin classes in Moo
🫎 ❤️ 🐟 inherit from Marlin classes in Moose
Provides
in lib/Marlin/Attribute.pm
in lib/Marlin.pm
in lib/Marlin/TypeConstraint.pm
Examples
- examples/benchmark.pl
- examples/can_haz_xs.pl
- examples/lib/Local/Example/Core.pm
- examples/lib/Local/Example/Marlin.pm
- examples/lib/Local/Example/Moo.pm
- examples/lib/Local/Example/Moose.pm
- examples/lib/Local/Example/Mouse.pm
- examples/lib/Local/Example/Plain.pm
- examples/lib/Local/Example/Tiny.pm
- examples/peek_at_delegations.pl
- examples/test.pl