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 seeno_pthx
tag below). -
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.