NAME
FFI::C::Struct - Structured data instance for FFI
VERSION
version 0.15
SYNOPSIS
use
FFI::C::StructDef;
my
$def
= FFI::C::StructDef->new(
name
=>
'color_t'
,
class
=>
'Color'
,
members
=> [
red
=>
'uint8'
,
green
=>
'uint8'
,
blue
=>
'uint8'
,
],
);
my
$red
=
$def
->create({
red
=> 255 });
# creates a FFI::C::Stuct
printf
"[%02x %02x %02x]\n"
,
$red
->red,
$red
->green,
$red
->blue;
# [ff 00 00]
# that red is too bright!
$red
->red(200);
printf
"[%02x %02x %02x]\n"
,
$red
->red,
$red
->green,
$red
->blue;
# [c8 00 00]
my
$green
= Color->new({
green
=> 255 });
# creates a FFI::C::Stuct
printf
"[%02x %02x %02x]\n"
,
$green
->red,
$green
->green,
$green
->blue;
# [00 ff 00]
DESCRIPTION
This class represents an instance of a C struct
. This class can be created using new
on the generated class, if that was specified for the FFI::C::StructDef, or by using the create
method on FFI::C::StructDef.
For each member defined in the FFI::C::StructDef there is an accessor for the FFI::C::Struct instance.
CONSTRUCTOR
new
FFI::C::StructDef->new(
class
=>
'User::Struct::Class'
, ... );
my
$instance
= User::Struct::Class->new;
Creates a new instance of the struct
.
SEE ALSO
- FFI::C
- FFI::C::Array
- FFI::C::ArrayDef
- FFI::C::Def
- FFI::C::File
- FFI::C::PosixFile
- FFI::C::Struct
- FFI::C::StructDef
- FFI::C::Union
- FFI::C::UnionDef
- FFI::C::Util
- FFI::Platypus::Record
AUTHOR
Graham Ollis <plicease@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2020-2022 by Graham Ollis.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.