AI-TensorFlow-Libtensorflow
view release on metacpan or search on metacpan
lib/AI/TensorFlow/Libtensorflow/Status.pm view on Meta::CPAN
package AI::TensorFlow::Libtensorflow::Status;
# ABSTRACT: Status used for error checking
$AI::TensorFlow::Libtensorflow::Status::VERSION = '0.0.7';
use strict;
use warnings;
use namespace::autoclean;
use AI::TensorFlow::Libtensorflow::Lib;
use FFI::C;
my $ffi = AI::TensorFlow::Libtensorflow::Lib->ffi;
$ffi->mangler(AI::TensorFlow::Libtensorflow::Lib->mangler_default);
# enum TF_Code {{{
# From <tensorflow/c/tf_status.h>
my @_TF_CODE = (
[ OK => 0 ],
[ CANCELLED => 1 ],
[ UNKNOWN => 2 ],
[ INVALID_ARGUMENT => 3 ],
[ DEADLINE_EXCEEDED => 4 ],
[ NOT_FOUND => 5 ],
[ ALREADY_EXISTS => 6 ],
[ PERMISSION_DENIED => 7 ],
[ UNAUTHENTICATED => 16 ],
[ RESOURCE_EXHAUSTED => 8 ],
[ FAILED_PRECONDITION => 9 ],
[ ABORTED => 10 ],
[ OUT_OF_RANGE => 11 ],
[ UNIMPLEMENTED => 12 ],
[ INTERNAL => 13 ],
[ UNAVAILABLE => 14 ],
[ DATA_LOSS => 15 ],
);
$ffi->load_custom_type('::Enum', 'TF_Code',
{ rev => 'int', package => __PACKAGE__ },
@_TF_CODE
);
my %_TF_CODE_INT_TO_NAME = map { reverse @$_ } @_TF_CODE;
#}}}
$ffi->attach( [ 'NewStatus' => 'New' ] => [] => 'TF_Status' );
$ffi->attach( [ 'DeleteStatus' => 'DESTROY' ] => [ 'TF_Status' ], 'void' );
$ffi->attach( 'SetStatus' => [ 'TF_Status', 'TF_Code', 'string' ], 'void' );
$ffi->attach( 'SetPayload' => [ 'TF_Status', 'string', 'string' ], 'void' );
$ffi->attach( 'SetStatusFromIOError' => [ 'TF_Status', 'int', 'string' ],
'void' );
$ffi->attach( 'GetCode' => [ 'TF_Status' ], 'TF_Code' );
$ffi->attach( 'Message' => [ 'TF_Status' ], 'string' );
use overload
'""' => \&_op_stringify;
sub _op_stringify {
$_TF_CODE_INT_TO_NAME{$_[0]->GetCode};
}
( run in 1.362 second using v1.01-cache-2.11-cpan-39bf76dae61 )