exact_poly/wasm/
validation.rs1use wasm_bindgen::prelude::*;
2
3use super::helpers::*;
4
5#[wasm_bindgen]
6pub fn is_convex(ring_flat: &[i64]) -> Result<bool, JsValue> {
7 let ring = parse_flat_ring(ring_flat)?;
8 Ok(crate::validation::is_convex(&ring))
9}
10
11#[wasm_bindgen(skip_typescript)]
12pub fn validate_edge_lengths(
13 ring_flat: &[i64],
14 config: Option<JsValue>,
15) -> Result<Option<String>, JsValue> {
16 let ring = parse_flat_ring(ring_flat)?;
17 let config = parse_config(config)?;
18 Ok(crate::validation::validate_edge_lengths(&ring, &config))
19}
20
21#[wasm_bindgen]
22pub fn perimeter_l1(ring_flat: &[i64]) -> Result<String, JsValue> {
23 let ring = parse_flat_ring(ring_flat)?;
24 Ok(crate::validation::perimeter_l1(&ring).to_string())
25}
26
27#[wasm_bindgen(skip_typescript)]
32pub fn validate_compactness(
33 twice_area: &str,
34 perimeter: &str,
35 config: Option<JsValue>,
36) -> Result<Option<String>, JsValue> {
37 let twice_area = parse_u128_str(twice_area, "twice_area")?;
38 let perimeter = parse_u128_str(perimeter, "perimeter")?;
39 let config = parse_config(config)?;
40 Ok(crate::validation::validate_compactness(
41 twice_area, perimeter, &config,
42 ))
43}
44
45#[wasm_bindgen(skip_typescript)]
52pub fn validate_part(
53 ring_flat: &[i64],
54 config: Option<JsValue>,
55) -> Result<Option<String>, JsValue> {
56 let ring = parse_flat_ring(ring_flat)?;
57 let config = parse_config(config)?;
58 Ok(crate::validation::validate_part(&ring, &config))
59}