---
source: varnish-macros/src/tests.rs
---
VMOD_JSON_SPEC
[
[
"$VMOD",
"2.0",
"obj2",
"Vmod_vmod_obj2_Func",
"0cd5a7608f16067dbb42bb21d157e185290d63e1a33e73c3715eee45ee3fc2b6",
"Varnish (version) (hash)",
"0",
"0"
],
[
"$CPROTO",
"
struct vmod_obj2_Obj1;
struct vmod_obj2_Obj2;
struct vmod_obj2_Obj3;
struct vmod_obj2_Obj4;
struct arg_vmod_obj2_Obj1__init {
struct vmod_priv * __vp;
char valid_val;
VCL_INT val;
};
typedef VCL_VOID td_vmod_obj2_Obj1__init(
VRT_CTX,
struct vmod_obj2_Obj1 **,
const char *,
struct arg_vmod_obj2_Obj1__init *
);
typedef VCL_VOID td_vmod_obj2_Obj1__fini(
struct vmod_obj2_Obj1 **
);
typedef VCL_VOID td_vmod_obj2_Obj2__init(
VRT_CTX,
struct vmod_obj2_Obj2 **,
const char *,
struct vmod_priv *,
VCL_INT
);
typedef VCL_VOID td_vmod_obj2_Obj2__fini(
struct vmod_obj2_Obj2 **
);
struct arg_vmod_obj2_Obj3__init {
struct vmod_priv * __vp;
char valid_val;
VCL_INT val;
};
typedef VCL_VOID td_vmod_obj2_Obj3__init(
VRT_CTX,
struct vmod_obj2_Obj3 **,
const char *,
struct arg_vmod_obj2_Obj3__init *
);
typedef VCL_VOID td_vmod_obj2_Obj3__fini(
struct vmod_obj2_Obj3 **
);
typedef VCL_VOID td_vmod_obj2_Obj4__init(
VRT_CTX,
struct vmod_obj2_Obj4 **,
const char *,
struct vmod_priv *,
VCL_INT
);
typedef VCL_VOID td_vmod_obj2_Obj4__fini(
struct vmod_obj2_Obj4 **
);
struct Vmod_vmod_obj2_Func {
td_vmod_obj2_Obj1__init *f_Obj1__init;
td_vmod_obj2_Obj1__fini *f_Obj1__fini;
td_vmod_obj2_Obj2__init *f_Obj2__init;
td_vmod_obj2_Obj2__fini *f_Obj2__fini;
td_vmod_obj2_Obj3__init *f_Obj3__init;
td_vmod_obj2_Obj3__fini *f_Obj3__fini;
td_vmod_obj2_Obj4__init *f_Obj4__init;
td_vmod_obj2_Obj4__fini *f_Obj4__fini;
};
static struct Vmod_vmod_obj2_Func Vmod_vmod_obj2_Func;"
],
[
"$OBJ",
"Obj1",
{
"NULL_OK": false
},
"struct vmod_obj2_Obj1",
[
"$INIT",
[
[
"VOID"
],
"Vmod_vmod_obj2_Func.f_Obj1__init",
"struct arg_vmod_obj2_Obj1__init",
[
"PRIV_VCL",
"__vp",
"__vp"
],
[
"INT",
"val",
"val",
null,
null,
true
]
]
],
[
"$FINI",
[
[
"VOID"
],
"Vmod_vmod_obj2_Func.f_Obj1__fini",
""
]
]
],
[
"$OBJ",
"Obj2",
{
"NULL_OK": false
},
"struct vmod_obj2_Obj2",
[
"$INIT",
[
[
"VOID"
],
"Vmod_vmod_obj2_Func.f_Obj2__init",
"",
[
"PRIV_VCL",
"__vp",
"__vp"
],
[
"INT",
"val",
"val"
]
]
],
[
"$FINI",
[
[
"VOID"
],
"Vmod_vmod_obj2_Func.f_Obj2__fini",
""
]
]
],
[
"$OBJ",
"Obj3",
{
"NULL_OK": false
},
"struct vmod_obj2_Obj3",
[
"$INIT",
[
[
"VOID"
],
"Vmod_vmod_obj2_Func.f_Obj3__init",
"struct arg_vmod_obj2_Obj3__init",
[
"PRIV_VCL",
"__vp",
"__vp"
],
[
"INT",
"val",
"val",
null,
null,
true
]
]
],
[
"$FINI",
[
[
"VOID"
],
"Vmod_vmod_obj2_Func.f_Obj3__fini",
""
]
]
],
[
"$OBJ",
"Obj4",
{
"NULL_OK": false
},
"struct vmod_obj2_Obj4",
[
"$INIT",
[
[
"VOID"
],
"Vmod_vmod_obj2_Func.f_Obj4__init",
"",
[
"PRIV_VCL",
"__vp",
"__vp"
],
[
"INT",
"val",
"val"
]
]
],
[
"$FINI",
[
[
"VOID"
],
"Vmod_vmod_obj2_Func.f_Obj4__fini",
""
]
]
]
]