Provided by: libzt-doc_0.3.1-4_all bug

NAME

     zt_value, zt_value_kind, — variant type for passing data into claim verifiers

SYNOPSIS

     #include <zt.h>

     typedef struct zt_value { ... } zt_value;

     Type              Entry                Description
     zt_value_kind     kind                 Discriminator for the union
     const char *      source               Source code used to compute the value
     union { ... }     as                   Union containing the actual value
     bool              as.boolean           Value when used as ZT_BOOLEAN
     int               as.integer           Value when used as ZT_INTEGER
     unsigned          as.unsigned_integer  Value when used as ZT_UNSIGNED
     int               as.rune              Value when used as ZT_RUNE
     const char *      as.string            Value when used as ZT_STRING
     const void *      as.pointer           Value when used as ZT_POINTER
     intmax_t          as.intmax            Value when used as ZT_INTMAX
     uintmax_t         as.uintmax           Value when used as ZT_UINTMAX

     typedef enum zt_value_kind { ... } zt_value_kind;

     Kind           Description
     ZT_NOTHING     Placeholder for unused values
     ZT_BOOLEAN     zt_value.as.boolean is valid
     ZT_INTEGER     zt_value.as.integer is valid (deprecated)
     ZT_UNSIGNED    zt_value.as.unsigned_integer is valid (deprecated)
     ZT_RUNE        zt_value.as.rune is valid
     ZT_STRING      zt_value.as.string is valid
     ZT_POINTER     zt_value.as.pointer is valid
     ZT_INTMAX      zt_value.as.intmax is valid
     ZT_UINTMAX     zt_value.as.uintmax is valid

DESCRIPTION

     zt_value is a variant-like type that is used to pass values around libzt internals.  It is
     comprised of the kind enumeration, the as union as well as the source string.

     zt_value_kind describes type of verification function arguments.

IMPLEMENTATION NOTES

     zt_value exists to pass packed values of several types from the test source code, through
     the zt_claim type and into private verification functions that determine test outcome.

     Tests using binary relations encode the operator as an argument of kind ZT_STRING.

BUGS

     On some architectures ZT_INTEGER and ZT_UNSIGNED are too short to handle size_t and ssize_t
     values correctly. They are now deprecated and automatically promoted to ZT_INTMAX and
     ZT_UINTMAX respectively.

SEE ALSO

     zt_visit_test_case(3), zt_visit_test_suite(3)

HISTORY

     zt_value and zt_value_kind first appeared in libzt 0.1

     ZT_INTMAX, ZT_UINTMAX and the corresponding union members first appeared in libzt 0.3.

AUTHORS

     Zygmunt Krynicki <me@zygoon.pl>