summaryrefslogtreecommitdiffstats
path: root/third_party/rust/uniffi-example-geometry/src
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/uniffi-example-geometry/src')
-rw-r--r--third_party/rust/uniffi-example-geometry/src/geometry.udl15
-rw-r--r--third_party/rust/uniffi-example-geometry/src/lib.rs47
2 files changed, 0 insertions, 62 deletions
diff --git a/third_party/rust/uniffi-example-geometry/src/geometry.udl b/third_party/rust/uniffi-example-geometry/src/geometry.udl
deleted file mode 100644
index af60d429bf..0000000000
--- a/third_party/rust/uniffi-example-geometry/src/geometry.udl
+++ /dev/null
@@ -1,15 +0,0 @@
-
-namespace geometry {
- double gradient(Line ln);
- Point? intersection(Line ln1, Line ln2);
-};
-
-dictionary Point {
- double coord_x;
- double coord_y;
-};
-
-dictionary Line {
- Point start;
- Point end;
-};
diff --git a/third_party/rust/uniffi-example-geometry/src/lib.rs b/third_party/rust/uniffi-example-geometry/src/lib.rs
deleted file mode 100644
index d710b150bb..0000000000
--- a/third_party/rust/uniffi-example-geometry/src/lib.rs
+++ /dev/null
@@ -1,47 +0,0 @@
-/* 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/. */
-
-// https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp
-// Silence, clippy!
-const EPSILON: f64 = 0.0001f64;
-
-#[derive(Debug, Clone)]
-pub struct Point {
- coord_x: f64,
- coord_y: f64,
-}
-
-#[derive(Debug, Clone)]
-pub struct Line {
- start: Point,
- end: Point,
-}
-
-pub fn gradient(ln: Line) -> f64 {
- let rise = ln.end.coord_y - ln.start.coord_y;
- let run = ln.end.coord_x - ln.start.coord_x;
- rise / run
-}
-
-pub fn intersection(ln1: Line, ln2: Line) -> Option<Point> {
- // TODO: yuck, should be able to take &Line as argument here
- // and have rust figure it out with a bunch of annotations...
- let g1 = gradient(ln1.clone());
- let z1 = ln1.start.coord_y - g1 * ln1.start.coord_x;
- let g2 = gradient(ln2.clone());
- let z2 = ln2.start.coord_y - g2 * ln2.start.coord_x;
- // Parallel lines do not intersect.
- if (g1 - g2).abs() < EPSILON {
- return None;
- }
- // Otherwise, they intersect at this fancy calculation that
- // I found on wikipedia.
- let x = (z2 - z1) / (g1 - g2);
- Some(Point {
- coord_x: x,
- coord_y: g1 * x + z1,
- })
-}
-
-uniffi::include_scaffolding!("geometry");