varnish 0.6.0

A Rust framework for creating Varnish Caching Proxy extensions
Documentation
---
source: varnish-macros/src/tests.rs
---
VMOD_JSON_SPEC
[
  [
    "$VMOD",
    "2.0",
    "event3",
    "Vmod_vmod_event3_Func",
    "65b49085a4dba9c1b453b7e82d61d20a705b516d4ab88c0875ecb5eb7807fbb6",
    "Varnish (version) (hash)",
    "0",
    "0"
  ],
  [
    "$CPROTO",
    "
struct vmod_event3_Obj1;

struct vmod_event3_Obj2;

typedef VCL_VOID td_vmod_event3_access(
    VRT_CTX,
    struct vmod_priv *
);

typedef VCL_VOID td_vmod_event3_Obj1__init(
    VRT_CTX,
    struct vmod_event3_Obj1 **,
    const char *,
    struct vmod_priv *
);

typedef VCL_VOID td_vmod_event3_Obj1__fini(
    struct vmod_event3_Obj1 **
);

typedef VCL_VOID td_vmod_event3_Obj1_obj_access(
    VRT_CTX,
    struct vmod_event3_Obj1 *,
    struct vmod_priv *
);

typedef VCL_VOID td_vmod_event3_Obj2__init(
    VRT_CTX,
    struct vmod_event3_Obj2 **,
    const char *,
    struct vmod_priv *
);

typedef VCL_VOID td_vmod_event3_Obj2__fini(
    struct vmod_event3_Obj2 **
);

typedef VCL_VOID td_vmod_event3_Obj2_obj_access(
    VRT_CTX,
    struct vmod_event3_Obj2 *
);

struct Vmod_vmod_event3_Func {
  vmod_event_f *f_on_event;
  td_vmod_event3_access *f_access;
  td_vmod_event3_Obj1__init *f_Obj1__init;
  td_vmod_event3_Obj1__fini *f_Obj1__fini;
  td_vmod_event3_Obj1_obj_access *f_Obj1_obj_access;
  td_vmod_event3_Obj2__init *f_Obj2__init;
  td_vmod_event3_Obj2__fini *f_Obj2__fini;
  td_vmod_event3_Obj2_obj_access *f_Obj2_obj_access;
};

static struct Vmod_vmod_event3_Func Vmod_vmod_event3_Func;"
  ],
  [
    "$EVENT",
    "Vmod_vmod_event3_Func.f_on_event"
  ],
  [
    "$FUNC",
    "access",
    [
      [
        "VOID"
      ],
      "Vmod_vmod_event3_Func.f_access",
      "",
      [
        "PRIV_VCL",
        "vcl",
        "vcl"
      ]
    ]
  ],
  [
    "$OBJ",
    "Obj1",
    {
      "NULL_OK": false
    },
    "struct vmod_event3_Obj1",
    [
      "$INIT",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_event3_Func.f_Obj1__init",
        "",
        [
          "PRIV_VCL",
          "__vp",
          "__vp"
        ]
      ]
    ],
    [
      "$FINI",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_event3_Func.f_Obj1__fini",
        ""
      ]
    ],
    [
      "$METHOD",
      "obj_access",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_event3_Func.f_Obj1_obj_access",
        "",
        [
          "PRIV_VCL",
          "vcl",
          "vcl"
        ]
      ]
    ]
  ],
  [
    "$OBJ",
    "Obj2",
    {
      "NULL_OK": false
    },
    "struct vmod_event3_Obj2",
    [
      "$INIT",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_event3_Func.f_Obj2__init",
        "",
        [
          "PRIV_VCL",
          "__vp",
          "__vp"
        ]
      ]
    ],
    [
      "$FINI",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_event3_Func.f_Obj2__fini",
        ""
      ]
    ],
    [
      "$METHOD",
      "obj_access",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_event3_Func.f_Obj2_obj_access",
        ""
      ]
    ]
  ]
]