From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../uniffi-fixture-external-types/Cargo.toml | 15 +++++++++++++++ .../components/uniffi-fixture-external-types/build.rs | 7 +++++++ .../src/external-types.udl | 11 +++++++++++ .../uniffi-fixture-external-types/src/lib.rs | 18 ++++++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 toolkit/components/uniffi-fixture-external-types/Cargo.toml create mode 100644 toolkit/components/uniffi-fixture-external-types/build.rs create mode 100644 toolkit/components/uniffi-fixture-external-types/src/external-types.udl create mode 100644 toolkit/components/uniffi-fixture-external-types/src/lib.rs (limited to 'toolkit/components/uniffi-fixture-external-types') diff --git a/toolkit/components/uniffi-fixture-external-types/Cargo.toml b/toolkit/components/uniffi-fixture-external-types/Cargo.toml new file mode 100644 index 0000000000..f9ac840c3f --- /dev/null +++ b/toolkit/components/uniffi-fixture-external-types/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "uniffi-fixture-external-types" +edition = "2021" +version = "0.21.0" +authors = ["Firefox Sync Team "] +license = "MPL-2.0" +publish = false + +[dependencies] +uniffi-example-geometry = { git = "https://github.com/mozilla/uniffi-rs.git", rev = "afb29ebdc1d9edf15021b1c5332fc9f285bbe13b" } +uniffi = { workspace = true } +thiserror = "1.0" + +[build-dependencies] +uniffi = { workspace = true, features = ["build"] } diff --git a/toolkit/components/uniffi-fixture-external-types/build.rs b/toolkit/components/uniffi-fixture-external-types/build.rs new file mode 100644 index 0000000000..13f56ca56b --- /dev/null +++ b/toolkit/components/uniffi-fixture-external-types/build.rs @@ -0,0 +1,7 @@ +/* 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/. */ + +fn main() { + uniffi::generate_scaffolding("./src/external-types.udl").unwrap(); +} diff --git a/toolkit/components/uniffi-fixture-external-types/src/external-types.udl b/toolkit/components/uniffi-fixture-external-types/src/external-types.udl new file mode 100644 index 0000000000..d50fc680f7 --- /dev/null +++ b/toolkit/components/uniffi-fixture-external-types/src/external-types.udl @@ -0,0 +1,11 @@ +// A type defined in the `geometry` component +[External="uniffi_geometry"] +typedef extern Point; + +[External="uniffi_geometry"] +typedef extern Line; + +namespace external_types { + double gradient(Line? value); + Point? intersection(Line ln1, Line ln2); +}; diff --git a/toolkit/components/uniffi-fixture-external-types/src/lib.rs b/toolkit/components/uniffi-fixture-external-types/src/lib.rs new file mode 100644 index 0000000000..2d12332312 --- /dev/null +++ b/toolkit/components/uniffi-fixture-external-types/src/lib.rs @@ -0,0 +1,18 @@ +/* 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/. */ + +use uniffi_geometry::{Line, Point}; + +pub fn gradient(value: Option) -> f64 { + match value { + None => 0.0, + Some(value) => uniffi_geometry::gradient(value), + } +} + +pub fn intersection(ln1: Line, ln2: Line) -> Option { + uniffi_geometry::intersection(ln1, ln2) +} + +include!(concat!(env!("OUT_DIR"), "/external-types.uniffi.rs")); -- cgit v1.2.3