header = """/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

/* urlpattern is implemented in third_party Rust code.
 * Since the library doesn't expose itself with extern "C" FFI calls,
 * we make our own wrapper to be able to call from C++. This file contains the
 * C declarations of these files.

 * WARNING: DO NOT CALL ANY OF THESE FUNCTIONS. USE |URLPatternGlue| INSTEAD! */
 """
autogen_warning = """/* DO NOT MODIFY THIS MANUALLY! This file was generated using cbindgen. */

#include "nsTArray.h"
#include "nsString.h"

// using MozURL = mozilla::net::MozURL;
namespace mozilla {
namespace net {
class MozURL;
}
}

typedef struct UrlPatternOptions UrlPatternOptions;

"""

include_guard = "mozilla_net_urlpattern_glue_h"
include_version = true
braces = "SameLine"
line_length = 100
tab_width = 2
language = "C++"
namespaces = []
includes = ["nsString.h", "atomic"]

[export]
exclude = ["Lazy"]
item_types = ["globals", "enums", "structs", "unions", "typedefs", "opaque", "functions", "constants"]

[parse]
include = ["urlpattern"]
parse_deps = true

[export.rename]
"SpecSlice" = "MozURLSpecSlice"
"MozURL" = "mozilla::net::MozURL"
"ThinVec" = "nsTArray"
