wasm object interaction test
This commit is contained in:
@@ -1,10 +1,28 @@
|
||||
use wasm_bindgen::prelude::*;
|
||||
|
||||
use crate::{solver, word_list::WordList};
|
||||
|
||||
#[wasm_bindgen]
|
||||
extern "C" {
|
||||
fn alert(s: &str);
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn greet() {
|
||||
alert("Hello, wasm-on-web!");
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
struct Solver(solver::Solver);
|
||||
|
||||
#[wasm_bindgen]
|
||||
impl Solver {
|
||||
pub fn new() -> Solver {
|
||||
let wl = WordList::from(["test", "yooo"].iter());
|
||||
Solver(solver::Solver::from_single_word_list(wl))
|
||||
}
|
||||
|
||||
pub fn stats(&self) -> String {
|
||||
self.0.tabular_format()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,18 @@ pub struct WordList {
|
||||
words: HashSet<String>,
|
||||
}
|
||||
|
||||
impl<I, S> From<I> for WordList
|
||||
where
|
||||
I: Iterator<Item = S>,
|
||||
S: AsRef<str>,
|
||||
{
|
||||
fn from(value: I) -> Self {
|
||||
WordList {
|
||||
words: value.into_iter().map(|s| s.as_ref().to_owned()).collect(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl WordList {
|
||||
pub fn len(&self) -> usize {
|
||||
self.words.len()
|
||||
|
||||
Reference in New Issue
Block a user