---
source: varnish-macros/src/tests.rs
---
VMOD_JSON_SPEC
[
[
"$VMOD",
"2.0",
"obj2",
"Vmod_vmod_obj2_Func",
"c90ca6b4ec2f9db8e6a3d620e0e530af19a24ef8a10aa41d62e9e1cb05b73027",
"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_obj1 {
struct vmod_priv * __vp;
char valid_val;
VCL_INT val;
};
typedef VCL_VOID td_vmod_obj2_Obj1_obj1(
VRT_CTX,
struct vmod_obj2_Obj1 **,
const char *,
struct arg_vmod_obj2_Obj1_obj1 *
);
typedef VCL_VOID td_vmod_obj2_Obj1__fini(
struct vmod_obj2_Obj1 **
);
typedef VCL_VOID td_vmod_obj2_Obj2_obj2(
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_obj3 {
struct vmod_priv * __vp;
char valid_val;
VCL_INT val;
};
typedef VCL_VOID td_vmod_obj2_Obj3_obj3(
VRT_CTX,
struct vmod_obj2_Obj3 **,
const char *,
struct arg_vmod_obj2_Obj3_obj3 *
);
typedef VCL_VOID td_vmod_obj2_Obj3__fini(
struct vmod_obj2_Obj3 **
);
typedef VCL_VOID td_vmod_obj2_Obj4_obj4(
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_obj1 *f_Obj1_obj1;
td_vmod_obj2_Obj1__fini *f_Obj1__fini;
td_vmod_obj2_Obj2_obj2 *f_Obj2_obj2;
td_vmod_obj2_Obj2__fini *f_Obj2__fini;
td_vmod_obj2_Obj3_obj3 *f_Obj3_obj3;
td_vmod_obj2_Obj3__fini *f_Obj3__fini;
td_vmod_obj2_Obj4_obj4 *f_Obj4_obj4;
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_obj1",
"struct arg_vmod_obj2_Obj1_obj1",
[
"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_obj2",
"",
[
"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_obj3",
"struct arg_vmod_obj2_Obj3_obj3",
[
"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_obj4",
"",
[
"PRIV_VCL",
"__vp",
"__vp"
],
[
"INT",
"val",
"val"
]
]
],
[
"$FINI",
[
[
"VOID"
],
"Vmod_vmod_obj2_Func.f_Obj4__fini",
""
]
]
]
]