27. Miscelanious contract annotations
The CONTRACTS module exposes collection of type matching contracts.
All functions and symbols are in “contracts” module, use require to get access to it.
require daslib/contracts
27.1. Function annotations
- expect_any_array
[expect_any_array(argname)] contract, which only accepts array<T>, T[], or das`vector<T>
- expect_any_enum
[expect_any_enum(argname)] contract, which only accepts enumerations
- expect_any_bitfield
[expect_any_bitfield(argname)] contract, which only accepts bitfields
- expect_any_vector_type
[expect_any_vector_type(argname)] contract, which only accepts vector types, i.e. int2, float3, range, etc
- expect_any_struct
[expect_any_struct(argname)] contract, which only accepts structs (byt not classes)
- expect_any_numeric
[expect_any_numeric(argname)] contract, which only accepts numeric types (int, float, etc)
- expect_any_workhorse
[expect_any_workhorse(argname)] contract, which only accepts workhorse types (int, float, etc) Workhorse types are: bool,int*,uint*,float*,double,range and urange, range64 and urange64, string,enumeration,and non-smart pointers
- expect_any_workhorse_raw
[expect_any_workhorse_raw(argname)] contract, which only accepts workhorse types which are raw (not pointer or bool)
- expect_any_tuple
[expect_any_tuple(argname)] contract, which only accepts tuples
- expect_any_variant
[expected_any_variant(argname)] contract, which only accepts variants
- expect_any_function
[expect_any_function(argname)] contract, which only accepts functions
- expect_any_lambda
[expect_any_lambda(argname)] contract, which only accepts lambdas
- expect_ref
[expect_ref(argname)] contract, which only accepts references
- expect_pointer
[expect_pointer(argname)] contract, which only accepts pointers
- expect_class
[expect_class(argname)] contract, which only accepts class instances
- expect_value_handle
[expect_value_handle(argname)] contract, which only accepts value handles