mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2026-10-04 21:04:08 +00:00
28 lines
528 B
Rust
28 lines
528 B
Rust
use std::rc::Rc;
|
|||
|
|
|
||
|
|
use wasm_bindgen::prelude::*;
|
||
|
|
|
||
|
|
use crate::{stack::Stack, types::GPXFile};
|
||
|
|
|
||
|
|
#[wasm_bindgen]
|
||
|
|
pub struct Controller {
|
||
|
|
stack: Stack,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[wasm_bindgen]
|
||
|
|
impl Controller {
|
||
|
|
#[wasm_bindgen(constructor)]
|
||
|
|
pub fn new() -> Self {
|
||
|
|
Self {
|
||
|
|
stack: Stack::default(),
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
#[wasm_bindgen]
|
||
|
|
pub fn create_file(&mut self, name: &str) {
|
||
|
|
let id = self.stack.get_new_file_id();
|
||
|
|
let file = Rc::new(GPXFile::new(id, name));
|
||
|
|
self.stack.update(&[file]);
|
||
|
|
}
|
||
|
|
}
|