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",
    "obj",
    "Vmod_vmod_obj_Func",
    "e4dde1367a8785e0bb9e3b32a6a53880156eb4050d20f22573df4b5ea5f44461",
    "Varnish (version) (hash)",
    "0",
    "0"
  ],
  [
    "$CPROTO",
    "
struct vmod_obj_kv1;

struct vmod_obj_kv2;

struct vmod_obj_kv3;

struct arg_vmod_obj_kv1__init {
  char valid_cap;
  VCL_INT cap;
};

typedef VCL_VOID td_vmod_obj_kv1__init(
    VRT_CTX,
    struct vmod_obj_kv1 **,
    const char *,
    struct arg_vmod_obj_kv1__init *
);

typedef VCL_VOID td_vmod_obj_kv1__fini(
    struct vmod_obj_kv1 **
);

typedef VCL_VOID td_vmod_obj_kv1_set(
    VRT_CTX,
    struct vmod_obj_kv1 *,
    VCL_STRING,
    VCL_STRING
);

typedef VCL_STRING td_vmod_obj_kv1_get(
    VRT_CTX,
    struct vmod_obj_kv1 *,
    VCL_STRING
);

struct arg_vmod_obj_kv2__init {
  char valid_cap;
  VCL_INT cap;
};

typedef VCL_VOID td_vmod_obj_kv2__init(
    VRT_CTX,
    struct vmod_obj_kv2 **,
    const char *,
    struct arg_vmod_obj_kv2__init *
);

typedef VCL_VOID td_vmod_obj_kv2__fini(
    struct vmod_obj_kv2 **
);

struct arg_vmod_obj_kv2_set {
  VCL_STRING key;
  char valid_value;
  VCL_STRING value;
};

typedef VCL_VOID td_vmod_obj_kv2_set(
    VRT_CTX,
    struct vmod_obj_kv2 *,
    struct arg_vmod_obj_kv2_set *
);

struct arg_vmod_obj_kv3__init {
  char valid_cap;
  VCL_INT cap;
};

typedef VCL_VOID td_vmod_obj_kv3__init(
    VRT_CTX,
    struct vmod_obj_kv3 **,
    const char *,
    struct arg_vmod_obj_kv3__init *
);

typedef VCL_VOID td_vmod_obj_kv3__fini(
    struct vmod_obj_kv3 **
);

struct arg_vmod_obj_kv3_set {
  VCL_STRING key;
  char valid_value;
  VCL_STRING value;
};

typedef VCL_VOID td_vmod_obj_kv3_set(
    VRT_CTX,
    struct vmod_obj_kv3 *,
    struct arg_vmod_obj_kv3_set *
);

struct Vmod_vmod_obj_Func {
  td_vmod_obj_kv1__init *f_kv1__init;
  td_vmod_obj_kv1__fini *f_kv1__fini;
  td_vmod_obj_kv1_set *f_kv1_set;
  td_vmod_obj_kv1_get *f_kv1_get;
  td_vmod_obj_kv2__init *f_kv2__init;
  td_vmod_obj_kv2__fini *f_kv2__fini;
  td_vmod_obj_kv2_set *f_kv2_set;
  td_vmod_obj_kv3__init *f_kv3__init;
  td_vmod_obj_kv3__fini *f_kv3__fini;
  td_vmod_obj_kv3_set *f_kv3_set;
};

static struct Vmod_vmod_obj_Func Vmod_vmod_obj_Func;"
  ],
  [
    "$OBJ",
    "kv1",
    {
      "NULL_OK": false
    },
    "struct vmod_obj_kv1",
    [
      "$INIT",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_obj_Func.f_kv1__init",
        "struct arg_vmod_obj_kv1__init",
        [
          "INT",
          "cap",
          "cap",
          null,
          null,
          true
        ]
      ]
    ],
    [
      "$FINI",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_obj_Func.f_kv1__fini",
        ""
      ]
    ],
    [
      "$METHOD",
      "set",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_obj_Func.f_kv1_set",
        "",
        [
          "STRING",
          "key",
          "key"
        ],
        [
          "STRING",
          "value",
          "value"
        ]
      ]
    ],
    [
      "$METHOD",
      "get",
      [
        [
          "STRING"
        ],
        "Vmod_vmod_obj_Func.f_kv1_get",
        "",
        [
          "STRING",
          "key",
          "key"
        ]
      ]
    ]
  ],
  [
    "$OBJ",
    "kv2",
    {
      "NULL_OK": false
    },
    "struct vmod_obj_kv2",
    [
      "$INIT",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_obj_Func.f_kv2__init",
        "struct arg_vmod_obj_kv2__init",
        [
          "INT",
          "cap",
          "cap",
          null,
          null,
          true
        ]
      ]
    ],
    [
      "$FINI",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_obj_Func.f_kv2__fini",
        ""
      ]
    ],
    [
      "$METHOD",
      "set",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_obj_Func.f_kv2_set",
        "struct arg_vmod_obj_kv2_set",
        [
          "STRING",
          "key",
          "key"
        ],
        [
          "STRING",
          "value",
          "value",
          null,
          null,
          true
        ]
      ]
    ]
  ],
  [
    "$OBJ",
    "kv3",
    {
      "NULL_OK": false
    },
    "struct vmod_obj_kv3",
    [
      "$INIT",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_obj_Func.f_kv3__init",
        "struct arg_vmod_obj_kv3__init",
        [
          "INT",
          "cap",
          "cap",
          null,
          null,
          true
        ]
      ]
    ],
    [
      "$FINI",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_obj_Func.f_kv3__fini",
        ""
      ]
    ],
    [
      "$METHOD",
      "set",
      [
        [
          "VOID"
        ],
        "Vmod_vmod_obj_Func.f_kv3_set",
        "struct arg_vmod_obj_kv3_set",
        [
          "STRING",
          "key",
          "key"
        ],
        [
          "STRING",
          "value",
          "value",
          null,
          null,
          true
        ]
      ]
    ]
  ]
]