Provided by: libperinci-object-perl_0.311-1_all bug

NAME

       Perinci::Object::Function - Represent function metadata

VERSION

       This document describes version 0.311 of Perinci::Object::Function (from Perl distribution
       Perinci-Object), released on 2020-01-02.

SYNOPSIS

        use Perinci::Object;

        $SPEC{foo} = {
            v        => 1.1,
            args     => { b => {schema=>'int', req=>0} },
            features => {idempotent=>1},
        };
        my $risub = risub $SPEC{foo};
        print $risub->feature('idempotent'), # 1
              $risub->arg('b')->{req},       # 0
              $risub->arg('a');              # undef

DESCRIPTION

       This class provides an object-oriented interface for function metadata.

METHODS

   new($meta) => OBJECT
       Create a new object from $meta. If $meta is undef, creates an empty metadata.

   $risub->type => str
       Will return "function".

   $risub->features => HASH
       Return the "features" property.

   $risub->feature(NAME[, VALUE])
       Get or set named feature (features property in metadata). If a feature doesn't exist,
       undef will be returned.

   $risub->can_dry_run => BOOL
       Check whether function can do dry run, either from the "dry_run" feature, or from the "tx"
       feature. (Transaction can be used to emulate dry run, by calling the function with
       "-tx_action => 'check_state'" only.)

   $risub->default_dry_run => BOOL
       Starting from Rinci 1.1.83, the "dry_run" feature property can be a hash instead of a
       bool, and can contain this pair "default=>1" to specify that dry-run mode should be the
       default operation (e.g. for safety).

   $risub->arg(NAME[, VALUE])
       Get or set argument (args property in metadata). If an argument doesn't exist, undef will
       be returned.

HOMEPAGE

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

SOURCE

       Source repository is at <https://github.com/perlancar/perl-Perinci-Object>.

BUGS

       Please report any bugs or feature requests on the bugtracker website
       <https://github.com/perlancar/perl-Perinci-Object/issues>

       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.

SEE ALSO

       Perinci::Object

AUTHOR

       perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2021, 2017, 2016, 2015, 2014, 2013, 2012, 2011 by
       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.