Skip to main content

oxmpl_js/base/
planner.rs

1// Copyright (c) 2025 Ross Gardiner, Junior Sundar
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
5use oxmpl::base::planner::PlannerConfig;
6use wasm_bindgen::prelude::*;
7
8#[wasm_bindgen(js_name = PlannerConfig)]
9pub struct JsPlannerConfig {
10    seed: Option<u64>,
11}
12
13#[wasm_bindgen(js_class = PlannerConfig)]
14impl JsPlannerConfig {
15    #[wasm_bindgen(constructor)]
16    pub fn new(seed: Option<f64>) -> Self {
17        Self {
18            seed: seed.map(|s| s as u64),
19        }
20    }
21}
22
23impl From<&JsPlannerConfig> for PlannerConfig {
24    fn from(js_planner_config: &JsPlannerConfig) -> Self {
25        PlannerConfig {
26            seed: (js_planner_config.seed),
27        }
28    }
29}