diff --git a/Cargo.toml b/Cargo.toml index 4cc197e..7aa989f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Fluence Labs"] edition = "2018" [lib] -name = "multi_module_example" +name = "mm" path = "src/lib.rs" crate-type = ["cdylib"] diff --git a/README.md b/README.md index 62a79a1..9d8474f 100644 --- a/README.md +++ b/README.md @@ -32,15 +32,15 @@ $> module successfully registered in Frank Finally, you could execute requests inside FCE CLI: ```bush ->> execute redis SET A 1 +$> >> execute redis SET A 1 result: +OK ->> execute redis GET A +$> >> execute redis GET A result: $1 1 ->> execute sqlite CREATE VIRTUAL TABLE users USING FTS5(body) +$> >> execute sqlite CREATE VIRTUAL TABLE users USING FTS5(body) result: OK ->> execute sqlite INSERT INTO users(body) VALUES('AB'), ('BC'), ('CD'), ('DE') +$> >> execute sqlite INSERT INTO users(body) VALUES('AB'), ('BC'), ('CD'), ('DE') result: OK ->> execute sqlite SELECT * FROM users WHERE users MATCH 'A* OR B*' +$> >> execute sqlite SELECT * FROM users WHERE users MATCH 'A* OR B*' result: AB|BC ``` diff --git a/src/lib.rs b/src/lib.rs index 445920e..ba13a66 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,18 +4,24 @@ fn init() { logger::WasmLogger::init_with_level(log::Level::Info).unwrap(); } -#[invocation_handler(init_fn = init, side_modules = (sqlite, redis))] +#[invocation_handler(init_fn = init, side_modules = (redis, sqlite))] fn run(arg: String) -> Vec { let cmd: Vec<_> = arg.split(" ").collect(); if cmd.len() < 2 { - return "incorrect command".as_bytes().to_vec(); + return "please specify module and argument".as_bytes().to_vec(); } let arg = cmd[1..].join(" "); match cmd[0] { - "redis" => redis::call(arg.as_bytes()), - "sqlite" => sqlite::call(arg.as_bytes()), + "redis" => { + log::info!("calling redis"); + redis::call(arg.as_bytes()) + }, + "sqlite" => { + log::info!("calling sqlite"); + sqlite::call(arg.as_bytes()) + }, _ => "unknown_command".as_bytes().to_vec(), } }