use strict;
use warnings;
package Clownfish::Type::Void;
use base qw( Clownfish::Type );
use Clownfish::Util qw( verify_args );
use Scalar::Util qw( blessed );
use Carp;
our %new_PARAMS = (
const => undef,
specifier => 'void',
);
sub new {
my ( $either, %args ) = @_;
verify_args( \%new_PARAMS, %args ) or confess $@;
my $c_string = $args{const} ? "const void" : "void";
return $either->SUPER::new(
%new_PARAMS,
%args,
specifier => 'void',
c_string => $c_string
);
}
sub is_void {1}
sub equals {
my ( $self, $other ) = @_;
return 0 unless blessed($other);
return 0 unless $other->isa(__PACKAGE__);
return 1;
}
1;
__END__
=head1 NAME
Clownfish::Type::Void - The void Type.
=head1 DESCRIPTION
Clownfish::Type::Void is used to represent a void return type. It is also
used in conjuction with with L<Clownfish::Type::Composite> to support the
C<void*> opaque pointer type.
=head1 METHODS
=head2 new
my $type = Clownfish::Type::Void->new(
specifier => 'void', # default: void
const => 1, # default: undef
);
=over
=item * B<specifier> - Must be "void" if supplied.
=item * B<const> - Should be true if the type is const. (Useful in the
context of C<const void*>).
=back
=head1 COPYRIGHT AND LICENSE
Copyright 2008-2010 Marvin Humphrey
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut