#![no_main] use organic::parser::parse_with_settings; use organic::settings::GlobalSettings; use wasm::ParseResult; use wasm::ToWasm; use wasm::ToWasmContext; use wasm_bindgen::prelude::wasm_bindgen; mod error; mod wasm; #[wasm_bindgen] pub fn parse_org(org_contents: &str) -> wasm_bindgen::JsValue { let global_settings = GlobalSettings::default(); let to_wasm_context = ToWasmContext::new(org_contents); let rust_parsed = match parse_with_settings(org_contents, &global_settings) .map(|document| document.to_wasm(to_wasm_context)) .map(|wasm_document| match wasm_document { Ok(wasm_document) => ParseResult::Success(wasm_document), Err(err) => ParseResult::Error(format!("{:?}", err)), }) { Ok(wasm_document) => wasm_document, Err(err) => ParseResult::Error(format!("{:?}", err)), }; serde_wasm_bindgen::to_value(&rust_parsed).unwrap() }