GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Data::Sah::Util::Role(3) User Contributed Perl Documentation Data::Sah::Util::Role(3)

Data::Sah::Util::Role - Sah utility routines for roles

This document describes version 0.917 of Data::Sah::Util::Role (from Perl distribution Data-Sah), released on 2024-02-16.

This module provides some utility routines to be used in roles, e.g. "Data::Sah::Type::*" and "Data::Sah::FuncSet::*".

Define a clause. Used in type roles ("Data::Sah::Type::*"). Internally it adds a Moo "requires" for "clause_$name".

Options:

  • v => int

    Specify clause specification version. Must be 2 (the current version).

  • schema => sah::schema

    Define schema for clause value.

  • prio => int {min=>0, max=>100, default=>50}

    Optional. Default is 50. The higher the priority (the lower the number), the earlier the clause will be processed.

  • aliases => \@aliases OR $alias

    Define aliases. Optional.

  • inspect_elem => bool

    If set to true, then this means clause inspect the element(s) of the data. This is only relevant for types that has elements (see HasElems role). An example of clause like this is "has" or "each_elem". When the value of "inspect_elem" is true, a compiler must prepare by coercing the elements of the data, if there are coercion rules applicable.

  • subschema => coderef

    If set, then declare that the clause value contains a subschema. The coderef must provide a way to get the subschema from

  • code => coderef

    Optional. Define implementation for the clause. The code will be installed as 'clause_$name'.

  • into => str $package

    By default it is the caller package, but can be set to other package.

Example:

 has_clause minimum => (arg => 'int*', aliases => 'min');

Specify that clause named ALIAS is an alias for TARGET.

You have to define TARGET clause first (see has_clause above).

Example:

 has_clause max_length => ...;
 has_clause_alias max_length => "max_len";

Define a Sah function. Used in function set roles ("Data::Sah::FuncSet::*"). Internally it adds a Moo "requires" for "func_$name".

Options:

  • aliases => \@aliases OR $alias

    Optional. Declare aliases.

  • code => $code

    Supply implementation for the function. The code will be installed as 'func_$name'.

  • into => $package

    By default it is the caller package, but can be set to other package.

Example:

 has_func abs => (args => 'num');

Specify that function named ALIAS is an alias for TARGET.

You have to specify TARGET function first (see has_func above).

Example:

 has_func_alias 'atan' => 'arctan';

Please visit the project's homepage at <https://metacpan.org/release/Data-Sah>.

Source repository is at <https://github.com/perlancar/perl-Data-Sah>.

perlancar <perlancar@cpan.org>

To contribute, you can send patches by email/via RT, or send pull requests on GitHub.

Most of the time, you don't need to build the distribution yourself. You can simply modify the code, then test via:

 % prove -l

If you want to build the distribution (e.g. to try to install it locally on your system), you can install Dist::Zilla, Dist::Zilla::PluginBundle::Author::PERLANCAR, Pod::Weaver::PluginBundle::Author::PERLANCAR, and sometimes one or two other Dist::Zilla- and/or Pod::Weaver plugins. Any additional steps required beyond that are considered a bug and can be reported to me.

This software is copyright (c) 2024, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012 by perlancar <perlancar@cpan.org>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

Please report any bugs or feature requests on the bugtracker website <https://rt.cpan.org/Public/Dist/Display.html?Name=Data-Sah>

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

2024-02-16 perl v5.40.2

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.