printf "// This file is automatically generated. Do not edit.\n\n" > sys/src/sys.rs
cat sys/src/sys.rs.tmp >> sys/src/sys.rs
rm -f sys/src/sys.rs.tmp
+ $(CBINDGEN) --quiet --config cbindgen.toml src/jsonbuilder.rs -o gen/jsonbuilder.h
+ $(BINDGEN) \
+ -o sys/src/jsonbuilder.rs.tmp \
+ --rust-target 1.68 \
+ --no-layout-tests \
+ --disable-header-comment \
+ --allowlist-function 'SC.*' \
+ gen/jsonbuilder.h \
+ -- \
+ -DHAVE_CONFIG_H -I../src -I../rust/gen $(CPPFLAGS)
+ printf "// This file is automatically generated. Do not edit.\n\n" > sys/src/jsonbuilder.rs
+ cat sys/src/jsonbuilder.rs.tmp >> sys/src/jsonbuilder.rs
+ rm -f sys/src/jsonbuilder.rs.tmp
else
@echo "error: bindgen not installed, can't update bindings"
exit 1
--- /dev/null
+// This file is automatically generated. Do not edit.
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct SCJsonBuilder {
+ _unused: [u8; 0],
+}
+#[doc = " A \"mark\" or saved state for a JsonBuilder object.\n\n The name is full, and the types are u64 as this object is used\n directly in C as well."]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct SCJsonBuilderMark {
+ pub position: u64,
+ pub state_index: u64,
+ pub state: u64,
+}
+extern "C" {
+ pub fn SCJbNewObject() -> *mut SCJsonBuilder;
+}
+extern "C" {
+ pub fn SCJbNewArray() -> *mut SCJsonBuilder;
+}
+extern "C" {
+ pub fn SCJbClone(js: *mut SCJsonBuilder) -> *mut SCJsonBuilder;
+}
+extern "C" {
+ pub fn SCJbFree(js: *mut SCJsonBuilder);
+}
+extern "C" {
+ pub fn SCJbCapacity(jb: *mut SCJsonBuilder) -> usize;
+}
+extern "C" {
+ pub fn SCJbReset(jb: *mut SCJsonBuilder);
+}
+extern "C" {
+ pub fn SCJbOpenObject(js: *mut SCJsonBuilder, key: *const ::std::os::raw::c_char) -> bool;
+}
+extern "C" {
+ pub fn SCJbStartObject(js: *mut SCJsonBuilder) -> bool;
+}
+extern "C" {
+ pub fn SCJbOpenArray(js: *mut SCJsonBuilder, key: *const ::std::os::raw::c_char) -> bool;
+}
+extern "C" {
+ pub fn SCJbSetString(
+ js: *mut SCJsonBuilder, key: *const ::std::os::raw::c_char,
+ val: *const ::std::os::raw::c_char,
+ ) -> bool;
+}
+extern "C" {
+ pub fn SCJbSetStringFromBytes(
+ js: *mut SCJsonBuilder, key: *const ::std::os::raw::c_char, bytes: *const u8, len: u32,
+ ) -> bool;
+}
+extern "C" {
+ pub fn SCJbSetBase64(
+ js: *mut SCJsonBuilder, key: *const ::std::os::raw::c_char, bytes: *const u8, len: u32,
+ ) -> bool;
+}
+extern "C" {
+ pub fn SCJbSetHex(
+ js: *mut SCJsonBuilder, key: *const ::std::os::raw::c_char, bytes: *const u8, len: u32,
+ ) -> bool;
+}
+extern "C" {
+ pub fn SCJbSetFormatted(
+ js: *mut SCJsonBuilder, formatted: *const ::std::os::raw::c_char,
+ ) -> bool;
+}
+extern "C" {
+ pub fn SCJbAppendObject(jb: *mut SCJsonBuilder, obj: *const SCJsonBuilder) -> bool;
+}
+extern "C" {
+ pub fn SCJbSetObject(
+ js: *mut SCJsonBuilder, key: *const ::std::os::raw::c_char, val: *mut SCJsonBuilder,
+ ) -> bool;
+}
+extern "C" {
+ pub fn SCJbAppendString(js: *mut SCJsonBuilder, val: *const ::std::os::raw::c_char) -> bool;
+}
+extern "C" {
+ pub fn SCJbAppendStringFromBytes(js: *mut SCJsonBuilder, bytes: *const u8, len: u32) -> bool;
+}
+extern "C" {
+ pub fn SCJbAppendBase64(js: *mut SCJsonBuilder, bytes: *const u8, len: u32) -> bool;
+}
+extern "C" {
+ pub fn SCJbAppendUint(js: *mut SCJsonBuilder, val: u64) -> bool;
+}
+extern "C" {
+ pub fn SCJbAppendFloat(js: *mut SCJsonBuilder, val: f64) -> bool;
+}
+extern "C" {
+ pub fn SCJbSetUint(
+ js: *mut SCJsonBuilder, key: *const ::std::os::raw::c_char, val: u64,
+ ) -> bool;
+}
+extern "C" {
+ pub fn SCJbSetInt(js: *mut SCJsonBuilder, key: *const ::std::os::raw::c_char, val: i64)
+ -> bool;
+}
+extern "C" {
+ pub fn SCJbSetFloat(
+ js: *mut SCJsonBuilder, key: *const ::std::os::raw::c_char, val: f64,
+ ) -> bool;
+}
+extern "C" {
+ pub fn SCJbSetBool(
+ js: *mut SCJsonBuilder, key: *const ::std::os::raw::c_char, val: bool,
+ ) -> bool;
+}
+extern "C" {
+ pub fn SCJbClose(js: *mut SCJsonBuilder) -> bool;
+}
+extern "C" {
+ pub fn SCJbLen(js: *const SCJsonBuilder) -> usize;
+}
+extern "C" {
+ pub fn SCJbPtr(js: *mut SCJsonBuilder) -> *const u8;
+}
+extern "C" {
+ pub fn SCJbGetMark(js: *mut SCJsonBuilder, mark: *mut SCJsonBuilderMark);
+}
+extern "C" {
+ pub fn SCJbRestoreMark(js: *mut SCJsonBuilder, mark: *mut SCJsonBuilderMark) -> bool;
+}