leaflet/renderer/
mod.rs

1mod canvas;
2mod svg;
3
4use crate::Layer;
5
6use wasm_bindgen::prelude::*;
7
8#[wasm_bindgen]
9extern "C" {
10    /// Base class for vector renderers.
11    ///
12    /// This is the base class that all vector renderers inherit from.
13    /// Inherits from `Layer` and provides common functionality for rendering vector graphics.
14    /// This is equivalent to `L.Renderer` in JavaScript Leaflet.
15    ///
16    /// Inheritance hierarchy: `Evented` -> `Layer` -> `Renderer`
17    #[wasm_bindgen(extends = Layer)]
18    #[derive(Debug, Clone)]
19    pub type Renderer;
20
21}
22
23pub use canvas::{Canvas, CanvasOptions};
24pub use svg::{Svg, SvgOptions};
25
26#[cfg(test)]
27mod tests {
28    use super::*;
29    use wasm_bindgen_test::*;
30
31    wasm_bindgen_test_configure!(run_in_browser);
32
33    #[wasm_bindgen_test]
34    fn svg_renderer_creation() {
35        // Test default SVG renderer creation
36        let svg = Svg::new();
37        assert!(svg.is_instance_of::<Svg>());
38    }
39
40    #[wasm_bindgen_test]
41    fn svg_renderer_with_options() {
42        // Test SVG renderer with custom options
43        let options = SvgOptions::default();
44        options.set_padding(0.1);
45        options.set_tolerance(5.0);
46
47        let svg = Svg::with_options(&options);
48        assert!(svg.is_instance_of::<Svg>());
49    }
50
51    #[wasm_bindgen_test]
52    fn canvas_renderer_creation() {
53        // Test default Canvas renderer creation
54        let canvas = Canvas::new();
55        assert!(canvas.is_instance_of::<Canvas>());
56    }
57
58    #[wasm_bindgen_test]
59    fn canvas_renderer_with_options() {
60        // Test Canvas renderer with custom options
61        let options = CanvasOptions::default();
62        options.set_padding(0.05);
63        options.set_tolerance(3.0);
64
65        let canvas = Canvas::with_options(&options);
66        assert!(canvas.is_instance_of::<Canvas>());
67    }
68}