[
  {
    "filename": "attr.h",
    "ignore": true,
    "jsClassName": "Attr",
    "cppClassName": "Attr",
    "cType": "git_attr",
    "functions": [
      {
        "cFunctionName": "git_attr_get",
        "args": [
          {
            "name": "value_out",
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "flags",
            "cType": "uint32_t",
            "cppClassName": "Uint32",
            "jsClassName": "Uint32"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "get",
        "cppFunctionName": "Get",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_attr_get_many",
        "args": [
          {
            "name": "values_out",
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "flags",
            "cType": "uint32_t",
            "cppClassName": "Uint32",
            "jsClassName": "Uint32"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "num_attr",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "names",
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getMany",
        "cppFunctionName": "GetMany",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_attr_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "flags",
            "cType": "uint32_t",
            "cppClassName": "Uint32",
            "jsClassName": "Uint32"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "callback",
            "cType": "git_attr_foreach_cb",
            "cppClassName": "AttrForeachCb",
            "jsClassName": "AttrForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_attr_cache_flush",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "cacheFlush",
        "cppFunctionName": "CacheFlush",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_attr_add_macro",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "values",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "addMacro",
        "cppFunctionName": "AddMacro",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "blob.h",
    "dependencies": [
      "../include/repo.h",
      "../include/oid.h",
      "../include/wrapper.h",
      "node_buffer.h"
    ],
    "jsClassName": "Blob",
    "cppClassName": "GitBlob",
    "cType": "git_blob",
    "freeFunctionName": "git_blob_free",
    "functions": [
      {
        "cFunctionName": "git_blob_free",
        "args": [
          {
            "name": "blob",
            "cType": "git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_blob_id",
        "args": [
          {
            "name": "blob",
            "cType": "const git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_blob_rawcontent",
        "args": [
          {
            "name": "blob",
            "cType": "const git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "content",
        "cppFunctionName": "Content",
        "return": {
          "cType": "const void *",
          "cppClassName": "Wrapper"
        }
      },
      {
        "cFunctionName": "git_blob_rawsize",
        "args": [
          {
            "name": "blob",
            "cType": "const git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "git_off_t",
          "cppClassName": "Number"
        }
      },
      {
        "cFunctionName": "git_blob_is_binary",
        "args": [
          {
            "name": "blob",
            "cType": "git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "isBinary",
        "cppFunctionName": "IsBinary",
        "return": {
          "cType": "int",
          "cppClassName": "Boolean"
        }
      }
    ]
  },
  {
    "filename": "branch.h",
    "jsClassName": "Branch",
    "cppClassName": "Branch",
    "cType": "git_branch",
    "freeFunctionName": "git_branch_free",
    "functions": [
      {
        "cFunctionName": "git_branch_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "branch_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "target",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "create",
        "cppFunctionName": "Create",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_branch_delete",
        "args": [
          {
            "name": "branch",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "delete",
        "cppFunctionName": "Delete",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_branch_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "list_flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "branch_cb",
            "cType": "git_branch_foreach_cb",
            "cppClassName": "BranchForeachCb",
            "jsClassName": "BranchForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_branch_move",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "branch",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "new_branch_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "move",
        "cppFunctionName": "Move",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_branch_lookup",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "branch_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "branch_type",
            "cType": "git_branch_t",
            "cppClassName": "BranchT",
            "jsClassName": "BranchT"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "lookup",
        "cppFunctionName": "Lookup",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_branch_name",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_branch_upstream",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "branch",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "upstream",
        "cppFunctionName": "Upstream",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_branch_set_upstream",
        "args": [
          {
            "name": "branch",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "upstream_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "setUpstream",
        "cppFunctionName": "SetUpstream",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_branch_upstream_name",
        "args": [
          {
            "name": "tracking_branch_name_out",
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "buffer_size",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "canonical_branch_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "upstreamName",
        "cppFunctionName": "UpstreamName",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_branch_is_head",
        "args": [
          {
            "name": "branch",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "isHead",
        "cppFunctionName": "IsHead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_branch_remote_name",
        "args": [
          {
            "name": "remote_name_out",
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "buffer_size",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "canonical_branch_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "remoteName",
        "cppFunctionName": "RemoteName",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "checkout.h",
    "ignore": true,
    "jsClassName": "Checkout",
    "cppClassName": "Checkout",
    "cType": "git_checkout",
    "freeFunctionName": "git_checkout_free",
    "functions": [
      {
        "cFunctionName": "git_checkout_head",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "opts",
            "cType": "git_checkout_opts *",
            "cppClassName": "CheckoutOpts",
            "jsClassName": "CheckoutOpts"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "head",
        "cppFunctionName": "Head",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_checkout_index",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index"
          },
          {
            "name": "opts",
            "cType": "git_checkout_opts *",
            "cppClassName": "CheckoutOpts",
            "jsClassName": "CheckoutOpts"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "index",
        "cppFunctionName": "Index",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_checkout_tree",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "treeish",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object"
          },
          {
            "name": "opts",
            "cType": "git_checkout_opts *",
            "cppClassName": "CheckoutOpts",
            "jsClassName": "CheckoutOpts"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "tree",
        "cppFunctionName": "Tree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "clone.h",
    "ignore": true,
    "jsClassName": "Clone",
    "cppClassName": "Clone",
    "cType": "git_clone",
    "freeFunctionName": "git_clone_free",
    "functions": [
      {
        "cFunctionName": "git_clone",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "local_path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "options",
            "cType": "const git_clone_options *",
            "cppClassName": "CloneOptions",
            "jsClassName": "CloneOptions"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitClone",
        "cppFunctionName": "GitClone",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "commit.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h",
      "../include/signature.h",
      "../include/tree.h"
    ],
    "jsClassName": "Commit",
    "cppClassName": "GitCommit",
    "cType": "git_commit",
    "freeFunctionName": "git_commit_free",
    "functions": [
      {
        "cFunctionName": "git_commit_lookup_prefix",
        "args": [
          {
            "name": "commit",
            "cType": "git_commit **",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "lookupPrefix",
        "cppFunctionName": "LookupPrefix",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_commit_free",
        "args": [
          {
            "name": "commit",
            "cType": "git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_commit_id",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_commit_message_encoding",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "messageEncoding",
        "cppFunctionName": "MessageEncoding",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_commit_message",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "message",
        "cppFunctionName": "Message",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_commit_time",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "time",
        "cppFunctionName": "Time",
        "return": {
          "cType": "git_time_t",
          "cppClassName": "Number"
        }
      },
      {
        "cFunctionName": "git_commit_time_offset",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "offset",
        "cppFunctionName": "Offset",
        "return": {
          "cType": "int",
          "cppClassName": "Integer"
        }
      },
      {
        "cFunctionName": "git_commit_committer",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "committer",
        "cppFunctionName": "Committer",
        "return": {
          "cType": "const git_signature *",
          "cppClassName": "GitSignature",
          "copy": "git_signature_dup"
        }
      },
      {
        "cFunctionName": "git_commit_author",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "author",
        "cppFunctionName": "Author",
        "return": {
          "cType": "const git_signature *",
          "cppClassName": "GitSignature",
          "copy": "git_signature_dup"
        }
      },
      {
        "cFunctionName": "git_commit_tree",
        "args": [
          {
            "name": "tree_out",
            "cType": "git_tree **",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isReturn": true
          },
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getTree",
        "cppFunctionName": "GetTree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_commit_tree_id",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "treeId",
        "cppFunctionName": "TreeId",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_commit_parentcount",
        "args": [
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "parentCount",
        "cppFunctionName": "ParentCount",
        "return": {
          "cType": "unsigned int",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_commit_parent",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_commit **",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit"
          },
          {
            "name": "commit",
            "cType": "git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          },
          {
            "name": "n",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "parent",
        "cppFunctionName": "Parent",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_commit_parent_id",
        "args": [
          {
            "name": "commit",
            "cType": "git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          },
          {
            "name": "n",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "parentId",
        "cppFunctionName": "ParentId",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_commit_nth_gen_ancestor",
        "args": [
          {
            "name": "ancestor",
            "cType": "git_commit **",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isReturn": true
          },
          {
            "name": "commit",
            "cType": "const git_commit *",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isSelf": true
          },
          {
            "name": "n",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "nthGenAncestor",
        "cppFunctionName": "NthGenAncestor",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_commit_create_v",
        "args": [
          {
            "name": "id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "update_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "author",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "committer",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "message_encoding",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "message",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree"
          },
          {
            "name": "parent_count",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "createV",
        "cppFunctionName": "CreateV",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "common.h",
    "ignore": true,
    "jsClassName": "Common",
    "cppClassName": "Common",
    "cType": "git_common",
    "functions": [
      {
        "cFunctionName": "git_libgit2_version",
        "args": [
          {
            "name": "major",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "minor",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "rev",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitLibgit2Version",
        "cppFunctionName": "GitLibgit2Version",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_libgit2_capabilities",
        "args": [],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitLibgit2Capabilities",
        "cppFunctionName": "GitLibgit2Capabilities",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_libgit2_opts",
        "args": [
          {
            "name": "option",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitLibgit2Opts",
        "cppFunctionName": "GitLibgit2Opts",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "config.h",
    "ignore": true,
    "jsClassName": "Config",
    "cppClassName": "Config",
    "cType": "git_config",
    "freeFunctionName": "git_config_free",
    "functions": [
      {
        "cFunctionName": "git_config_find_global",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "length",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "findGlobal",
        "cppFunctionName": "FindGlobal",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_find_xdg",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "length",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "findXdg",
        "cppFunctionName": "FindXdg",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_find_system",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "length",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "findSystem",
        "cppFunctionName": "FindSystem",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_open_default",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_config **",
            "cppClassName": "Config",
            "jsClassName": "Config"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "openDefault",
        "cppFunctionName": "OpenDefault",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_config **",
            "cppClassName": "Config",
            "jsClassName": "Config"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "new",
        "cppFunctionName": "New",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_add_backend",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true
          },
          {
            "name": "file",
            "cType": "git_config_backend *",
            "cppClassName": "ConfigBackend",
            "jsClassName": "ConfigBackend"
          },
          {
            "name": "level",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addBackend",
        "cppFunctionName": "AddBackend",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_add_file_ondisk",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "level",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addFileOndisk",
        "cppFunctionName": "AddFileOndisk",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_open_ondisk",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_config **",
            "cppClassName": "Config",
            "jsClassName": "Config"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "openOndisk",
        "cppFunctionName": "OpenOndisk",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_open_level",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_config **",
            "cppClassName": "Config",
            "jsClassName": "Config"
          },
          {
            "name": "parent",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config"
          },
          {
            "name": "level",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "openLevel",
        "cppFunctionName": "OpenLevel",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_refresh",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "refresh",
        "cppFunctionName": "Refresh",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_free",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_config_get_entry",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "const git_config_entry **",
            "cppClassName": "ConfigEntry",
            "jsClassName": "ConfigEntry"
          },
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getEntry",
        "cppFunctionName": "GetEntry",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_get_int32",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int32_t *",
            "cppClassName": "int32_t",
            "jsClassName": "int32_t"
          },
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getInt32",
        "cppFunctionName": "GetInt32",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_get_int64",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int64_t *",
            "cppClassName": "int64_t",
            "jsClassName": "int64_t"
          },
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getInt64",
        "cppFunctionName": "GetInt64",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_get_bool",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getBool",
        "cppFunctionName": "GetBool",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_get_string",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getString",
        "cppFunctionName": "GetString",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_get_multivar",
        "args": [
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "regexp",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "callback",
            "cType": "git_config_foreach_cb",
            "cppClassName": "ConfigForeachCb",
            "jsClassName": "ConfigForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getMultivar",
        "cppFunctionName": "GetMultivar",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_set_int32",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "value",
            "cType": "int32_t",
            "cppClassName": "int32_t",
            "jsClassName": "int32_t"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setInt32",
        "cppFunctionName": "SetInt32",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_set_int64",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "value",
            "cType": "int64_t",
            "cppClassName": "int64_t",
            "jsClassName": "int64_t"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setInt64",
        "cppFunctionName": "SetInt64",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_set_bool",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "value",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setBool",
        "cppFunctionName": "SetBool",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_set_string",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "value",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setString",
        "cppFunctionName": "SetString",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_set_multivar",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "regexp",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "value",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setMultivar",
        "cppFunctionName": "SetMultivar",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_delete_entry",
        "args": [
          {
            "name": "cfg",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "deleteEntry",
        "cppFunctionName": "DeleteEntry",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_foreach",
        "args": [
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true
          },
          {
            "name": "callback",
            "cType": "git_config_foreach_cb",
            "cppClassName": "ConfigForeachCb",
            "jsClassName": "ConfigForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_foreach_match",
        "args": [
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config",
            "isSelf": true
          },
          {
            "name": "regexp",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "callback",
            "cType": "git_config_foreach_cb",
            "cppClassName": "ConfigForeachCb",
            "jsClassName": "ConfigForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "foreachMatch",
        "cppFunctionName": "ForeachMatch",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_get_mapped",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "cfg",
            "cType": "const git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "maps",
            "cType": "const git_cvar_map *",
            "cppClassName": "CvarMap",
            "jsClassName": "CvarMap"
          },
          {
            "name": "map_n",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "getMapped",
        "cppFunctionName": "GetMapped",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_lookup_map_value",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "maps",
            "cType": "const git_cvar_map *",
            "cppClassName": "CvarMap",
            "jsClassName": "CvarMap"
          },
          {
            "name": "map_n",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "value",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "lookupMapValue",
        "cppFunctionName": "LookupMapValue",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_parse_bool",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "value",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "parseBool",
        "cppFunctionName": "ParseBool",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_parse_int32",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int32_t *",
            "cppClassName": "int32_t",
            "jsClassName": "int32_t"
          },
          {
            "name": "value",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "parseInt32",
        "cppFunctionName": "ParseInt32",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_config_parse_int64",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "int64_t *",
            "cppClassName": "int64_t",
            "jsClassName": "int64_t"
          },
          {
            "name": "value",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "parseInt64",
        "cppFunctionName": "ParseInt64",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "cred_helpers.h",
    "ignore": true,
    "jsClassName": "CredHelpers",
    "cppClassName": "CredHelpers",
    "cType": "git_cred_helpers",
    "freeFunctionName": "git_cred_helpers_free",
    "functions": [
      {
        "cFunctionName": "git_cred_userpass",
        "args": [
          {
            "name": "cred",
            "cType": "git_cred **",
            "cppClassName": "Cred",
            "jsClassName": "Cred"
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "user_from_url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "allowed_types",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitCredUserpass",
        "cppFunctionName": "GitCredUserpass",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "patch.h",
    "dependencies": [
      "../include/delta.h",
      "../include/diff_range.h"
    ],
    "jsClassName": "Patch",
    "cppClassName": "GitPatch",
    "cType": "git_diff_patch",
    "freeFunctionName": "git_diff_patch_free",
    "functions": [
      {
        "cFunctionName": "git_diff_patch_free",
        "args": [
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "isFree": true,
        "jsFunctionName": "patchFree",
        "cppFunctionName": "PatchFree",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_diff_patch_delta",
        "args": [
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "delta",
        "cppFunctionName": "Delta",
        "return": {
          "cType": "const git_diff_delta *",
          "cppClassName": "GitDelta",
          "copy": "git_diff_delta_dup"
        }
      },
      {
        "cFunctionName": "git_diff_patch_num_hunks",
        "args": [
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_diff_patch_line_stats",
        "args": [
          {
            "name": "total_context",
            "cType": "size_t *",
            "cppClassName": "Integer",
            "jsClassName": "Number",
            "isReturn": true
          },
          {
            "name": "total_additions",
            "cType": "size_t *",
            "cppClassName": "Integer",
            "jsClassName": "Number",
            "isReturn": true
          },
          {
            "name": "total_deletions",
            "cType": "size_t *",
            "cppClassName": "Integer",
            "jsClassName": "Number",
            "isReturn": true
          },
          {
            "name": "patch",
            "cType": "const git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "stats",
        "cppFunctionName": "Stats",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_patch_get_hunk",
        "args": [
          {
            "name": "range",
            "jsName": "range",
            "cType": "const git_diff_range **",
            "cppClassName": "GitDiffRange",
            "jsClassName": "DiffRange",
            "isReturn": true,
            "copy": "git_diff_range_dup"
          },
          {
            "name": "header",
            "jsName": "header",
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String",
            "isReturn": true
          },
          {
            "name": "header_len",
            "jsName": "headerLength",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "isReturn": true
          },
          {
            "name": "lines_in_hunk",
            "jsName": "lines",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "isReturn": true
          },
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true
          },
          {
            "name": "hunk_idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hunk",
        "cppFunctionName": "Hunk",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_patch_num_lines_in_hunk",
        "args": [
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true
          },
          {
            "name": "hunk_idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "lines",
        "cppFunctionName": "Lines",
        "return": {
          "cType": "int",
          "cppClassName": "Int32"
        }
      },
      {
        "cFunctionName": "git_diff_patch_get_line_in_hunk",
        "args": [
          {
            "name": "line_origin",
            "jsName": "lineOrigin",
            "cType": "char *",
            "cppClassName": "Integer",
            "jsClassName": "Number",
            "isReturn": true
          },
          {
            "name": "content",
            "jsName": "content",
            "size": "content_len",
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String",
            "isReturn": true
          },
          {
            "name": "content_len",
            "jsName": "length",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "isReturn": true
          },
          {
            "name": "old_lineno",
            "jsName": "oldLineNumber",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "isReturn": true
          },
          {
            "name": "new_lineno",
            "jsName": "newLineNumber",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number",
            "isReturn": true
          },
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true
          },
          {
            "name": "hunk_idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "line_of_hunk",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "line",
        "cppFunctionName": "Line",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_patch_print",
        "args": [
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true
          },
          {
            "name": "print_cb",
            "cType": "git_diff_data_cb",
            "cppClassName": "DiffDataCb",
            "jsClassName": "DiffDataCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "patchPrint",
        "cppFunctionName": "PatchPrint",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_patch_to_str",
        "args": [
          {
            "name": "string",
            "cType": "char **",
            "cppClassName": "String",
            "jsClassName": "String",
            "isReturn": true
          },
          {
            "name": "patch",
            "cType": "git_diff_patch *",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "toString",
        "cppFunctionName": "ToString",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "diff_options.h",
    "dependencies": [],
    "jsClassName": "DiffOptions",
    "cppClassName": "GitDiffOptions",
    "cType": "git_diff_options",
    "freeFunctionName": "free",
    "fields": []
  },
  {
    "filename": "diff_find_options.h",
    "dependencies": [],
    "jsClassName": "DiffFindOptions",
    "cppClassName": "GitDiffFindOptions",
    "cType": "git_diff_find_options",
    "freeFunctionName": "free",
    "fields": []
  },
  {
    "filename": "diff_range.h",
    "dependencies": [],
    "jsClassName": "DiffRange",
    "cppClassName": "GitDiffRange",
    "cType": "git_diff_range",
    "freeFunctionName": "free",
    "fields": [
      {
        "jsFunctionName": "oldStart",
        "cppFunctionName": "OldStart",
        "name": "old_start",
        "cType": "int",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "oldLines",
        "cppFunctionName": "OldLines",
        "name": "old_lines",
        "cType": "int",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "newStart",
        "cppFunctionName": "NewStart",
        "name": "new_start",
        "cType": "int",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "newLines",
        "cppFunctionName": "NewLines",
        "name": "new_lines",
        "cType": "int",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      }
    ]
  },
  {
    "filename": "diff_file.h",
    "dependencies": [
      "../include/oid.h"
    ],
    "jsClassName": "DiffFile",
    "cppClassName": "GitDiffFile",
    "cType": "git_diff_file",
    "freeFunctionName": "free",
    "fields": [
      {
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "name": "oid",
        "cType": "git_oid",
        "cppClassName": "GitOid",
        "jsClassName": "Oid",
        "copy": "git_oid_dup"
      },
      {
        "jsFunctionName": "path",
        "cppFunctionName": "Path",
        "name": "path",
        "cType": "const char *",
        "cppClassName": "String",
        "jsClassName": "String"
      },
      {
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "name": "size",
        "cType": "git_off_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "flags",
        "cppFunctionName": "Flags",
        "name": "flags",
        "cType": "uint32_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "mode",
        "cppFunctionName": "Mode",
        "name": "mode",
        "cType": "uint16_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      }
    ]
  },
  {
    "filename": "delta.h",
    "dependencies": [
      "../include/diff_file.h"
    ],
    "jsClassName": "Delta",
    "cppClassName": "GitDelta",
    "cType": "git_diff_delta",
    "freeFunctionName": "free",
    "fields": [
      {
        "jsFunctionName": "oldFile",
        "cppFunctionName": "OldFile",
        "name": "old_file",
        "cType": "git_diff_file",
        "cppClassName": "GitDiffFile",
        "jsClassName": "DiffFile",
        "copy": "git_diff_file_dup"
      },
      {
        "jsFunctionName": "newFile",
        "cppFunctionName": "NewFile",
        "name": "new_file",
        "cType": "git_diff_file",
        "cppClassName": "GitDiffFile",
        "jsClassName": "DiffFile",
        "copy": "git_diff_file_dup"
      },
      {
        "jsFunctionName": "status",
        "cppFunctionName": "Status",
        "name": "status",
        "cType": "git_delta_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "similarity",
        "cppFunctionName": "Similarity",
        "name": "similarity",
        "cType": "uint32_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "flags",
        "cppFunctionName": "Flags",
        "name": "flags",
        "cType": "uint32_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      }
    ]
  },
  {
    "filename": "diff_list.h",
    "dependencies": [
      "../include/diff_options.h",
      "../include/diff_find_options.h",
      "../include/repo.h",
      "../include/tree.h",
      "../include/index.h",
      "../include/patch.h",
      "../include/delta.h"
    ],
    "jsClassName": "DiffList",
    "cppClassName": "GitDiffList",
    "cType": "git_diff_list",
    "freeFunctionName": "git_diff_list_free",
    "functions": [
      {
        "cFunctionName": "git_diff_list_free",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "listFree",
        "cppFunctionName": "ListFree",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_diff_merge",
        "args": [
          {
            "name": "onto",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isSelf": true
          },
          {
            "name": "from",
            "cType": "const git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "merge",
        "cppFunctionName": "Merge",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_find_similar",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isSelf": true
          },
          {
            "name": "options",
            "cType": "git_diff_find_options *",
            "cppClassName": "GitDiffFindOptions",
            "jsClassName": "DiffFindOptions"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "findSimilar",
        "cppFunctionName": "FindSimilar",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_foreach",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList"
          },
          {
            "name": "file_cb",
            "cType": "git_diff_file_cb",
            "cppClassName": "DiffFileCb",
            "jsClassName": "DiffFileCb"
          },
          {
            "name": "hunk_cb",
            "cType": "git_diff_hunk_cb",
            "cppClassName": "DiffHunkCb",
            "jsClassName": "DiffHunkCb"
          },
          {
            "name": "line_cb",
            "cType": "git_diff_data_cb",
            "cppClassName": "DiffDataCb",
            "jsClassName": "DiffDataCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_print_compact",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList"
          },
          {
            "name": "print_cb",
            "cType": "git_diff_data_cb",
            "cppClassName": "DiffDataCb",
            "jsClassName": "DiffDataCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "printCompact",
        "cppFunctionName": "PrintCompact",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_status_char",
        "args": [
          {
            "name": "status",
            "cType": "git_delta_t",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "statusChar",
        "cppFunctionName": "StatusChar",
        "return": {
          "cType": "char",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_diff_print_patch",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isSelf": true
          },
          {
            "name": "print_cb",
            "cType": "git_diff_data_cb",
            "cppClassName": "DiffDataCb",
            "jsClassName": "DiffDataCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "printPatch",
        "cppFunctionName": "PrintPatch",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_num_deltas",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_diff_num_deltas_of_type",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList"
          },
          {
            "name": "type",
            "cType": "git_delta_t",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "numDeltasOfType",
        "cppFunctionName": "NumDeltasOfType",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_diff_get_patch",
        "args": [
          {
            "name": "patch_out",
            "jsName": "patch",
            "cType": "git_diff_patch **",
            "cppClassName": "GitPatch",
            "jsClassName": "Patch",
            "isReturn": true
          },
          {
            "name": "delta_out",
            "jsName": "delta",
            "cType": "const git_diff_delta **",
            "cppClassName": "GitDelta",
            "jsClassName": "Delta",
            "isReturn": true
          },
          {
            "name": "diff",
            "cType": "git_diff_list *",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isSelf": true
          },
          {
            "name": "idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "patch",
        "cppFunctionName": "Patch",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_blobs",
        "args": [
          {
            "name": "old_blob",
            "cType": "const git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob"
          },
          {
            "name": "new_blob",
            "cType": "const git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob"
          },
          {
            "name": "options",
            "cType": "const git_diff_options *",
            "cppClassName": "GitDiffOptions",
            "jsClassName": "DiffOptions"
          },
          {
            "name": "file_cb",
            "cType": "git_diff_file_cb",
            "cppClassName": "DiffFileCb",
            "jsClassName": "DiffFileCb"
          },
          {
            "name": "hunk_cb",
            "cType": "git_diff_hunk_cb",
            "cppClassName": "DiffHunkCb",
            "jsClassName": "DiffHunkCb"
          },
          {
            "name": "line_cb",
            "cType": "git_diff_data_cb",
            "cppClassName": "DiffDataCb",
            "jsClassName": "DiffDataCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "blobs",
        "cppFunctionName": "Blobs",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_blob_to_buffer",
        "args": [
          {
            "name": "old_blob",
            "cType": "const git_blob *",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob"
          },
          {
            "name": "buffer",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "buffer_len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "options",
            "cType": "const git_diff_options *",
            "cppClassName": "GitDiffOptions",
            "jsClassName": "DiffOptions"
          },
          {
            "name": "file_cb",
            "cType": "git_diff_file_cb",
            "cppClassName": "DiffFileCb",
            "jsClassName": "DiffFileCb"
          },
          {
            "name": "hunk_cb",
            "cType": "git_diff_hunk_cb",
            "cppClassName": "DiffHunkCb",
            "jsClassName": "DiffHunkCb"
          },
          {
            "name": "data_cb",
            "cType": "git_diff_data_cb",
            "cppClassName": "DiffDataCb",
            "jsClassName": "DiffDataCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "blobToBuffer",
        "cppFunctionName": "BlobToBuffer",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "error.h",
    "ignore": true,
    "jsClassName": "Error",
    "cppClassName": "GitError",
    "cType": "git_error",
    "freeFunctionName": "git_errors_free",
    "functions": [
      {
        "cFunctionName": "giterr_last",
        "args": [],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "lastError",
        "cppFunctionName": "LastError",
        "return": {
          "cType": "const git_error *",
          "cppClassName": "Error",
          "copy": "fixme"
        }
      },
      {
        "cFunctionName": "giterr_clear",
        "args": [],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "clear",
        "cppFunctionName": "Clear",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "giterr_set_str",
        "args": [
          {
            "name": "error_class",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "string",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "setString",
        "cppFunctionName": "SetString",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "giterr_set_oom",
        "args": [],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "setOOM",
        "cppFunctionName": "SetOOM",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      }
    ]
  },
  {
    "filename": "graph.h",
    "ignore": true,
    "jsClassName": "Graph",
    "cppClassName": "Graph",
    "cType": "git_graph",
    "freeFunctionName": "git_graph_free",
    "functions": [
      {
        "cFunctionName": "git_graph_ahead_behind",
        "args": [
          {
            "name": "ahead",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "behind",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "local",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "upstream",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "aheadBehind",
        "cppFunctionName": "AheadBehind",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "ignore.h",
    "ignore": true,
    "jsClassName": "Ignore",
    "cppClassName": "Ignore",
    "cType": "git_ignore",
    "freeFunctionName": "git_ignore_free",
    "functions": [
      {
        "cFunctionName": "git_ignore_add_rule",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "rules",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "addRule",
        "cppFunctionName": "AddRule",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_ignore_clear_internal_rules",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "clearInternalRules",
        "cppFunctionName": "ClearInternalRules",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_ignore_path_is_ignored",
        "args": [
          {
            "name": "ignored",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "pathIsIgnored",
        "cppFunctionName": "PathIsIgnored",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "index_time.h",
    "jsClassName": "IndexTime",
    "cppClassName": "GitIndexTime",
    "cType": "git_index_time",
    "freeFunctionName": "free",
    "fields": [
      {
        "jsFunctionName": "seconds",
        "cppFunctionName": "Seconds",
        "name": "seconds",
        "cType": "git_time_t",
        "cppClassName": "Uint32",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "nanoseconds",
        "cppFunctionName": "Nanoseconds",
        "name": "nanoseconds",
        "cType": "unsigned int",
        "cppClassName": "Uint32",
        "jsClassName": "Number"
      }
    ]
  },
  {
    "filename": "index_entry.h",
    "dependencies": [
      "../include/index_time.h"
    ],
    "jsClassName": "IndexEntry",
    "cppClassName": "GitIndexEntry",
    "cType": "git_index_entry",
    "freeFunctionName": "free",
    "fields": [
      {
        "jsFunctionName": "ctime",
        "cppFunctionName": "Ctime",
        "name": "ctime",
        "cType": "git_index_time",
        "cppClassName": "GitIndexTime",
        "jsClassName": "IndexTime",
        "copy": "git_index_time_dup"
      },
      {
        "jsFunctionName": "mtime",
        "cppFunctionName": "Mtime",
        "name": "mtime",
        "cType": "git_index_time",
        "cppClassName": "GitIndexTime",
        "jsClassName": "IndexTime",
        "copy": "git_index_time_dup"
      },
      {
        "jsFunctionName": "path",
        "cppFunctionName": "Path",
        "name": "path",
        "cType": "char *",
        "cppClassName": "String",
        "jsClassName": "String"
      }
    ]
  },
  {
    "filename": "index.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h",
      "../include/tree.h",
      "../include/diff_list.h",
      "../include/diff_options.h",
      "../include/index_entry.h"
    ],
    "jsClassName": "Index",
    "cppClassName": "GitIndex",
    "cType": "git_index",
    "freeFunctionName": "git_index_free",
    "functions": [
      {
        "cFunctionName": "git_index_open",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_index **",
            "cppClassName": "GitIndex",
            "jsClassName": "Index"
          },
          {
            "name": "index_path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "open",
        "cppFunctionName": "Open",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_index **",
            "cppClassName": "GitIndex",
            "jsClassName": "Index"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "new",
        "cppFunctionName": "New",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_free",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_index_owner",
        "args": [
          {
            "name": "index",
            "cType": "const git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          }
        ],
        "ignore": "Never make public for memory allocation reasons",
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "owner",
        "cppFunctionName": "Owner",
        "return": {
          "cType": "git_repository *",
          "cppClassName": "GitRepo"
        }
      },
      {
        "cFunctionName": "git_index_caps",
        "args": [
          {
            "name": "index",
            "cType": "const git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "caps",
        "cppFunctionName": "Caps",
        "return": {
          "cType": "unsigned int",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_index_set_caps",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "caps",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setCaps",
        "cppFunctionName": "SetCaps",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_read",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "read",
        "cppFunctionName": "Read",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_write",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "write",
        "cppFunctionName": "Write",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_read_tree",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "readTree",
        "cppFunctionName": "ReadTree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_write_tree",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "writeTree",
        "cppFunctionName": "WriteTree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_write_tree_to",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "writeTreeTo",
        "cppFunctionName": "WriteTreeTo",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_entrycount",
        "args": [
          {
            "name": "index",
            "cType": "const git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_index_clear",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "clear",
        "cppFunctionName": "Clear",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_index_get_byindex",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "n",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "entry",
        "cppFunctionName": "Entry",
        "return": {
          "cType": "const git_index_entry *",
          "cppClassName": "GitIndexEntry",
          "copy": "git_index_entry_dup"
        }
      },
      {
        "cFunctionName": "git_index_get_bypath",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "stage",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getEntry",
        "cppFunctionName": "GetEntry",
        "return": {
          "cType": "const git_index_entry *",
          "cppClassName": "GitIndexEntry",
          "copy": "git_index_entry_dup"
        }
      },
      {
        "cFunctionName": "git_index_remove",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "stage",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "remove",
        "cppFunctionName": "Remove",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_remove_directory",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "dir",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "stage",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "removeDirectory",
        "cppFunctionName": "RemoveDirectory",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_add",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "source_entry",
            "cType": "const git_index_entry *",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "add",
        "cppFunctionName": "Add",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_entry_stage",
        "args": [
          {
            "name": "entry",
            "cType": "const git_index_entry *",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "entryStage",
        "cppFunctionName": "EntryStage",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_add_bypath",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addByPath",
        "cppFunctionName": "AddBypath",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_remove_bypath",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "removeByPath",
        "cppFunctionName": "RemoveBypath",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_find",
        "args": [
          {
            "name": "at_pos",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "find",
        "cppFunctionName": "Find",
        "return": {
          "cType": "int",
          "cppClassName": "Int32"
        }
      },
      {
        "cFunctionName": "git_index_conflict_add",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "ancestor_entry",
            "cType": "const git_index_entry *",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry"
          },
          {
            "name": "our_entry",
            "cType": "const git_index_entry *",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry"
          },
          {
            "name": "their_entry",
            "cType": "const git_index_entry *",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "conflictAdd",
        "cppFunctionName": "ConflictAdd",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_conflict_get",
        "args": [
          {
            "name": "ancestor_out",
            "cType": "git_index_entry **",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry"
          },
          {
            "name": "our_out",
            "cType": "git_index_entry **",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry"
          },
          {
            "name": "their_out",
            "cType": "git_index_entry **",
            "cppClassName": "GitIndexEntry",
            "jsClassName": "IndexEntry"
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "conflictGet",
        "cppFunctionName": "ConflictGet",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_conflict_remove",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "conflictRemove",
        "cppFunctionName": "ConflictRemove",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_conflict_cleanup",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "conflictCleanup",
        "cppFunctionName": "ConflictCleanup",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_index_has_conflicts",
        "args": [
          {
            "name": "index",
            "cType": "const git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hasConflicts",
        "cppFunctionName": "HasConflicts",
        "return": {
          "cType": "int",
          "cppClassName": "Int32"
        }
      },
      {
        "cFunctionName": "git_index_reuc_entrycount",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reucEntrycount",
        "cppFunctionName": "ReucEntrycount",
        "return": {
          "cType": "unsigned int",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_index_reuc_find",
        "args": [
          {
            "name": "at_pos",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "reucFind",
        "cppFunctionName": "ReucFind",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_reuc_get_bypath",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reucGetBypath",
        "cppFunctionName": "ReucGetBypath",
        "return": {
          "cType": "const git_index_reuc_entry *",
          "cppClassName": "IndexReucEntry",
          "copy": "fixme"
        }
      },
      {
        "cFunctionName": "git_index_reuc_get_byindex",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "n",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reucGetByindex",
        "cppFunctionName": "ReucGetByindex",
        "return": {
          "cType": "const git_index_reuc_entry *",
          "cppClassName": "IndexReucEntry",
          "copy": "fixme"
        }
      },
      {
        "cFunctionName": "git_index_reuc_add",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "ancestor_mode",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "ancestor_id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "our_mode",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "our_id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "their_mode",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "their_id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reucAdd",
        "cppFunctionName": "ReucAdd",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_reuc_remove",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          },
          {
            "name": "n",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reucRemove",
        "cppFunctionName": "ReucRemove",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_index_reuc_clear",
        "args": [
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reucClear",
        "cppFunctionName": "ReucClear",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_diff_index_to_workdir",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list **",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index"
          },
          {
            "name": "opts",
            "cType": "const git_diff_options *",
            "cppClassName": "GitDiffOptions",
            "jsClassName": "DiffOptions"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "indexToWorkdir",
        "cppFunctionName": "IndexToWorkdir",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "indexer.h",
    "ignore": true,
    "jsClassName": "Indexer",
    "cppClassName": "Indexer",
    "cType": "git_indexer",
    "freeFunctionName": "git_indexer_free",
    "functions": [
      {
        "cFunctionName": "git_indexer_stream_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_indexer_stream **",
            "cppClassName": "IndexerStream",
            "jsClassName": "IndexerStream"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "progress_cb",
            "cType": "git_transfer_progress_callback",
            "cppClassName": "TransferProgressCallback",
            "jsClassName": "TransferProgressCallback"
          },
          {
            "name": "progress_cb_payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "streamNew",
        "cppFunctionName": "StreamNew",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_indexer_stream_add",
        "args": [
          {
            "name": "idx",
            "cType": "git_indexer_stream *",
            "cppClassName": "IndexerStream",
            "jsClassName": "IndexerStream"
          },
          {
            "name": "data",
            "cType": "const void *",
            "cppClassName": "void",
            "jsClassName": "void"
          },
          {
            "name": "size",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "stats",
            "cType": "git_transfer_progress *",
            "cppClassName": "TransferProgress",
            "jsClassName": "TransferProgress"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "streamAdd",
        "cppFunctionName": "StreamAdd",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_indexer_stream_finalize",
        "args": [
          {
            "name": "idx",
            "cType": "git_indexer_stream *",
            "cppClassName": "IndexerStream",
            "jsClassName": "IndexerStream"
          },
          {
            "name": "stats",
            "cType": "git_transfer_progress *",
            "cppClassName": "TransferProgress",
            "jsClassName": "TransferProgress"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "streamFinalize",
        "cppFunctionName": "StreamFinalize",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_indexer_stream_hash",
        "args": [
          {
            "name": "idx",
            "cType": "const git_indexer_stream *",
            "cppClassName": "IndexerStream",
            "jsClassName": "IndexerStream"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "streamHash",
        "cppFunctionName": "StreamHash",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_indexer_stream_free",
        "args": [
          {
            "name": "idx",
            "cType": "git_indexer_stream *",
            "cppClassName": "IndexerStream",
            "jsClassName": "IndexerStream"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "streamFree",
        "cppFunctionName": "StreamFree",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      }
    ]
  },
  {
    "filename": "inttypes.h",
    "ignore": true,
    "jsClassName": "Inttypes",
    "cppClassName": "Inttypes",
    "cType": "git_inttypes",
    "freeFunctionName": "git_inttypes_free",
    "functions": []
  },
  {
    "filename": "merge.h",
    "ignore": true,
    "jsClassName": "Merge",
    "cppClassName": "Merge",
    "cType": "git_merge",
    "freeFunctionName": "git_merge_free",
    "functions": [
      {
        "cFunctionName": "git_merge_base",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "one",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "two",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "base",
        "cppFunctionName": "Base",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_merge_base_many",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "length",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "baseMany",
        "cppFunctionName": "BaseMany",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "message.h",
    "ignore": true,
    "jsClassName": "Message",
    "cppClassName": "Message",
    "cType": "git_message",
    "freeFunctionName": "git_message_free",
    "functions": [
      {
        "cFunctionName": "git_message_prettify",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "out_size",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "message",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "strip_comments",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "prettify",
        "cppFunctionName": "Prettify",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "net.h",
    "ignore": true,
    "jsClassName": "Net",
    "cppClassName": "Net",
    "cType": "git_net",
    "freeFunctionName": "git_net_free",
    "functions": []
  },
  {
    "filename": "notes.h",
    "ignore": true,
    "jsClassName": "Notes",
    "cppClassName": "Notes",
    "cType": "git_notes",
    "freeFunctionName": "git_notes_free",
    "functions": [
      {
        "cFunctionName": "git_note_iterator_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_note_iterator **",
            "cppClassName": "NoteIterator",
            "jsClassName": "NoteIterator"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "notes_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteIteratorNew",
        "cppFunctionName": "GitNoteIteratorNew",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_note_iterator_free",
        "args": [
          {
            "name": "it",
            "cType": "git_note_iterator *",
            "cppClassName": "NoteIterator",
            "jsClassName": "NoteIterator"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "gitNoteIteratorFree",
        "cppFunctionName": "GitNoteIteratorFree",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_note_next",
        "args": [
          {
            "name": "note_id",
            "cType": "git_oid*",
            "cppClassName": "Oid*",
            "jsClassName": "Oid*"
          },
          {
            "name": "annotated_id",
            "cType": "git_oid*",
            "cppClassName": "Oid*",
            "jsClassName": "Oid*"
          },
          {
            "name": "it",
            "cType": "git_note_iterator *",
            "cppClassName": "NoteIterator",
            "jsClassName": "NoteIterator"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteNext",
        "cppFunctionName": "GitNoteNext",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_note_read",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_note **",
            "cppClassName": "Note",
            "jsClassName": "Note"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "notes_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "oid",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteRead",
        "cppFunctionName": "GitNoteRead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_note_message",
        "args": [
          {
            "name": "note",
            "cType": "const git_note *",
            "cppClassName": "Note",
            "jsClassName": "Note"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteMessage",
        "cppFunctionName": "GitNoteMessage",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_note_oid",
        "args": [
          {
            "name": "note",
            "cType": "const git_note *",
            "cppClassName": "Note",
            "jsClassName": "Note"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteOid",
        "cppFunctionName": "GitNoteOid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_note_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "author",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "committer",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "notes_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "oid",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "note",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteCreate",
        "cppFunctionName": "GitNoteCreate",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_note_remove",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "notes_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "author",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "committer",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "oid",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteRemove",
        "cppFunctionName": "GitNoteRemove",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_note_free",
        "args": [
          {
            "name": "note",
            "cType": "git_note *",
            "cppClassName": "Note",
            "jsClassName": "Note"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "gitNoteFree",
        "cppFunctionName": "GitNoteFree",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_note_default_ref",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "const char **",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteDefaultRef",
        "cppFunctionName": "GitNoteDefaultRef",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_note_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "notes_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "note_cb",
            "cType": "git_note_foreach_cb",
            "cppClassName": "NoteForeachCb",
            "jsClassName": "NoteForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitNoteForeach",
        "cppFunctionName": "GitNoteForeach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "object.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h"
    ],
    "jsClassName": "Object",
    "cppClassName": "GitObject",
    "cType": "git_object",
    "freeFunctionName": "git_object_free",
    "functions": [
      {
        "cFunctionName": "git_object_id",
        "args": [
          {
            "name": "obj",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_object_type",
        "args": [
          {
            "name": "obj",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "type",
        "cppFunctionName": "Type",
        "return": {
          "cType": "git_otype",
          "cppClassName": "Number"
        }
      },
      {
        "cFunctionName": "git_object_owner",
        "args": [
          {
            "name": "obj",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isSelf": true
          }
        ],
        "ignore": "Never make public for memory allocation reasons",
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "owner",
        "cppFunctionName": "Owner",
        "return": {
          "cType": "git_repository *",
          "cppClassName": "GitRepo"
        }
      },
      {
        "cFunctionName": "git_object_free",
        "args": [
          {
            "name": "object",
            "cType": "git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_object_type2string",
        "args": [
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Number",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "type2string",
        "cppFunctionName": "Type2string",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_object_string2type",
        "args": [
          {
            "name": "str",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "string2type",
        "cppFunctionName": "String2type",
        "return": {
          "cType": "git_otype",
          "cppClassName": "Number"
        }
      },
      {
        "cFunctionName": "git_object_typeisloose",
        "args": [
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Number",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "typeisloose",
        "cppFunctionName": "Typeisloose",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_object__size",
        "args": [
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "Size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_object_peel",
        "args": [
          {
            "name": "peeled",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true
          },
          {
            "name": "object",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isSelf": true
          },
          {
            "name": "target_type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "peel",
        "cppFunctionName": "Peel",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_object_dup",
        "args": [
          {
            "name": "dest",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true
          },
          {
            "name": "source",
            "cType": "git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "ignore": true,
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "dup",
        "cppFunctionName": "Dup",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "odb.h",
    "dependencies": [
      "../include/oid.h",
      "../include/odb_object.h",
      "node_buffer.h"
    ],
    "jsClassName": "Odb",
    "cppClassName": "GitOdb",
    "cType": "git_odb",
    "freeFunctionName": "git_odb_free",
    "functions": [
      {
        "cFunctionName": "git_odb_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb **",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "create()",
        "cppFunctionName": "Create",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_open",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb **",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb"
          },
          {
            "name": "objects_dir",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "open",
        "cppFunctionName": "Open",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_add_backend",
        "args": [
          {
            "name": "odb",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true
          },
          {
            "name": "backend",
            "cType": "git_odb_backend *",
            "cppClassName": "OdbBackend",
            "jsClassName": "OdbBackend"
          },
          {
            "name": "priority",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addBackend",
        "cppFunctionName": "AddBackend",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_add_alternate",
        "args": [
          {
            "name": "odb",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true
          },
          {
            "name": "backend",
            "cType": "git_odb_backend *",
            "cppClassName": "OdbBackend",
            "jsClassName": "OdbBackend"
          },
          {
            "name": "priority",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addAlternate",
        "cppFunctionName": "AddAlternate",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_add_disk_alternate",
        "args": [
          {
            "name": "odb",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addDiskAlternate",
        "cppFunctionName": "AddDiskAlternate",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_free",
        "args": [
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_odb_read",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb_object **",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject"
          },
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "read",
        "cppFunctionName": "Read",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_read_prefix",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb_object **",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject"
          },
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb"
          },
          {
            "name": "short_id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "readPrefix",
        "cppFunctionName": "ReadPrefix",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_read_header",
        "args": [
          {
            "name": "len_out",
            "cType": "size_t *",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "type_out",
            "cType": "git_otype *",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "readHeader",
        "cppFunctionName": "ReadHeader",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_exists",
        "args": [
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "exists",
        "cppFunctionName": "Exists",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_refresh",
        "args": [
          {
            "name": "db",
            "cType": "struct git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "refresh",
        "cppFunctionName": "Refresh",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_foreach",
        "args": [
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true
          },
          {
            "name": "cb",
            "cType": "git_odb_foreach_cb",
            "cppClassName": "OdbForeachCb",
            "jsClassName": "OdbForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_write",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "shouldAlloc": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "odb",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb",
            "isSelf": true
          },
          {
            "name": "data",
            "cType": "const void *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "write",
        "cppFunctionName": "Write",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_open_wstream",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb_stream **",
            "cppClassName": "GitOdbStream",
            "jsClassName": "OdbStream"
          },
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb"
          },
          {
            "name": "size",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "openWstream",
        "cppFunctionName": "OpenWstream",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_open_rstream",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb_stream **",
            "cppClassName": "GitOdbStream",
            "jsClassName": "OdbStream"
          },
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb"
          },
          {
            "name": "oid",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "openRstream",
        "cppFunctionName": "OpenRstream",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_write_pack",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb_writepack **",
            "cppClassName": "OdbWritepack",
            "jsClassName": "OdbWritepack"
          },
          {
            "name": "db",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb"
          },
          {
            "name": "progress_cb",
            "cType": "git_transfer_progress_callback",
            "cppClassName": "TransferProgressCallback",
            "jsClassName": "TransferProgressCallback"
          },
          {
            "name": "progress_payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "writePack",
        "cppFunctionName": "WritePack",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_hash",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "shouldAlloc": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "data",
            "cType": "const void *",
            "cppClassName": "Buffer",
            "jsClassName": "Buffer"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "hash",
        "cppFunctionName": "Hash",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_odb_hashfile",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "shouldAlloc": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "hashfile",
        "cppFunctionName": "Hashfile",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "odb_object.h",
    "dependencies": [
      "../include/wrapper.h",
      "../include/oid.h"
    ],
    "jsClassName": "OdbObject",
    "cppClassName": "GitOdbObject",
    "cType": "git_odb_object",
    "freeFunctionName": "git_odb_object_free",
    "functions": [
      {
        "cFunctionName": "git_odb_object_data",
        "args": [
          {
            "name": "object",
            "cType": "git_odb_object *",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "data",
        "cppFunctionName": "Data",
        "return": {
          "cType": "const void *",
          "cppClassName": "Wrapper"
        }
      },
      {
        "cFunctionName": "git_odb_object_size",
        "args": [
          {
            "name": "object",
            "cType": "git_odb_object *",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_odb_object_type",
        "args": [
          {
            "name": "object",
            "cType": "git_odb_object *",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "type",
        "cppFunctionName": "Type",
        "return": {
          "cType": "git_otype",
          "cppClassName": "Int32"
        }
      },
      {
        "cFunctionName": "git_odb_object_free",
        "args": [
          {
            "name": "object",
            "cType": "git_odb_object *",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_odb_object_id",
        "args": [
          {
            "name": "object",
            "cType": "git_odb_object *",
            "cppClassName": "GitOdbObject",
            "jsClassName": "OdbObject",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      }
    ]
  },
  {
    "filename": "odb_backend.h",
    "ignore": true,
    "jsClassName": "OdbBackend",
    "cppClassName": "OdbBackend",
    "cType": "git_odb_backend",
    "freeFunctionName": "git_odb_backend_free",
    "functions": [
      {
        "cFunctionName": "git_odb_backend_pack",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb_backend **",
            "cppClassName": "OdbBackend",
            "jsClassName": "OdbBackend"
          },
          {
            "name": "objects_dir",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "pack",
        "cppFunctionName": "Pack",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "oid.h",
    "dependencies": [],
    "jsClassName": "Oid",
    "cppClassName": "GitOid",
    "cType": "git_oid",
    "freeFunctionName": "free",
    "functions": [
      {
        "cFunctionName": "git_oid_fromstr",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "shouldAlloc": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "str",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "fromString",
        "cppFunctionName": "FromString",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_oid_fromstrp",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true
          },
          {
            "name": "str",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "fromstrp",
        "cppFunctionName": "Fromstrp",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_oid_fromstrn",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true
          },
          {
            "name": "str",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "length",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "fromstrn",
        "cppFunctionName": "Fromstrn",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_oid_fromraw",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true
          },
          {
            "name": "raw",
            "cType": "const unsigned char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "fromraw",
        "cppFunctionName": "Fromraw",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_oid_fmt",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "fmt",
        "cppFunctionName": "Fmt",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_oid_pathfmt",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "pathfmt",
        "cppFunctionName": "Pathfmt",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_oid_allocfmt",
        "args": [
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "sha",
        "cppFunctionName": "Sha",
        "return": {
          "cType": "char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_oid_tostr",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "n",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "sha",
        "cppFunctionName": "Sha",
        "return": {
          "cType": "char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_oid_cpy",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true
          },
          {
            "name": "src",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "cpy",
        "cppFunctionName": "Cpy",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_oid_cmp",
        "args": [
          {
            "name": "a",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true
          },
          {
            "name": "b",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "cmp",
        "cppFunctionName": "Cmp",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_oid_equal",
        "args": [
          {
            "name": "a",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true
          },
          {
            "name": "b",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "equal",
        "cppFunctionName": "Equal",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_oid_ncmp",
        "args": [
          {
            "name": "a",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true
          },
          {
            "name": "b",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "ncmp",
        "cppFunctionName": "Ncmp",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_oid_streq",
        "args": [
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true
          },
          {
            "name": "str",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "streq",
        "cppFunctionName": "Streq",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_oid_iszero",
        "args": [
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "iszero",
        "cppFunctionName": "Iszero",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_oid_shorten_new",
        "args": [
          {
            "name": "min_length",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "shortenNew",
        "cppFunctionName": "ShortenNew",
        "return": {
          "cType": "git_oid_shorten *",
          "cppClassName": "OidShorten",
          "copy": "fixme"
        }
      },
      {
        "cFunctionName": "git_oid_shorten_add",
        "args": [
          {
            "name": "os",
            "cType": "git_oid_shorten *",
            "cppClassName": "OidShorten",
            "jsClassName": "OidShorten"
          },
          {
            "name": "text_id",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "shortenAdd",
        "cppFunctionName": "ShortenAdd",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_oid_shorten_free",
        "args": [
          {
            "name": "os",
            "cType": "git_oid_shorten *",
            "cppClassName": "OidShorten",
            "jsClassName": "OidShorten"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "shortenFree",
        "cppFunctionName": "ShortenFree",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      }
    ]
  },
  {
    "filename": "pack.h",
    "ignore": true,
    "jsClassName": "Pack",
    "cppClassName": "Pack",
    "cType": "git_pack",
    "freeFunctionName": "git_pack_free",
    "functions": [
      {
        "cFunctionName": "git_packbuilder_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_packbuilder **",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderNew",
        "cppFunctionName": "GitPackbuilderNew",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_packbuilder_set_threads",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder"
          },
          {
            "name": "n",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderSetThreads",
        "cppFunctionName": "GitPackbuilderSetThreads",
        "return": {
          "cType": "unsigned int",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_packbuilder_insert",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderInsert",
        "cppFunctionName": "GitPackbuilderInsert",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_packbuilder_insert_tree",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderInsertTree",
        "cppFunctionName": "GitPackbuilderInsertTree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_packbuilder_write",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder"
          },
          {
            "name": "file",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderWrite",
        "cppFunctionName": "GitPackbuilderWrite",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_packbuilder_foreach",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder"
          },
          {
            "name": "cb",
            "cType": "git_packbuilder_foreach_cb",
            "cppClassName": "PackbuilderForeachCb",
            "jsClassName": "PackbuilderForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderForeach",
        "cppFunctionName": "GitPackbuilderForeach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_packbuilder_object_count",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderObjectCount",
        "cppFunctionName": "GitPackbuilderObjectCount",
        "return": {
          "cType": "uint32_t",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_packbuilder_written",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitPackbuilderWritten",
        "cppFunctionName": "GitPackbuilderWritten",
        "return": {
          "cType": "uint32_t",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_packbuilder_free",
        "args": [
          {
            "name": "pb",
            "cType": "git_packbuilder *",
            "cppClassName": "Packbuilder",
            "jsClassName": "Packbuilder"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "gitPackbuilderFree",
        "cppFunctionName": "GitPackbuilderFree",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      }
    ]
  },
  {
    "filename": "push.h",
    "ignore": true,
    "jsClassName": "Push",
    "cppClassName": "Push",
    "cType": "git_push",
    "freeFunctionName": "git_push_free",
    "functions": [
      {
        "cFunctionName": "git_push_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_push **",
            "cppClassName": "Push",
            "jsClassName": "Push"
          },
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "new",
        "cppFunctionName": "New",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_push_set_options",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "isSelf": true
          },
          {
            "name": "opts",
            "cType": "const git_push_options *",
            "cppClassName": "PushOptions",
            "jsClassName": "PushOptions"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setOptions",
        "cppFunctionName": "SetOptions",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_push_add_refspec",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "isSelf": true
          },
          {
            "name": "refspec",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addRefspec",
        "cppFunctionName": "AddRefspec",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_push_update_tips",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "updateTips",
        "cppFunctionName": "UpdateTips",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_push_finish",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "finish",
        "cppFunctionName": "Finish",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_push_unpack_ok",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "unpackOk",
        "cppFunctionName": "UnpackOk",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_push_status_foreach",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push",
            "isSelf": true
          },
          {
            "name": "cb",
            "cType": "int (*)(const char *ref, const char *msg, void *data)",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "data",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "statusForeach",
        "cppFunctionName": "StatusForeach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_push_free",
        "args": [
          {
            "name": "push",
            "cType": "git_push *",
            "cppClassName": "Push",
            "jsClassName": "Push"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      }
    ]
  },
  {
    "filename": "refdb.h",
    "jsClassName": "RefDb",
    "cppClassName": "GitRefDb",
    "cType": "git_refdb",
    "note": "this should be git_refdb_free, but it's not available",
    "freeFunctionName": "free",
    "functions": [
      {
        "cFunctionName": "git_reference__alloc",
        "args": [
          {
            "name": "refdb",
            "cType": "git_refdb *",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "oid",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "symbolic",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "gitReference_Alloc",
        "cppFunctionName": "GitReference_Alloc",
        "return": {
          "cType": "git_reference *",
          "cppClassName": "GitReference",
          "copy": "fixme"
        }
      },
      {
        "cFunctionName": "git_refdb_compress",
        "args": [
          {
            "name": "refdb",
            "cType": "git_refdb *",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "compress",
        "cppFunctionName": "Compress",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_refdb_free",
        "args": [
          {
            "name": "refdb",
            "cType": "git_refdb *",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_refdb_set_backend",
        "args": [
          {
            "name": "refdb",
            "cType": "git_refdb *",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb",
            "isSelf": true
          },
          {
            "name": "backend",
            "cType": "git_refdb_backend *",
            "cppClassName": "RefdbBackend",
            "jsClassName": "RefdbBackend"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setBackend",
        "cppFunctionName": "SetBackend",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "refdb_backend.h",
    "ignore": true,
    "jsClassName": "RefdbBackend",
    "cppClassName": "RefdbBackend",
    "cType": "git_refdb_backend",
    "freeFunctionName": "git_refdb_backend_free",
    "functions": []
  },
  {
    "filename": "reflog.h",
    "ignore": true,
    "jsClassName": "Reflog",
    "cppClassName": "Reflog",
    "cType": "git_reflog",
    "freeFunctionName": "git_reflog_free",
    "functions": [
      {
        "cFunctionName": "git_reflog_read",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reflog **",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog"
          },
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "read",
        "cppFunctionName": "Read",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reflog_write",
        "args": [
          {
            "name": "reflog",
            "cType": "git_reflog *",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "write",
        "cppFunctionName": "Write",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reflog_append",
        "args": [
          {
            "name": "reflog",
            "cType": "git_reflog *",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "committer",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "msg",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "append",
        "cppFunctionName": "Append",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reflog_rename",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "rename",
        "cppFunctionName": "Rename",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reflog_delete",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "delete",
        "cppFunctionName": "Delete",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reflog_entrycount",
        "args": [
          {
            "name": "reflog",
            "cType": "git_reflog *",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "entrycount",
        "cppFunctionName": "Entrycount",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_reflog_entry_byindex",
        "args": [
          {
            "name": "reflog",
            "cType": "git_reflog *",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog",
            "isSelf": true
          },
          {
            "name": "idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "entryByindex",
        "cppFunctionName": "EntryByindex",
        "return": {
          "cType": "const git_reflog_entry *",
          "cppClassName": "ReflogEntry",
          "copy": "fixme"
        }
      },
      {
        "cFunctionName": "git_reflog_drop",
        "args": [
          {
            "name": "reflog",
            "cType": "git_reflog *",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog",
            "isSelf": true
          },
          {
            "name": "idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "rewrite_previous_entry",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "drop",
        "cppFunctionName": "Drop",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reflog_entry_id_old",
        "args": [
          {
            "name": "entry",
            "cType": "const git_reflog_entry *",
            "cppClassName": "ReflogEntry",
            "jsClassName": "ReflogEntry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "entryIdOld",
        "cppFunctionName": "EntryIdOld",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_reflog_entry_id_new",
        "args": [
          {
            "name": "entry",
            "cType": "const git_reflog_entry *",
            "cppClassName": "ReflogEntry",
            "jsClassName": "ReflogEntry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "entryIdNew",
        "cppFunctionName": "EntryIdNew",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_reflog_entry_committer",
        "args": [
          {
            "name": "entry",
            "cType": "const git_reflog_entry *",
            "cppClassName": "ReflogEntry",
            "jsClassName": "ReflogEntry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "entryCommitter",
        "cppFunctionName": "EntryCommitter",
        "return": {
          "cType": "const git_signature *",
          "cppClassName": "GitSignature",
          "copy": "git_signature_dup"
        }
      },
      {
        "cFunctionName": "git_reflog_entry_message",
        "args": [
          {
            "name": "entry",
            "cType": "const git_reflog_entry *",
            "cppClassName": "ReflogEntry",
            "jsClassName": "ReflogEntry"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "entryMessage",
        "cppFunctionName": "EntryMessage",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_reflog_free",
        "args": [
          {
            "name": "reflog",
            "cType": "git_reflog *",
            "cppClassName": "Reflog",
            "jsClassName": "Reflog"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      }
    ]
  },
  {
    "filename": "reference.h",
    "dependencies": [
      "../include/repo.h",
      "../include/oid.h",
      "../include/object.h"
    ],
    "jsClassName": "Reference",
    "cppClassName": "GitReference",
    "cType": "git_reference",
    "freeFunctionName": "git_reference_free",
    "functions": [
      {
        "cFunctionName": "git_reference_name_to_id",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "oidForName",
        "cppFunctionName": "OidForName",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_target",
        "args": [
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "target",
        "cppFunctionName": "Target",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_reference_symbolic_target",
        "args": [
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "symbolicTarget",
        "cppFunctionName": "SymbolicTarget",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_reference_type",
        "args": [
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "type",
        "cppFunctionName": "Type",
        "return": {
          "cType": "git_ref_t",
          "cppClassName": "Number"
        }
      },
      {
        "cFunctionName": "git_reference_name",
        "args": [
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_reference_resolve",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "resolve",
        "cppFunctionName": "Resolve",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_owner",
        "args": [
          {
            "name": "ref",
            "cType": "const git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          }
        ],
        "ignore": "Never make public for memory allocation reasons",
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "owner",
        "cppFunctionName": "owner",
        "return": {
          "cType": "git_repository *",
          "cppClassName": "GitRepo"
        }
      },
      {
        "cFunctionName": "git_reference_symbolic_set_target",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          },
          {
            "name": "target",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setSymbolicTarget",
        "cppFunctionName": "SetSymbolicTarget",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_set_target",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setTarget",
        "cppFunctionName": "setTarget",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_rename",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          },
          {
            "name": "new_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "rename",
        "cppFunctionName": "Rename",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_delete",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "delete",
        "cppFunctionName": "Delete",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "list_flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "callback",
            "cType": "git_reference_foreach_cb",
            "cppClassName": "ReferenceForeachCb",
            "jsClassName": "ReferenceForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_free",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "gitReferenceFree",
        "cppFunctionName": "GitReferenceFree",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_reference_cmp",
        "args": [
          {
            "name": "ref1",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          },
          {
            "name": "ref2",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "compare",
        "cppFunctionName": "Compare",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_foreach_glob",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "glob",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "list_flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "callback",
            "cType": "git_reference_foreach_cb",
            "cppClassName": "ReferenceForeachCb",
            "jsClassName": "ReferenceForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreachGlob",
        "cppFunctionName": "ForeachGlob",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_has_log",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hasLog",
        "cppFunctionName": "HasLog",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_is_branch",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "isBranch",
        "cppFunctionName": "IsBranch",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_is_remote",
        "args": [
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "isRemote",
        "cppFunctionName": "IsRemote",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_normalize_name",
        "args": [
          {
            "name": "buffer_out",
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "isSelf": true
          },
          {
            "name": "buffer_size",
            "cType": "size_t",
            "cppClassName": "Integer",
            "jsClassName": "Number"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "normalizeName",
        "cppFunctionName": "NormalizeName",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_peel",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object"
          },
          {
            "name": "ref",
            "cType": "git_reference *",
            "cppClassName": "GitReference",
            "jsClassName": "Reference",
            "isSelf": true
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "peel",
        "cppFunctionName": "Peel",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_is_valid_name",
        "args": [
          {
            "name": "refname",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "isValidName",
        "cppFunctionName": "IsValidName",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "refspec.h",
    "ignore": true,
    "jsClassName": "Refspec",
    "cppClassName": "Refspec",
    "cType": "git_refspec",
    "freeFunctionName": "git_refspec_free",
    "functions": [
      {
        "cFunctionName": "git_refspec_src",
        "args": [
          {
            "name": "refspec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "src",
        "cppFunctionName": "Src",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_refspec_dst",
        "args": [
          {
            "name": "refspec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "dst",
        "cppFunctionName": "Dst",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_refspec_force",
        "args": [
          {
            "name": "refspec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "force",
        "cppFunctionName": "Force",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_refspec_src_matches",
        "args": [
          {
            "name": "refspec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec",
            "isSelf": true
          },
          {
            "name": "refname",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "srcMatches",
        "cppFunctionName": "SrcMatches",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_refspec_dst_matches",
        "args": [
          {
            "name": "refspec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec",
            "isSelf": true
          },
          {
            "name": "refname",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "dstMatches",
        "cppFunctionName": "DstMatches",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_refspec_transform",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "outlen",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "spec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "transform",
        "cppFunctionName": "Transform",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_refspec_rtransform",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "outlen",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "spec",
            "cType": "const git_refspec *",
            "cppClassName": "Refspec",
            "jsClassName": "Refspec"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "rtransform",
        "cppFunctionName": "Rtransform",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "remote.h",
    "ignore": true,
    "jsClassName": "Remote",
    "cppClassName": "GitRemote",
    "cType": "git_remote",
    "freeFunctionName": "git_remote_free",
    "functions": [
      {
        "cFunctionName": "git_remote_save",
        "args": [
          {
            "name": "remote",
            "cType": "const git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "save",
        "cppFunctionName": "Save",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_name",
        "args": [
          {
            "name": "remote",
            "cType": "const git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_remote_url",
        "args": [
          {
            "name": "remote",
            "cType": "const git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "url",
        "cppFunctionName": "Url",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_remote_pushurl",
        "args": [
          {
            "name": "remote",
            "cType": "const git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "pushurl",
        "cppFunctionName": "Pushurl",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_remote_set_url",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "url",
            "cType": "const char*",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setUrl",
        "cppFunctionName": "SetUrl",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_set_pushurl",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "url",
            "cType": "const char*",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setPushurl",
        "cppFunctionName": "SetPushurl",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_set_fetchspec",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "spec",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setFetchspec",
        "cppFunctionName": "SetFetchspec",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_fetchspec",
        "args": [
          {
            "name": "remote",
            "cType": "const git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "fetchspec",
        "cppFunctionName": "Fetchspec",
        "return": {
          "cType": "const git_refspec *",
          "cppClassName": "Refspec",
          "copy": "fixme"
        }
      },
      {
        "cFunctionName": "git_remote_set_pushspec",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "spec",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setPushspec",
        "cppFunctionName": "SetPushspec",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_pushspec",
        "args": [
          {
            "name": "remote",
            "cType": "const git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "pushspec",
        "cppFunctionName": "Pushspec",
        "return": {
          "cType": "const git_refspec *",
          "cppClassName": "Refspec",
          "copy": "fixme"
        }
      },
      {
        "cFunctionName": "git_remote_connect",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "direction",
            "cType": "git_direction",
            "cppClassName": "Direction",
            "jsClassName": "Direction"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "connect",
        "cppFunctionName": "Connect",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_ls",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "list_cb",
            "cType": "git_headlist_cb",
            "cppClassName": "HeadlistCb",
            "jsClassName": "HeadlistCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "ls",
        "cppFunctionName": "Ls",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_download",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "progress_cb",
            "cType": "git_transfer_progress_callback",
            "cppClassName": "TransferProgressCallback",
            "jsClassName": "TransferProgressCallback"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "download",
        "cppFunctionName": "Download",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_connected",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "connected",
        "cppFunctionName": "Connected",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_stop",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "stop",
        "cppFunctionName": "Stop",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_remote_disconnect",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "disconnect",
        "cppFunctionName": "Disconnect",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_remote_free",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_remote_update_tips",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "updateTips",
        "cppFunctionName": "UpdateTips",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_valid_url",
        "args": [
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "validUrl",
        "cppFunctionName": "ValidUrl",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_supported_url",
        "args": [
          {
            "name": "url",
            "cType": "const char*",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "supportedUrl",
        "cppFunctionName": "SupportedUrl",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_list",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_strarray *",
            "cppClassName": "Strarray",
            "jsClassName": "Strarray"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "list",
        "cppFunctionName": "List",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_check_cert",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "check",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "checkCert",
        "cppFunctionName": "CheckCert",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_remote_set_cred_acquire_cb",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "cred_acquire_cb",
            "cType": "git_cred_acquire_cb",
            "cppClassName": "CredAcquireCb",
            "jsClassName": "CredAcquireCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setCredAcquireCb",
        "cppFunctionName": "SetCredAcquireCb",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_remote_set_transport",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "transport",
            "cType": "git_transport *",
            "cppClassName": "Transport",
            "jsClassName": "Transport"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setTransport",
        "cppFunctionName": "SetTransport",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_set_callbacks",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "callbacks",
            "cType": "git_remote_callbacks *",
            "cppClassName": "RemoteCallbacks",
            "jsClassName": "RemoteCallbacks"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setCallbacks",
        "cppFunctionName": "SetCallbacks",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_stats",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "stats",
        "cppFunctionName": "Stats",
        "return": {
          "cType": "const git_transfer_progress *",
          "cppClassName": "TransferProgress"
        }
      },
      {
        "cFunctionName": "git_remote_autotag",
        "args": [],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "autotag",
        "cppFunctionName": "Autotag",
        "return": {
          "cType": "GIT_EXTERN(",
          "cppClassName": "GIT_EXTERN("
        }
      },
      {
        "cFunctionName": "git_remote_set_autotag",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "value",
            "cType": "git_remote_autotag_option_t",
            "cppClassName": "RemoteAutotagOptionT",
            "jsClassName": "RemoteAutotagOptionT"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setAutotag",
        "cppFunctionName": "SetAutotag",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_remote_rename",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "new_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "callback",
            "cType": "git_remote_rename_problem_cb",
            "cppClassName": "RemoteRenameProblemCb",
            "jsClassName": "RemoteRenameProblemCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "rename",
        "cppFunctionName": "Rename",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_update_fetchhead",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "updateFetchhead",
        "cppFunctionName": "UpdateFetchhead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_set_update_fetchhead",
        "args": [
          {
            "name": "remote",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote",
            "isSelf": true
          },
          {
            "name": "value",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setUpdateFetchhead",
        "cppFunctionName": "SetUpdateFetchhead",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_remote_is_valid_name",
        "args": [
          {
            "name": "remote_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "isValidName",
        "cppFunctionName": "IsValidName",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "repo.h",
    "dependencies": [
      "../include/oid.h",
      "../include/commit.h",
      "../include/blob.h",
      "../include/object.h",
      "../include/reference.h",
      "../include/submodule.h",
      "../include/refdb.h",
      "../include/revwalk.h",
      "../include/tag.h",
      "../include/signature.h",
      "../include/tree.h",
      "../include/odb.h",
      "../include/index.h",
      "node_buffer.h"
    ],
    "jsClassName": "Repo",
    "cppClassName": "GitRepo",
    "cType": "git_repository",
    "freeFunctionName": "git_repository_free",
    "functions": [
      {
        "cFunctionName": "git_repository_open",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "open",
        "cppFunctionName": "Open",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_wrap_odb",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "odb",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "wrapOdb",
        "cppFunctionName": "WrapOdb",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_discover",
        "args": [
          {
            "name": "path_out",
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "path_size",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "start_path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "across_fs",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "ceiling_dirs",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "discover",
        "cppFunctionName": "Discover",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_open_ext",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "ceiling_dirs",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "openExt",
        "cppFunctionName": "OpenExt",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_free",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_repository_init",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "is_bare",
            "cType": "unsigned",
            "cppClassName": "Boolean",
            "jsClassName": "Boolean"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "init",
        "cppFunctionName": "Init",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_init_ext",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "repo_path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "opts",
            "cType": "git_repository_init_options *",
            "cppClassName": "RepositoryInitOptions",
            "jsClassName": "RepositoryInitOptions"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "initExt",
        "cppFunctionName": "InitExt",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_head",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "head",
        "cppFunctionName": "Head",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_head_detached",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "headDetached",
        "cppFunctionName": "HeadDetached",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_head_orphan",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "headOrphan",
        "cppFunctionName": "HeadOrphan",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_is_empty",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "isEmpty",
        "cppFunctionName": "IsEmpty",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_path",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "path",
        "cppFunctionName": "Path",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_repository_workdir",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "workdir",
        "cppFunctionName": "Workdir",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_repository_set_workdir",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "workdir",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "update_gitlink",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setWorkdir",
        "cppFunctionName": "SetWorkdir",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_is_bare",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "isBare",
        "cppFunctionName": "IsBare",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_config",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_config **",
            "cppClassName": "Config",
            "jsClassName": "Config"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "config",
        "cppFunctionName": "Config",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_set_config",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "config",
            "cType": "git_config *",
            "cppClassName": "Config",
            "jsClassName": "Config"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setConfig",
        "cppFunctionName": "SetConfig",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_repository_odb",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_odb **",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "odb",
        "cppFunctionName": "Odb",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_set_odb",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "odb",
            "cType": "git_odb *",
            "cppClassName": "GitOdb",
            "jsClassName": "Odb"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setOdb",
        "cppFunctionName": "SetOdb",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_repository_refdb",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_refdb **",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "refdb",
        "cppFunctionName": "Refdb",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_set_refdb",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "refdb",
            "cType": "git_refdb *",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setRefdb",
        "cppFunctionName": "SetRefdb",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_repository_index",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_index **",
            "cppClassName": "GitIndex",
            "jsClassName": "Index"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "openIndex",
        "cppFunctionName": "openIndex",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_set_index",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setIndex",
        "cppFunctionName": "SetIndex",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_repository_message",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "message",
        "cppFunctionName": "Message",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_message_remove",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "messageRemove",
        "cppFunctionName": "MessageRemove",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_merge_cleanup",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "mergeCleanup",
        "cppFunctionName": "MergeCleanup",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_fetchhead_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "callback",
            "cType": "git_repository_fetchhead_foreach_cb",
            "cppClassName": "RepositoryFetchheadForeachCb",
            "jsClassName": "RepositoryFetchheadForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "fetchheadForeach",
        "cppFunctionName": "FetchheadForeach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_mergehead_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "callback",
            "cType": "git_repository_mergehead_foreach_cb",
            "cppClassName": "RepositoryMergeheadForeachCb",
            "jsClassName": "RepositoryMergeheadForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "mergeheadForeach",
        "cppFunctionName": "MergeheadForeach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_hashfile",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Otype"
          },
          {
            "name": "as_path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "hashfile",
        "cppFunctionName": "Hashfile",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_set_head",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository*",
            "cppClassName": "Repository*",
            "jsClassName": "Repository*"
          },
          {
            "name": "refname",
            "cType": "const char*",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "setHead",
        "cppFunctionName": "SetHead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_set_head_detached",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository*",
            "cppClassName": "Repository*",
            "jsClassName": "Repository*"
          },
          {
            "name": "commitish",
            "cType": "const git_oid*",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "setHeadDetached",
        "cppFunctionName": "SetHeadDetached",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_detach_head",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository*",
            "cppClassName": "Repository*",
            "jsClassName": "Repository*"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "detachHead",
        "cppFunctionName": "DetachHead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_repository_state",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "state",
        "cppFunctionName": "State",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_blob_lookup",
        "args": [
          {
            "name": "blob",
            "cType": "git_blob **",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getBlob",
        "cppFunctionName": "GetBlob",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_blob_lookup_prefix",
        "args": [
          {
            "name": "blob",
            "cType": "git_blob **",
            "cppClassName": "GitBlob",
            "jsClassName": "Blob",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getBlobByPrefix",
        "cppFunctionName": "GetBlobByPrefix",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_commit_lookup",
        "args": [
          {
            "name": "commit",
            "cType": "git_commit **",
            "cppClassName": "GitCommit",
            "jsClassName": "Commit",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getCommit",
        "cppFunctionName": "GetCommit",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_commit_create",
        "args": [
          {
            "name": "id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isReturn": true,
            "shouldAlloc": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "update_ref",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "isOptional": true
          },
          {
            "name": "author",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "committer",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "message_encoding",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String",
            "isOptional": true
          },
          {
            "name": "message",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree"
          },
          {
            "name": "parent_count",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "parents",
            "cType": "const git_commit **",
            "cppClassName": "Array",
            "arrayElementCppClassName": "GitCommit",
            "jsClassName": "Array"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createCommit",
        "cppFunctionName": "CreateCommit",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_object_lookup",
        "args": [
          {
            "name": "object",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getObject",
        "cppFunctionName": "GetObject",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_object_lookup_prefix",
        "args": [
          {
            "name": "object_out",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          },
          {
            "name": "type",
            "cType": "git_otype",
            "cppClassName": "Number",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getObjectByPrefix",
        "cppFunctionName": "GetObjectByPrefix",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_refdb_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_refdb **",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "newRefDbWithoutBackends",
        "cppFunctionName": "NewRefDbWithoutBackends",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_refdb_open",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_refdb **",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "openRefDb",
        "cppFunctionName": "OpenRefDb",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_refdb_backend_fs",
        "args": [
          {
            "name": "backend_out",
            "cType": "struct git_refdb_backend **",
            "cppClassName": "RefdbBackend",
            "jsClassName": "RefdbBackend",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "refdb",
            "cType": "git_refdb *",
            "cppClassName": "GitRefDb",
            "jsClassName": "RefDb"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "openRefDbBackend",
        "cppFunctionName": "OpenRefDbBackend",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_lookup",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getReference",
        "cppFunctionName": "GetReference",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_symbolic_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "target",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createSymbolicReference",
        "cppFunctionName": "CreateSymbolicReference",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_reference **",
            "cppClassName": "GitReference",
            "jsClassName": "Reference"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createReference",
        "cppFunctionName": "CreateReference",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_remote **",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addRemote",
        "cppFunctionName": "AddRemote",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_create_inmemory",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_remote **",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "fetch",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addRemoteInMemory",
        "cppFunctionName": "AddRemoteInMemory",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_remote_load",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_remote **",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "loadRemote",
        "cppFunctionName": "LoadRemote",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_revwalk_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_revwalk **",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createRevWalk",
        "cppFunctionName": "CreateRevWalk",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_lookup",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule **",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getSubmodule",
        "cppFunctionName": "GetSubmodule",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_add_setup",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule **",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "use_gitlink",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addSubmodule",
        "cppFunctionName": "AddSubmodule",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tag_lookup",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_tag **",
            "cppClassName": "GitTag",
            "jsClassName": "Tag"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getTag",
        "cppFunctionName": "GetTag",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tag_lookup_prefix",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_tag **",
            "cppClassName": "GitTag",
            "jsClassName": "Tag"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getTagByPrefix",
        "cppFunctionName": "GetTagByPrefix",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tag_create",
        "args": [
          {
            "name": "oid",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isReturn": true,
            "shouldAlloc": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "tag_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "target",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object"
          },
          {
            "name": "tagger",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "message",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createTag",
        "cppFunctionName": "CreateTag",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tag_create_lightweight",
        "args": [
          {
            "name": "oid",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "isReturn": true,
            "shouldAlloc": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "tag_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "target",
            "cType": "const git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "createLightweightTag",
        "cppFunctionName": "CreateLightweightTag",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tree_lookup",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_tree **",
            "cppClassName": "GitTree",
            "jsClassName": "Tree"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getTree",
        "cppFunctionName": "GetTree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tree_lookup_prefix",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_tree **",
            "cppClassName": "GitTree",
            "jsClassName": "Tree"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getTreeByPrefix",
        "cppFunctionName": "GetTreeByPrefix",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_reload_all",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "reloadSubmodules",
        "cppFunctionName": "ReloadSubmodules",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tag_delete",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "tag_name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "delete",
        "cppFunctionName": "Delete",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tag_list",
        "args": [
          {
            "name": "tag_names",
            "cType": "git_strarray *",
            "cppClassName": "Array",
            "jsClassName": "Array",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "listTags",
        "cppFunctionName": "ListTags",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tag_list_match",
        "args": [
          {
            "name": "tag_names",
            "cType": "git_strarray *",
            "cppClassName": "Strarray",
            "jsClassName": "Strarray",
            "isReturn": true
          },
          {
            "name": "pattern",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "listMatch",
        "cppFunctionName": "ListMatch",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tag_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "callback",
            "cType": "git_tag_foreach_cb",
            "cppClassName": "TagForeachCb",
            "jsClassName": "TagForeachCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reference_list",
        "args": [
          {
            "name": "array",
            "cType": "git_strarray *",
            "cppClassName": "Array",
            "jsClassName": "Array",
            "freeFunctionName": "git_strarray_free",
            "size": "count",
            "key": "strings",
            "shouldAlloc": true,
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "list_flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number",
            "isOptional": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getReferences",
        "cppFunctionName": "GetReferences",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_blob_create_frombuffer",
        "args": [
          {
            "name": "oid",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "buffer",
            "cType": "const void *",
            "cppClassName": "Buffer",
            "jsClassName": "Buffer"
          },
          {
            "name": "len",
            "cType": "size_t",
            "cppClassName": "Number",
            "jsClassName": "Number"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createBlobFromBuffer",
        "cppFunctionName": "CreateBlobFromBuffer",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_blob_create_fromworkdir",
        "args": [
          {
            "name": "id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "relative_path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createBlobFromWorkdir",
        "cppFunctionName": "CreateBlobFromWorkdir",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_blob_create_fromdisk",
        "args": [
          {
            "name": "id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createBlobFromFile",
        "cppFunctionName": "CreateBlobFromFile",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_blob_create_fromchunks",
        "args": [
          {
            "name": "id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isSelf": true
          },
          {
            "name": "hintpath",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "callback",
            "cType": "git_blob_chunk_cb",
            "cppClassName": "BlobChunkCb",
            "jsClassName": "BlobChunkCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "createBlobFromChunks",
        "cppFunctionName": "CreateBlobFromChunks",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "reset.h",
    "ignore": true,
    "jsClassName": "Reset",
    "cppClassName": "Reset",
    "cType": "git_reset",
    "freeFunctionName": "git_reset_free",
    "functions": [
      {
        "cFunctionName": "git_reset",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "target",
            "cType": "git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object"
          },
          {
            "name": "reset_type",
            "cType": "git_reset_t",
            "cppClassName": "ResetT",
            "jsClassName": "ResetT"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitReset",
        "cppFunctionName": "GitReset",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_reset_default",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "target",
            "cType": "git_object *",
            "cppClassName": "GitObject",
            "jsClassName": "Object"
          },
          {
            "name": "pathspecs",
            "cType": "git_strarray*",
            "cppClassName": "Strarray*",
            "jsClassName": "Strarray*"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "default",
        "cppFunctionName": "Default",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "revparse.h",
    "ignore": true,
    "jsClassName": "Revparse",
    "cppClassName": "Revparse",
    "cType": "git_revparse",
    "freeFunctionName": "git_revparse_free",
    "functions": [
      {
        "cFunctionName": "git_revparse_single",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "spec",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "single",
        "cppFunctionName": "Single",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_revparse",
        "args": [
          {
            "name": "revspec",
            "cType": "git_revspec *",
            "cppClassName": "Revspec",
            "jsClassName": "Revspec"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "spec",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitRevparse",
        "cppFunctionName": "GitRevparse",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "revwalk.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h"
    ],
    "jsClassName": "RevWalk",
    "cppClassName": "GitRevWalk",
    "cType": "git_revwalk",
    "freeFunctionName": "git_revwalk_free",
    "functions": [
      {
        "cFunctionName": "git_revwalk_reset",
        "args": [
          {
            "name": "walker",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reset",
        "cppFunctionName": "Reset",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_revwalk_push",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "push",
        "cppFunctionName": "Push",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_revwalk_push_glob",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true
          },
          {
            "name": "glob",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "pushGlob",
        "cppFunctionName": "PushGlob",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_revwalk_push_head",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "pushHead",
        "cppFunctionName": "PushHead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_revwalk_hide",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true
          },
          {
            "name": "commit_id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hide",
        "cppFunctionName": "Hide",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_revwalk_hide_glob",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true
          },
          {
            "name": "glob",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hideGlob",
        "cppFunctionName": "HideGlob",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_revwalk_hide_head",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hideHead",
        "cppFunctionName": "HideHead",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_revwalk_push_ref",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true
          },
          {
            "name": "refname",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "pushRef",
        "cppFunctionName": "PushRef",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_revwalk_hide_ref",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true
          },
          {
            "name": "refname",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "hideRef",
        "cppFunctionName": "HideRef",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_revwalk_next",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "shouldAlloc": true,
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "next",
        "cppFunctionName": "Next",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_revwalk_sorting",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true
          },
          {
            "name": "sort_mode",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "sorting",
        "cppFunctionName": "Sorting",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_revwalk_push_range",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true
          },
          {
            "name": "range",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "ignore": "This is in the documentation, but doesn't seem to exist!",
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "pushRange",
        "cppFunctionName": "PushRange",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_revwalk_free",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_revwalk_repository",
        "args": [
          {
            "name": "walk",
            "cType": "git_revwalk *",
            "cppClassName": "GitRevWalk",
            "jsClassName": "RevWalk",
            "isSelf": true
          }
        ],
        "ignore": "Never make public for memory allocation reasons",
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "repository",
        "cppFunctionName": "Repository",
        "return": {
          "cType": "git_repository *",
          "cppClassName": "GitRepo"
        }
      }
    ]
  },
  {
    "filename": "time.h",
    "dependencies": [],
    "jsClassName": "Time",
    "cppClassName": "GitTime",
    "cType": "git_time",
    "freeFunctionName": "free",
    "fields": [
      {
        "jsFunctionName": "time",
        "cppFunctionName": "Time",
        "name": "time",
        "cType": "git_time_t",
        "cppClassName": "Integer",
        "jsClassName": "Number"
      },
      {
        "jsFunctionName": "offset",
        "cppFunctionName": "Offset",
        "name": "offset",
        "cType": "int",
        "cppClassName": "Int32",
        "jsClassName": "Number"
      }
    ]
  },
  {
    "filename": "signature.h",
    "dependencies": [
      "../include/time.h"
    ],
    "jsClassName": "Signature",
    "cppClassName": "GitSignature",
    "cType": "git_signature",
    "freeFunctionName": "git_signature_free",
    "fields": [
      {
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "name": "name",
        "cType": "const char *",
        "cppClassName": "String",
        "jsClassName": "String"
      },
      {
        "jsFunctionName": "email",
        "cppFunctionName": "Email",
        "name": "email",
        "cType": "const char *",
        "cppClassName": "String",
        "jsClassName": "String"
      },
      {
        "jsFunctionName": "time",
        "cppFunctionName": "Time",
        "name": "when",
        "cType": "git_time",
        "cppClassName": "GitTime",
        "jsClassName": "Time",
        "copy": "git_time_dup"
      }
    ],
    "functions": [
      {
        "cFunctionName": "git_signature_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_signature **",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "email",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "time",
            "cType": "git_time_t",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "offset",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "create",
        "cppFunctionName": "Create",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_signature_now",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_signature **",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "name",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "email",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "now",
        "cppFunctionName": "Now",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_signature_dup",
        "args": [
          {
            "name": "sig",
            "cType": "const git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "dup",
        "cppFunctionName": "Dup",
        "return": {
          "cType": "git_signature *",
          "cppClassName": "GitSignature"
        }
      },
      {
        "cFunctionName": "git_signature_free",
        "args": [
          {
            "name": "sig",
            "cType": "git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      }
    ]
  },
  {
    "filename": "stash.h",
    "ignore": true,
    "jsClassName": "Stash",
    "cppClassName": "Stash",
    "cType": "git_stash",
    "freeFunctionName": "git_stash_free",
    "functions": [
      {
        "cFunctionName": "git_stash_save",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "stasher",
            "cType": "git_signature *",
            "cppClassName": "GitSignature",
            "jsClassName": "Signature"
          },
          {
            "name": "message",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "flags",
            "cType": "unsigned int",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "save",
        "cppFunctionName": "Save",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_stash_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "callback",
            "cType": "git_stash_cb",
            "cppClassName": "StashCb",
            "jsClassName": "StashCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_stash_drop",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "index",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "drop",
        "cppFunctionName": "Drop",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "status.h",
    "ignore": true,
    "jsClassName": "Status",
    "cppClassName": "Status",
    "cType": "git_status",
    "freeFunctionName": "git_status_free",
    "functions": [
      {
        "cFunctionName": "git_status_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "callback",
            "cType": "git_status_cb",
            "cppClassName": "StatusCb",
            "jsClassName": "StatusCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_status_foreach_ext",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "opts",
            "cType": "const git_status_options *",
            "cppClassName": "StatusOptions",
            "jsClassName": "StatusOptions"
          },
          {
            "name": "callback",
            "cType": "git_status_cb",
            "cppClassName": "StatusCb",
            "jsClassName": "StatusCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreachExt",
        "cppFunctionName": "ForeachExt",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_status_file",
        "args": [
          {
            "name": "status_flags",
            "cType": "unsigned int *",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "file",
        "cppFunctionName": "File",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_status_should_ignore",
        "args": [
          {
            "name": "ignored",
            "cType": "int *",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "shouldIgnore",
        "cppFunctionName": "ShouldIgnore",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "stdint.h",
    "ignore": true,
    "jsClassName": "Stdint",
    "cppClassName": "Stdint",
    "cType": "git_stdint",
    "freeFunctionName": "git_stdint_free",
    "functions": []
  },
  {
    "filename": "strarray.h",
    "ignore": true,
    "jsClassName": "Strarray",
    "cppClassName": "Strarray",
    "cType": "git_strarray",
    "freeFunctionName": "git_strarray_free",
    "functions": [
      {
        "cFunctionName": "git_strarray_free",
        "args": [
          {
            "name": "array",
            "cType": "git_strarray *",
            "cppClassName": "Strarray",
            "jsClassName": "Strarray"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_strarray_copy",
        "args": [
          {
            "name": "tgt",
            "cType": "git_strarray *",
            "cppClassName": "Strarray",
            "jsClassName": "Strarray",
            "isSelf": true
          },
          {
            "name": "src",
            "cType": "const git_strarray *",
            "cppClassName": "Strarray",
            "jsClassName": "Strarray"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "copy",
        "cppFunctionName": "Copy",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "submodule.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h"
    ],
    "jsClassName": "Submodule",
    "cppClassName": "GitSubmodule",
    "cType": "git_submodule",
    "freeFunctionName": "free",
    "functions": [
      {
        "cFunctionName": "git_submodule_foreach",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "callback",
            "cType": "int (*)(git_submodule *sm, const char *name, void *payload)",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "foreach",
        "cppFunctionName": "Foreach",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_add_finalize",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addFinalize",
        "cppFunctionName": "AddFinalize",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_add_to_index",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          },
          {
            "name": "write_index",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "addToIndex",
        "cppFunctionName": "AddToIndex",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_save",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "save",
        "cppFunctionName": "Save",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_owner",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "ignore": "Never make public for memory allocation reasons",
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "owner",
        "cppFunctionName": "Owner",
        "return": {
          "cType": "git_repository *",
          "cppClassName": "GitRepo"
        }
      },
      {
        "cFunctionName": "git_submodule_name",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_submodule_path",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "path",
        "cppFunctionName": "Path",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_submodule_url",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "url",
        "cppFunctionName": "Url",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_submodule_set_url",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setUrl",
        "cppFunctionName": "SetUrl",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_index_id",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "indexId",
        "cppFunctionName": "IndexId",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_submodule_head_id",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "headId",
        "cppFunctionName": "HeadId",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_submodule_wd_id",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "wdId",
        "cppFunctionName": "WdId",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_submodule_ignore",
        "args": [],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "ignore",
        "cppFunctionName": "Ignore",
        "return": {
          "cType": "GIT_EXTERN(",
          "cppClassName": "GIT_EXTERN("
        }
      },
      {
        "cFunctionName": "git_submodule_set_ignore",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          },
          {
            "name": "ignore",
            "cType": "git_submodule_ignore_t",
            "cppClassName": "Uint32",
            "jsClassName": "Uint32"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setIgnore",
        "cppFunctionName": "SetIgnore",
        "return": {
          "cType": "git_submodule_ignore_t",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_submodule_update",
        "ignore": true,
        "args": [],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "update",
        "cppFunctionName": "Update",
        "return": {
          "cType": "GIT_EXTERN(",
          "cppClassName": "GIT_EXTERN("
        }
      },
      {
        "cFunctionName": "git_submodule_set_update",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          },
          {
            "name": "update",
            "cType": "git_submodule_update_t",
            "cppClassName": "Uint32",
            "jsClassName": "Uint32"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setUpdate",
        "cppFunctionName": "SetUpdate",
        "return": {
          "cType": "git_submodule_update_t",
          "cppClassName": "SubmoduleUpdateT"
        }
      },
      {
        "cFunctionName": "git_submodule_fetch_recurse_submodules",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "fetchRecurseSubmodules",
        "cppFunctionName": "FetchRecurseSubmodules",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_set_fetch_recurse_submodules",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          },
          {
            "name": "fetch_recurse_submodules",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "setFetchRecurseSubmodules",
        "cppFunctionName": "SetFetchRecurseSubmodules",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_init",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          },
          {
            "name": "overwrite",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "init",
        "cppFunctionName": "Init",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_sync",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "sync",
        "cppFunctionName": "Sync",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_open",
        "args": [
          {
            "name": "repo",
            "cType": "git_repository **",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository",
            "isReturn": true
          },
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "open",
        "cppFunctionName": "Open",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_reload",
        "args": [
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "reload",
        "cppFunctionName": "Reload",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_status",
        "args": [
          {
            "name": "status",
            "cType": "unsigned int *",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "status",
        "cppFunctionName": "Status",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_submodule_location",
        "args": [
          {
            "name": "location_status",
            "cType": "unsigned int *",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          },
          {
            "name": "submodule",
            "cType": "git_submodule *",
            "cppClassName": "GitSubmodule",
            "jsClassName": "Submodule"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "location",
        "cppFunctionName": "Location",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "tag.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h",
      "../include/object.h",
      "../include/signature.h"
    ],
    "jsClassName": "Tag",
    "cppClassName": "GitTag",
    "cType": "git_tag",
    "freeFunctionName": "git_tag_free",
    "functions": [
      {
        "cFunctionName": "git_tag_free",
        "args": [
          {
            "name": "tag",
            "cType": "git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_tag_id",
        "args": [
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_tag_target",
        "args": [
          {
            "name": "target_out",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true
          },
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getTarget",
        "cppFunctionName": "GetTarget",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tag_target_id",
        "args": [
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "targetId",
        "cppFunctionName": "TargetId",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_tag_target_type",
        "args": [
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "targetType",
        "cppFunctionName": "TargetType",
        "return": {
          "cType": "git_otype",
          "cppClassName": "Int32"
        }
      },
      {
        "cFunctionName": "git_tag_name",
        "args": [
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_tag_tagger",
        "args": [
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "tagger",
        "cppFunctionName": "Tagger",
        "return": {
          "cType": "const git_signature *",
          "cppClassName": "GitSignature",
          "copy": "git_signature_dup"
        }
      },
      {
        "cFunctionName": "git_tag_message",
        "args": [
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "message",
        "cppFunctionName": "Message",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_tag_create_frombuffer",
        "args": [
          {
            "name": "oid",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "buffer",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "force",
            "cType": "int",
            "cppClassName": "Int32",
            "jsClassName": "Number"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "createFrombuffer",
        "cppFunctionName": "CreateFrombuffer",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tag_peel",
        "args": [
          {
            "name": "tag_target_out",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true
          },
          {
            "name": "tag",
            "cType": "const git_tag *",
            "cppClassName": "GitTag",
            "jsClassName": "Tag"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "peel",
        "cppFunctionName": "Peel",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "threads.h",
    "dependencies": [],
    "jsClassName": "Threads",
    "cppClassName": "GitThreads",
    "functions": [
      {
        "cFunctionName": "git_threads_init",
        "args": [],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "init",
        "cppFunctionName": "Init",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_threads_shutdown",
        "args": [],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "shutdown",
        "cppFunctionName": "Shutdown",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      }
    ]
  },
  {
    "filename": "trace.h",
    "ignore": true,
    "jsClassName": "Trace",
    "cppClassName": "Trace",
    "cType": "git_trace",
    "freeFunctionName": "git_trace_free",
    "functions": [
      {
        "cFunctionName": "git_trace_set",
        "args": [
          {
            "name": "level",
            "cType": "git_trace_level_t",
            "cppClassName": "TraceLevelT",
            "jsClassName": "TraceLevelT"
          },
          {
            "name": "cb",
            "cType": "git_trace_callback",
            "cppClassName": "TraceCallback",
            "jsClassName": "TraceCallback"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "set",
        "cppFunctionName": "Set",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "transport.h",
    "ignore": true,
    "jsClassName": "Transport",
    "cppClassName": "Transport",
    "cType": "git_transport",
    "freeFunctionName": "git_transport_free",
    "functions": [
      {
        "cFunctionName": "git_cred_userpass_plaintext_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_cred **",
            "cppClassName": "Cred",
            "jsClassName": "Cred"
          },
          {
            "name": "username",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "password",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitCredUserpassPlaintextNew",
        "cppFunctionName": "GitCredUserpassPlaintextNew",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_transport_new",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_transport **",
            "cppClassName": "Transport",
            "jsClassName": "Transport"
          },
          {
            "name": "owner",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote"
          },
          {
            "name": "url",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "new",
        "cppFunctionName": "New",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_transport_dummy",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_transport **",
            "cppClassName": "Transport",
            "jsClassName": "Transport"
          },
          {
            "name": "owner",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "dummy",
        "cppFunctionName": "Dummy",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_transport_local",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_transport **",
            "cppClassName": "Transport",
            "jsClassName": "Transport"
          },
          {
            "name": "owner",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "local",
        "cppFunctionName": "Local",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_transport_smart",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_transport **",
            "cppClassName": "Transport",
            "jsClassName": "Transport"
          },
          {
            "name": "owner",
            "cType": "git_remote *",
            "cppClassName": "GitRemote",
            "jsClassName": "Remote"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "smart",
        "cppFunctionName": "Smart",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_smart_subtransport_http",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_smart_subtransport **",
            "cppClassName": "SmartSubtransport",
            "jsClassName": "SmartSubtransport"
          },
          {
            "name": "owner",
            "cType": "git_transport*",
            "cppClassName": "Transport*",
            "jsClassName": "Transport*"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitSmartSubtransportHttp",
        "cppFunctionName": "GitSmartSubtransportHttp",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_smart_subtransport_git",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_smart_subtransport **",
            "cppClassName": "SmartSubtransport",
            "jsClassName": "SmartSubtransport"
          },
          {
            "name": "owner",
            "cType": "git_transport*",
            "cppClassName": "Transport*",
            "jsClassName": "Transport*"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "gitSmartSubtransportGit",
        "cppFunctionName": "GitSmartSubtransportGit",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "tree_entry.h",
    "dependencies": [
      "../include/oid.h",
      "../include/repo.h",
      "../include/object.h"
    ],
    "jsClassName": "TreeEntry",
    "cppClassName": "GitTreeEntry",
    "cType": "git_tree_entry",
    "freeFunctionName": "git_tree_entry_free",
    "functions": [
      {
        "cFunctionName": "git_tree_entry_dup",
        "args": [
          {
            "name": "entry",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "dup",
        "cppFunctionName": "Dup",
        "return": {
          "cType": "git_tree_entry *",
          "cppClassName": "GitTreeEntry"
        }
      },
      {
        "cFunctionName": "git_tree_entry_free",
        "args": [
          {
            "name": "entry",
            "cType": "git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_tree_entry_name",
        "args": [
          {
            "name": "entry",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "name",
        "cppFunctionName": "Name",
        "return": {
          "cType": "const char *",
          "cppClassName": "String"
        }
      },
      {
        "cFunctionName": "git_tree_entry_id",
        "args": [
          {
            "name": "entry",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_tree_entry_type",
        "args": [
          {
            "name": "entry",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "type",
        "cppFunctionName": "Type",
        "return": {
          "cType": "git_otype",
          "cppClassName": "Number"
        }
      },
      {
        "cFunctionName": "git_tree_entry_filemode",
        "args": [
          {
            "name": "entry",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "filemode",
        "cppFunctionName": "filemode",
        "return": {
          "cType": "git_filemode_t",
          "cppClassName": "Number"
        }
      },
      {
        "cFunctionName": "git_tree_entry_cmp",
        "args": [
          {
            "name": "e1",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true
          },
          {
            "name": "e2",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "compare",
        "cppFunctionName": "Compare",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tree_entry_to_object",
        "args": [
          {
            "name": "object_out",
            "cType": "git_object **",
            "cppClassName": "GitObject",
            "jsClassName": "Object",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "entry",
            "cType": "const git_tree_entry *",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getObject",
        "cppFunctionName": "GetObject",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "tree.h",
    "dependencies": [
      "../include/repo.h",
      "../include/oid.h",
      "../include/tree_entry.h",
      "../include/diff_list.h",
      "../include/diff_options.h",
      "../include/tree_builder.h",
      "../include/index.h"
    ],
    "jsClassName": "Tree",
    "cppClassName": "GitTree",
    "cType": "git_tree",
    "freeFunctionName": "git_tree_free",
    "functions": [
      {
        "cFunctionName": "git_tree_free",
        "args": [
          {
            "name": "tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "free",
        "cppFunctionName": "Free",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_tree_id",
        "args": [
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "oid",
        "cppFunctionName": "Oid",
        "return": {
          "cType": "const git_oid *",
          "cppClassName": "GitOid",
          "copy": "git_oid_dup"
        }
      },
      {
        "cFunctionName": "git_tree_owner",
        "args": [
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true
          }
        ],
        "ignore": "Never make public for memory allocation reasons",
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "owner",
        "cppFunctionName": "Owner",
        "return": {
          "cType": "git_repository *",
          "cppClassName": "GitRepo"
        }
      },
      {
        "cFunctionName": "git_tree_entrycount",
        "args": [
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "size_t",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_tree_entry_byname",
        "args": [
          {
            "name": "tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true
          },
          {
            "name": "filename",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "entryByName",
        "cppFunctionName": "EntryByName",
        "return": {
          "cType": "const git_tree_entry *",
          "cppClassName": "GitTreeEntry",
          "copy": "git_tree_entry_dup"
        }
      },
      {
        "cFunctionName": "git_tree_entry_byindex",
        "args": [
          {
            "name": "tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true
          },
          {
            "name": "idx",
            "cType": "size_t",
            "cppClassName": "Uint32",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "entryByIndex",
        "cppFunctionName": "EntryByIndex",
        "return": {
          "cType": "const git_tree_entry *",
          "cppClassName": "GitTreeEntry",
          "copy": "git_tree_entry_dup"
        }
      },
      {
        "cFunctionName": "git_tree_entry_byoid",
        "args": [
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true
          },
          {
            "name": "oid",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "entryByOid",
        "cppFunctionName": "EntryByOid",
        "return": {
          "cType": "const git_tree_entry *",
          "cppClassName": "GitTreeEntry",
          "copy": "git_tree_entry_dup"
        }
      },
      {
        "cFunctionName": "git_tree_entry_bypath",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_tree_entry **",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry"
          },
          {
            "name": "root",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true
          },
          {
            "name": "path",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "getEntry",
        "cppFunctionName": "GetEntry",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_treebuilder_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_treebuilder **",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder"
          },
          {
            "name": "source",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "builder",
        "cppFunctionName": "Builder",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_tree_walk",
        "args": [
          {
            "name": "tree",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true
          },
          {
            "name": "mode",
            "cType": "git_treewalk_mode",
            "cppClassName": "TreewalkMode",
            "jsClassName": "TreewalkMode"
          },
          {
            "name": "callback",
            "cType": "git_treewalk_cb",
            "cppClassName": "TreewalkCb",
            "jsClassName": "TreewalkCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "walk",
        "cppFunctionName": "Walk",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_tree_to_tree",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list **",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "old_tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true
          },
          {
            "name": "new_tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree"
          },
          {
            "name": "opts",
            "cType": "const git_diff_options *",
            "cppClassName": "GitDiffOptions",
            "jsClassName": "DiffOptions",
            "isOptional": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "diffTree",
        "cppFunctionName": "DiffTree",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_tree_to_index",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list **",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "old_tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true
          },
          {
            "name": "index",
            "cType": "git_index *",
            "cppClassName": "GitIndex",
            "jsClassName": "Index"
          },
          {
            "name": "opts",
            "cType": "const git_diff_options *",
            "cppClassName": "GitDiffOptions",
            "jsClassName": "DiffOptions"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "diffIndex",
        "cppFunctionName": "DiffIndex",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_diff_tree_to_workdir",
        "args": [
          {
            "name": "diff",
            "cType": "git_diff_list **",
            "cppClassName": "GitDiffList",
            "jsClassName": "DiffList",
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "old_tree",
            "cType": "git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isSelf": true
          },
          {
            "name": "opts",
            "cType": "const git_diff_options *",
            "cppClassName": "GitDiffOptions",
            "jsClassName": "DiffOptions"
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "diffWorkDir",
        "cppFunctionName": "DiffWorkDir",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  },
  {
    "filename": "tree_builder.h",
    "dependencies": [
      "../include/repo.h",
      "../include/oid.h",
      "../include/tree_entry.h",
      "../include/tree.h",
      "../include/diff_list.h",
      "../include/diff_options.h",
      "../include/index.h"
    ],
    "jsClassName": "TreeBuilder",
    "cppClassName": "GitTreeBuilder",
    "cType": "git_treebuilder",
    "freeFunctionName": "git_treebuilder_free",
    "functions": [
      {
        "cFunctionName": "git_treebuilder_create",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "git_treebuilder **",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder"
          },
          {
            "name": "source",
            "cType": "const git_tree *",
            "cppClassName": "GitTree",
            "jsClassName": "Tree",
            "isOptional": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": true,
        "isPrototypeMethod": false,
        "jsFunctionName": "create",
        "cppFunctionName": "Create",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_treebuilder_clear",
        "args": [
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "clear",
        "cppFunctionName": "Clear",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_treebuilder_entrycount",
        "args": [
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "isSelf": true
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "size",
        "cppFunctionName": "Size",
        "return": {
          "cType": "unsigned int",
          "cppClassName": "Uint32"
        }
      },
      {
        "cFunctionName": "git_treebuilder_free",
        "args": [
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "isFree": true,
        "jsFunctionName": "treebuilderFree",
        "cppFunctionName": "GitTreebuilderFree",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_treebuilder_get",
        "args": [
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "isSelf": true
          },
          {
            "name": "filename",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "get",
        "cppFunctionName": "Get",
        "return": {
          "cType": "const git_tree_entry *",
          "cppClassName": "GitTreeEntry",
          "copy": "git_tree_entry_dup"
        }
      },
      {
        "cFunctionName": "git_treebuilder_insert",
        "args": [
          {
            "name": "out",
            "isReturn": true,
            "cType": "const git_tree_entry **",
            "cppClassName": "GitTreeEntry",
            "jsClassName": "TreeEntry",
            "copy": "git_tree_entry_dup"
          },
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "isSelf": true
          },
          {
            "name": "filename",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          },
          {
            "name": "id",
            "cType": "const git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid"
          },
          {
            "name": "filemode",
            "cType": "git_filemode_t",
            "cppClassName": "Number",
            "jsClassName": "Number"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "insert",
        "cppFunctionName": "Insert",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_treebuilder_remove",
        "args": [
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "isSelf": true
          },
          {
            "name": "filename",
            "cType": "const char *",
            "cppClassName": "String",
            "jsClassName": "String"
          }
        ],
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "gitTreebuilderRemove",
        "cppFunctionName": "GitTreebuilderRemove",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      },
      {
        "cFunctionName": "git_treebuilder_filter",
        "args": [
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "isSelf": true
          },
          {
            "name": "filter",
            "cType": "git_treebuilder_filter_cb",
            "cppClassName": "TreebuilderFilterCb",
            "jsClassName": "TreebuilderFilterCb"
          },
          {
            "name": "payload",
            "cType": "void *",
            "cppClassName": "void",
            "jsClassName": "void"
          }
        ],
        "ignore": true,
        "isAsync": false,
        "isConstructorMethod": false,
        "isPrototypeMethod": false,
        "jsFunctionName": "filter",
        "cppFunctionName": "Filter",
        "return": {
          "cType": "void",
          "cppClassName": "void"
        }
      },
      {
        "cFunctionName": "git_treebuilder_write",
        "args": [
          {
            "name": "id",
            "cType": "git_oid *",
            "cppClassName": "GitOid",
            "jsClassName": "Oid",
            "shouldAlloc": true,
            "isReturn": true
          },
          {
            "name": "repo",
            "cType": "git_repository *",
            "cppClassName": "GitRepo",
            "jsClassName": "Repository"
          },
          {
            "name": "bld",
            "cType": "git_treebuilder *",
            "cppClassName": "GitTreeBuilder",
            "jsClassName": "TreeBuilder",
            "isSelf": true
          }
        ],
        "isAsync": true,
        "isConstructorMethod": false,
        "isPrototypeMethod": true,
        "jsFunctionName": "write",
        "cppFunctionName": "Write",
        "return": {
          "cType": "int",
          "cppClassName": "Int32",
          "isErrorCode": true
        }
      }
    ]
  }
]
