includes = ["optional", "cstdint", "vector"] [cases] [cases.uint64_empty] param_types = ["std::optional&"] setup = "return std::nullopt;" expect_json = ''' [ { "staticSize": 16, "dynamicSize": 0, "exclusiveSize": 16, "length": 0, "capacity": 1, "elementStaticSize": 8 } ] ''' expect_json_v2 = ''' [ { "staticSize": 16, "exclusiveSize": 16, "length": 0, "capacity": 1, "members": [] } ] ''' [cases.uint64_present] param_types = ["std::optional&"] setup = "return 64;" expect_json = ''' [ { "staticSize": 16, "dynamicSize": 0, "exclusiveSize": 16, "length": 1, "capacity": 1, "elementStaticSize": 8 } ] ''' expect_json_v2 = ''' [ { "staticSize": 16, "exclusiveSize": 8, "length": 1, "capacity": 1, "members": [ { "staticSize": 8, "exclusiveSize": 8 } ] } ] ''' [cases.vector_empty] param_types = ["std::optional>&"] setup = "return std::nullopt;" expect_json = ''' [ { "staticSize": 32, "dynamicSize": 0, "exclusiveSize": 32, "length": 0, "capacity": 1, "elementStaticSize": 24 } ] ''' expect_json_v2 = ''' [ { "staticSize": 32, "exclusiveSize": 32, "length": 0, "capacity": 1, "members": [] } ] ''' [cases.vector_present] param_types = ["std::optional>&"] setup = "return {{{1,2,3,4,5}}};" expect_json = ''' [ { "staticSize": 32, "dynamicSize": 40, "exclusiveSize": 8, "length": 1, "capacity": 1, "elementStaticSize": 24, "members": [ { "staticSize": 24, "dynamicSize": 40, "exclusiveSize": 64, "length": 5 } ] } ] ''' expect_json_v2 = ''' [ { "staticSize": 32, "exclusiveSize": 8, "length": 1, "capacity": 1, "members": [ { "staticSize": 24, "exclusiveSize": 24, "length": 5, "capacity": 5 } ] } ] '''