Compare commits

..

2 Commits

Author SHA1 Message Date
Tom Alexander
122adee23b
Hide the wasm module.
All checks were successful
clippy Build clippy has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
2024-01-03 23:38:04 -05:00
Tom Alexander
556afecbb8
Hide the util module. 2024-01-03 23:04:47 -05:00
8 changed files with 39 additions and 23 deletions

View File

@ -76,6 +76,8 @@ buildtest:
> cargo build --no-default-features --features compare,tracing > cargo build --no-default-features --features compare,tracing
> cargo build --no-default-features --features compare,foreign_document_test > cargo build --no-default-features --features compare,foreign_document_test
> cargo build --no-default-features --features compare,tracing,foreign_document_test > cargo build --no-default-features --features compare,tracing,foreign_document_test
> cargo build --target wasm32-unknown-unknown --profile wasm --bin wasm --no-default-features --features wasm
> cargo build --bin wasm_test --no-default-features --features wasm_test
.PHONY: foreign_document_test .PHONY: foreign_document_test
foreign_document_test: foreign_document_test:

View File

@ -1,28 +1,8 @@
use organic::parser::parse_with_settings;
use organic::settings::GlobalSettings;
use organic::wasm::ParseResult;
use organic::wasm::ToWasm;
use organic::wasm::ToWasmContext;
use wasm_bindgen::prelude::wasm_bindgen; use wasm_bindgen::prelude::wasm_bindgen;
#[wasm_bindgen] #[wasm_bindgen]
pub fn parse_org(org_contents: &str) -> wasm_bindgen::JsValue { pub fn parse_org(org_contents: &str) -> wasm_bindgen::JsValue {
let rust_parsed = match parse_with_settings(org_contents, &GlobalSettings::default()) { organic::wasm_cli::parse_org(org_contents)
Ok(document) => document,
Err(err) => {
return serde_wasm_bindgen::to_value(&ParseResult::Error(format!("{:?}", err)))
.unwrap();
}
};
let to_wasm_context = ToWasmContext::new(org_contents);
let wasm_document = match rust_parsed.to_wasm(to_wasm_context) {
Ok(document) => document,
Err(err) => {
return serde_wasm_bindgen::to_value(&ParseResult::Error(format!("{:?}", err)))
.unwrap();
}
};
serde_wasm_bindgen::to_value(&ParseResult::Success(wasm_document)).unwrap()
} }
fn main() -> Result<(), Box<dyn std::error::Error>> { fn main() -> Result<(), Box<dyn std::error::Error>> {

View File

@ -14,9 +14,11 @@ extern crate test;
pub mod compare; pub mod compare;
pub mod parse_cli; pub mod parse_cli;
#[cfg(any(feature = "compare", feature = "wasm", feature = "wasm_test"))] #[cfg(any(feature = "compare", feature = "wasm", feature = "wasm_test"))]
pub mod util; mod util;
#[cfg(any(feature = "wasm", feature = "wasm_test"))] #[cfg(any(feature = "wasm", feature = "wasm_test"))]
pub mod wasm; mod wasm;
#[cfg(any(feature = "wasm", feature = "wasm_test"))]
pub mod wasm_cli;
#[cfg(feature = "wasm_test")] #[cfg(feature = "wasm_test")]
pub mod wasm_test; pub mod wasm_test;

View File

@ -3,8 +3,12 @@ mod util;
pub use sexp::sexp; pub use sexp::sexp;
pub(crate) use sexp::unquote; pub(crate) use sexp::unquote;
#[cfg(feature = "wasm_test")]
pub(crate) use sexp::TextWithProperties; pub(crate) use sexp::TextWithProperties;
pub use sexp::Token; pub use sexp::Token;
#[cfg(feature = "compare")]
pub(crate) use util::get_emacs_standard_properties; pub(crate) use util::get_emacs_standard_properties;
#[cfg(feature = "wasm_test")]
pub(crate) use util::maybe_token_to_usize; pub(crate) use util::maybe_token_to_usize;
#[cfg(feature = "wasm_test")]
pub(crate) use util::EmacsStandardProperties; pub(crate) use util::EmacsStandardProperties;

View File

@ -61,6 +61,7 @@ impl<'s> Token<'s> {
}?) }?)
} }
#[cfg(feature = "compare")]
pub(crate) fn as_text<'p>( pub(crate) fn as_text<'p>(
&'p self, &'p self,
) -> Result<&'p TextWithProperties<'s>, Box<dyn std::error::Error>> { ) -> Result<&'p TextWithProperties<'s>, Box<dyn std::error::Error>> {

View File

@ -29,6 +29,7 @@ pub(crate) struct EmacsStandardProperties {
pub(crate) post_blank: Option<usize>, pub(crate) post_blank: Option<usize>,
} }
#[cfg(feature = "compare")]
pub(crate) fn get_emacs_standard_properties( pub(crate) fn get_emacs_standard_properties(
emacs: &Token<'_>, emacs: &Token<'_>,
) -> Result<EmacsStandardProperties, Box<dyn std::error::Error>> { ) -> Result<EmacsStandardProperties, Box<dyn std::error::Error>> {

View File

@ -66,7 +66,9 @@ mod verse_block;
pub use additional_property::AdditionalProperties; pub use additional_property::AdditionalProperties;
pub use additional_property::AdditionalPropertyValue; pub use additional_property::AdditionalPropertyValue;
pub use ast_node::WasmAstNode; pub use ast_node::WasmAstNode;
#[cfg(feature = "wasm_test")]
pub use ast_node::WasmAstNodeWrapper; pub use ast_node::WasmAstNodeWrapper;
#[cfg(feature = "wasm_test")]
pub use document::WasmDocument; pub use document::WasmDocument;
pub use parse_result::ParseResult; pub use parse_result::ParseResult;
pub(crate) use standard_properties::WasmStandardProperties; pub(crate) use standard_properties::WasmStandardProperties;

24
src/wasm_cli/mod.rs Normal file
View File

@ -0,0 +1,24 @@
use crate::parser::parse_with_settings;
use crate::settings::GlobalSettings;
use crate::wasm::ParseResult;
use crate::wasm::ToWasm;
use crate::wasm::ToWasmContext;
pub fn parse_org(org_contents: &str) -> wasm_bindgen::JsValue {
let rust_parsed = match parse_with_settings(org_contents, &GlobalSettings::default()) {
Ok(document) => document,
Err(err) => {
return serde_wasm_bindgen::to_value(&ParseResult::Error(format!("{:?}", err)))
.unwrap();
}
};
let to_wasm_context = ToWasmContext::new(org_contents);
let wasm_document = match rust_parsed.to_wasm(to_wasm_context) {
Ok(document) => document,
Err(err) => {
return serde_wasm_bindgen::to_value(&ParseResult::Error(format!("{:?}", err)))
.unwrap();
}
};
serde_wasm_bindgen::to_value(&ParseResult::Success(wasm_document)).unwrap()
}