field_lib

Cross-platform Rust runtime for Radroots iOS and Android apps
git clone https://radroots.dev/git/field_lib.git
Log | Files | Refs | README | LICENSE

commit 86bf0958eff32ebeda5f4ac5ddcfab0d5e0c838d
parent d003630cf31d3347c6a222ecc3c50f6cbf87ff1b
Author: triesap <tyson@radroots.org>
Date:   Thu, 11 Jun 2026 15:59:28 -0700

field: restore swift ffi crate for field library extraction

Diffstat:
Acrates/field_ffi_swift/Cargo.toml | 25+++++++++++++++++++++++++
Acrates/field_ffi_swift/bin/uniffi-bindgen.rs | 19+++++++++++++++++++
Acrates/field_ffi_swift/src/lib.rs | 16++++++++++++++++
Acrates/field_ffi_swift/uniffi.toml | 3+++
4 files changed, 63 insertions(+), 0 deletions(-)

diff --git a/crates/field_ffi_swift/Cargo.toml b/crates/field_ffi_swift/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "radroots_field_ffi_swift" +version.workspace = true +edition.workspace = true +authors = ["Radroots Authors"] +rust-version.workspace = true +license.workspace = true +publish = false + +[lib] +crate-type = ["staticlib", "cdylib"] + +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(coverage_nightly)'] } + +[[bin]] +name = "uniffi-bindgen" +path = "bin/uniffi-bindgen.rs" + +[build-dependencies] +uniffi_build = { workspace = true } + +[dependencies] +radroots_field_core = { workspace = true } +uniffi = { workspace = true, features = ["cli"] } diff --git a/crates/field_ffi_swift/bin/uniffi-bindgen.rs b/crates/field_ffi_swift/bin/uniffi-bindgen.rs @@ -0,0 +1,19 @@ +fn main() { + run_bindgen(); +} + +#[cfg(not(coverage_nightly))] +fn run_bindgen() { + uniffi::uniffi_bindgen_main() +} + +#[cfg(coverage_nightly)] +fn run_bindgen() {} + +#[cfg(all(test, coverage_nightly))] +mod tests { + #[test] + fn main_is_callable_in_coverage_builds() { + super::main(); + } +} diff --git a/crates/field_ffi_swift/src/lib.rs b/crates/field_ffi_swift/src/lib.rs @@ -0,0 +1,16 @@ +radroots_field_core::uniffi_reexport_scaffolding!(); + +pub fn coverage_branch_probe(input: bool) -> &'static str { + if input { "ffi-swift" } else { "ffi-swift" } +} + +#[cfg(test)] +mod tests { + use super::coverage_branch_probe; + + #[test] + fn coverage_branch_probe_hits_both_paths() { + assert_eq!(coverage_branch_probe(true), "ffi-swift"); + assert_eq!(coverage_branch_probe(false), "ffi-swift"); + } +} diff --git a/crates/field_ffi_swift/uniffi.toml b/crates/field_ffi_swift/uniffi.toml @@ -0,0 +1,3 @@ +[bindings.swift] +module_name = "RadrootsKitBindings" +ffi_module_name = "RadrootsFFI"