postcard-bindgen-core 0.7.1

A crate to generate bindings for the postcard binary format for other languages than Rust - Core Crate
Documentation
---
source: postcard-bindgen-core/tests/python.rs
expression: runtime_checks_file
---
from .util import *
from .types import *

def assert_STRUCT_TYPE(v):
    assert isinstance(v, StructType), "{} is not of type {}".format(v, StructType)
    assert isinstance(v.field_1, int), "{} is not an int".format(v.field_1)
    check_bounds(U32_BYTES, False, v.field_1, True)
    assert isinstance(v.field_2, str), "{} is not a string".format(v.field_2)
    assert isinstance(v.field_3, list), "{} is not a list".format(v.field_3)
    def assert_v_field_3(v):
        assert isinstance(v, int), "{} is not an int".format(v)
        check_bounds(U32_BYTES, False, v, True)
    [assert_v_field_3(v) for v in v.field_3]
    assert isinstance(v.field_4, list), "{} is not a list".format(v.field_4)
    def assert_v_field_4(v):
        assert_STRUCT_TYPE(v)
    [assert_v_field_4(v) for v in v.field_4]
    assert isinstance(v.field_5, range), "{} is not a range".format(v.field_5)
    assert isinstance(v.field_5.start, int), "{} is not an int".format(v.field_5.start)
    check_bounds(U32_BYTES, False, v.field_5.start, True)
    assert isinstance(v.field_5.stop, int), "{} is not an int".format(v.field_5.stop)
    check_bounds(U32_BYTES, False, v.field_5.stop, True)
    assert isinstance(v.field_6, dict), "{} is not a dict".format(v.field_6)
    def assert_v_field_6(key, value):
        assert isinstance(key, str), "{} is not a string".format(key)
        assert isinstance(value, int), "{} is not an int".format(value)
        check_bounds(U32_BYTES, False, value, True)
    [assert_v_field_6(key, value) for key, value in v.field_6.items()]
    assert isinstance(v.field_7, dict), "{} is not a dict".format(v.field_7)
    def assert_v_field_7(key, value):
        assert isinstance(key, int), "{} is not an int".format(key)
        check_bounds(U32_BYTES, False, key, True)
        assert isinstance(value, int), "{} is not an int".format(value)
        check_bounds(U32_BYTES, False, value, True)
    [assert_v_field_7(key, value) for key, value in v.field_7.items()]
    def assert_v_field_8(v):
        assert isinstance(v, int), "{} is not an int".format(v)
        check_bounds(U32_BYTES, False, v, True)
    if v.field_8 is not None:
        assert_v_field_8(v.field_8)
    assert isinstance(v.field_9, int), "{} is not a bool".format(v.field_9)
    assert isinstance(v.field_10, tuple), "{} is not a tuple".format(v.field_10)
    assert len(v.field_10) == 2, "{} is not of length {}".format(v.field_10, 2)
    assert isinstance(v.field_10[0], int), "{} is not an int".format(v.field_10[0])
    check_bounds(U32_BYTES, False, v.field_10[0], True)
    assert isinstance(v.field_10[1], str), "{} is not a string".format(v.field_10[1])
    assert isinstance(v.field_11, list), "{} is not a list".format(v.field_11)
    assert len(v.field_11) == 3, "{} has not a length of {}".format(v.field_11, 3)
    def assert_v_field_11(v):
        assert isinstance(v, str), "{} is not a string".format(v)
    [assert_v_field_11(v) for v in v.field_11]
    assert isinstance(v.field_12, list), "{} is not a list".format(v.field_12)
    def assert_v_field_12(v):
        assert isinstance(v, int), "{} is not an int".format(v)
        check_bounds(U32_BYTES, False, v, True)
    [assert_v_field_12(v) for v in v.field_12]
    assert isinstance(v.field_13, float), "{} is not a float".format(v.field_13)

def assert_UNIT_STRUCT_TYPE(v):
    assert isinstance(v, UnitStructType)

def assert_TUPLE_STRUCT_TYPE(v):
    assert isinstance(v, tuple), "{} is not a tuple".format(TupleStructType)
    assert len(v) == 2, "{} is not of length {}".format(TupleStructType, 2)
    assert isinstance(v[0], int), "{} is not an int".format(v[0])
    check_bounds(U32_BYTES, False, v[0], True)
    assert isinstance(v[1], str), "{} is not a string".format(v[1])

def assert_ENUM_TYPE(v):
    def assert_AVariant(v):
        pass
    def assert_BVariant(v):
        assert isinstance(v[0], int), "{} is not an int".format(v[0])
        check_bounds(U32_BYTES, False, v[0], True)
        assert isinstance(v[1], str), "{} is not a string".format(v[1])
    def assert_CVariant(v):
        assert isinstance(v.field_1, int), "{} is not an int".format(v.field_1)
        check_bounds(U32_BYTES, False, v.field_1, True)
        assert isinstance(v.field_2, str), "{} is not a string".format(v.field_2)
        assert_STRUCT_TYPE(v.struct_type)

    if isinstance(v, EnumType_AVariant):
        assert_AVariant(v)
    elif isinstance(v, EnumType_BVariant):
        assert_BVariant(v)
    elif isinstance(v, EnumType_CVariant):
        assert_CVariant(v)
    else:
        raise TypeError("variant {} not exists".format(v))

def assert_sub_module_ENUM_TYPE(v):
    def assert_AVariant(v):
        pass
    def assert_BVariant(v):
        assert isinstance(v[0], int), "{} is not an int".format(v[0])
        check_bounds(U32_BYTES, False, v[0], True)
        assert isinstance(v[1], str), "{} is not a string".format(v[1])
    def assert_CVariant(v):
        assert isinstance(v.field_1, int), "{} is not an int".format(v.field_1)
        check_bounds(U32_BYTES, False, v.field_1, True)
        assert isinstance(v.field_2, str), "{} is not a string".format(v.field_2)
        assert_STRUCT_TYPE(v.struct_type)

    if isinstance(v, sub_module.EnumType_AVariant):
        assert_AVariant(v)
    elif isinstance(v, sub_module.EnumType_BVariant):
        assert_BVariant(v)
    elif isinstance(v, sub_module.EnumType_CVariant):
        assert_CVariant(v)
    else:
        raise TypeError("variant {} not exists".format(v))