-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.rs
76 lines (59 loc) · 2.01 KB
/
main.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
use actix_web::{get, web::Path, App, HttpServer, Responder};
use rhai::Engine;
#[get("/multiply/{num1}/{num2}")]
async fn multiply(path: Path<(i64, i64)>) -> impl Responder {
let (num1, num2) = path.into_inner();
let mut engine = Engine::new();
engine.register_fn("num1", move || num1);
engine.register_fn("num2", move || num2);
match engine.eval_file::<i64>("src/multiply.rhai".into()) {
Ok(result) => format!("{}", result),
Err(e) => format!("Error: {}", e),
}
}
#[get("/add/{num1}/{num2}")]
async fn add(path: Path<(i64, i64)>) -> impl Responder {
let (num1, num2) = path.into_inner();
let mut engine = Engine::new();
engine.register_fn("num1", move || num1);
engine.register_fn("num2", move || num2);
match engine.eval_file::<i64>("src/add.rhai".into()) {
Ok(result) => format!("{}", result),
Err(e) => format!("Error: {}", e),
}
}
#[get("/subtract/{num1}/{num2}")]
async fn subtract(path: Path<(i64, i64)>) -> impl Responder {
let (num1, num2) = path.into_inner();
let mut engine = Engine::new();
engine.register_fn("num1", move || num1);
engine.register_fn("num2", move || num2);
match engine.eval_file::<i64>("src/subtract.rhai".into()) {
Ok(result) => format!("{}", result),
Err(e) => format!("Error: {}", e),
}
}
#[get("/divide/{num1}/{num2}")]
async fn divide(path: Path<(i64, i64)>) -> impl Responder {
let (num1, num2) = path.into_inner();
let mut engine = Engine::new();
engine.register_fn("num1", move || num1);
engine.register_fn("num2", move || num2);
match engine.eval_file::<i64>("src/divide.rhai".into()) {
Ok(result) => format!("{}", result),
Err(e) => format!("Error: {}", e),
}
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
App::new()
.service(multiply)
.service(add)
.service(subtract)
.service(divide)
})
.bind(("127.0.0.1", 8080))?
.run()
.await
}