The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Ouroboros::Spec - Ouroboros API specification

DESCRIPTION

This package contains a single global variable, %SPEC that describes API provided by the Ouroboros package. Each key in this hash corresponds to a certain item type described below, and values are all arrayrefs of hashrefs.

CONTENTS

Constants

    $SPEC{const} = [ { name => "..." }, ... ];

A list of supported numeric constants.

Keys

name

Constant name.

c_type

Actual C type.

perl_type

Perl scalar variant used to export the constant value to Perl. One of: "IV" or "UV".

Enum values

    $SPEC{enum} = [ { name => "..." }, ... ];

A list of supported enum values. This is a separate list due to nuance of ExtUtils::Constant implementation.

Keys

name

Enum value name.

c_type

Actual C name of the enum.

perl_type

Perl scalar variant used to export the constant value to Perl. One of: "IV" or "UV".

Functions

    $SPEC{fn} = [ { name => "...", ... }, ... ];

Keys

name

Name of the C function.

ptr_name

Name of the pointer getter in Ouroboros package.

c_decl

C header declaration.

type

Return type of the function.

params

Arrayref containing C types of each of function argument, excluding pTHX argument present by default (but see no_pthx tag below).

tags

Additional metadata about the function.

apidoc

POD string containing additional notes about the item.

no_pthx

When true, indicates that function does not have pTHX as a first argument.

Type sizes

    $SPEC{sizeof} => [ { type => "..." }, ... ];

A list of types available via %SIZE_OF hash in Ouroboros package.

Keys

type

Name of the C type.