askill
kura-perl

kura-perlSafety 85Repository

Store and export type constraints for Type::Tiny, Moose, Data::Checks, and more

0 stars
1.2k downloads
Updated 11/14/2025

Package Files

Loading files...
SKILL.md

kura - Unified Type Constraint Storage

kura provides a simple way to store and export type constraints from multiple libraries.

Core Usage

Basic Declaration

use Exporter 'import';
use Types::Common -types;

use kura Name => StrLength[1, 255];
use kura Age => Int & sub { $_ >= 0 };
use kura Email => sub { /@/ };  # Code ref auto-converted

Syntax: use kura NAME => CONSTRAINT;

Supported Constraints

  • Type objects (Type::Tiny, Moose, Specio, Data::Checks)
  • Code references (converted to Type::Tiny)
  • Hash references with constraint and message

Practical Examples

Export Types

package MyTypes {
    use parent 'Exporter::Tiny';
    use Types::Common -types;

    use kura Name => StrLength[1, 255];
    use kura Email => Str & sub { /@/ };
}

use MyTypes qw(Name Email);
Name->check('John');  # true

Built-in Class (v5.40+)

class User {
    use Types::Common -types;
    use kura Name => StrLength[1, 255];

    field $name :param :reader;

    ADJUST {
        Name->assert_valid($name);
    }
}

my $user = User->new(name => '');  # Dies: validation error

Best Practices

  1. Always load an exporter: use Exporter 'import';
  2. Declare in order: Define child constraints before parent constraints
    use kura Child => Str;
    use kura Parent => Dict[ name => Child ];  # Correct order
    
  3. Private constraints: Prefix with _ to prevent export
    use kura _Private => Str;  # Not exported
    
  4. Package variables: @EXPORT_OK and @KURA are auto-populated

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

88/100Analyzed 2/16/2026

A well-structured skill document for the kura Perl module with clear syntax documentation, practical examples, and best practices. Good technical reference quality with proper metadata.

85
90
90
85
80

Metadata

Licenseunknown
Version1.0.0
Updated11/14/2025
Publisherkfly8

Tags

No tags yet.