Skip to main content

oxmpl_js/base/
real_vector_state.rs

1// Copyright (c) 2025 Junior Sundar
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
5use std::sync::Arc;
6
7use oxmpl::base::state::RealVectorState as OxmplRealVectorState;
8use wasm_bindgen::prelude::*;
9
10#[wasm_bindgen(js_name = RealVectorState)]
11pub struct JsRealVectorState {
12    #[wasm_bindgen(skip)]
13    pub inner: Arc<OxmplRealVectorState>,
14}
15
16#[wasm_bindgen(js_class = RealVectorState)]
17impl JsRealVectorState {
18    #[wasm_bindgen(constructor)]
19    pub fn new(values: Vec<f64>) -> Self {
20        let state = OxmplRealVectorState::new(values);
21        Self {
22            inner: Arc::new(state),
23        }
24    }
25
26    #[wasm_bindgen(getter)]
27    pub fn values(&self) -> Vec<f64> {
28        self.inner.values.clone()
29    }
30}