Skip to content

Commit dc60909

Browse files
authored
Merge pull request #1 from calcit-lang/fix-result
fix result type in FFI
2 parents 113dc02 + bb00e3e commit dc60909

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed

calcit.cirru

Lines changed: 14 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compact.cirru

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,12 @@
2323
defn run-tests () (println "\"%%%% test for lib") (println calcit-filename calcit-dirname) (println "\"No tests...")
2424
|main! $ quote
2525
defn main! () $ run-tests
26+
|mid-f $ quote
27+
defn mid-f () $ println "\"fff222"
2628
|demo-server! $ quote
2729
defn demo-server! () $ serve-http!
2830
{} $ :port 4000
29-
fn (req) (println "\"got request" req)
31+
fn (req) (println "\"got request2" req) (mid-f)
3032
{} (:status :ok) (:code 200) (:body "\"TODO some Body")
3133
|reload! $ quote
3234
defn reload! $

src/lib.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ use std::sync::Arc;
44
use tiny_http::{Response, Server};
55

66
#[no_mangle]
7-
pub fn serve_http(args: Vec<Edn>, handler: Arc<dyn Fn(Edn) -> Edn>) -> Result<Edn, String> {
7+
pub fn serve_http(
8+
args: Vec<Edn>,
9+
handler: Arc<dyn Fn(Edn) -> Result<Edn, String>>,
10+
) -> Result<Edn, String> {
811
println!("TODO args: {:?}", args);
912
let server = Server::http("0.0.0.0:8000").unwrap();
1013

@@ -26,7 +29,7 @@ pub fn serve_http(args: Vec<Edn>, handler: Arc<dyn Fn(Edn) -> Edn>) -> Result<Ed
2629
Edn::Str(request.url().to_string()),
2730
);
2831
let info = Edn::Map(m);
29-
let result = handler(info);
32+
let result = handler(info)?;
3033

3134
let response = Response::from_string(result.to_string());
3235
request.respond(response).map_err(|x| x.to_string())?;

0 commit comments

Comments
 (0)