Working on solution to Rocket state problem
This commit is contained in:
parent
9379485713
commit
ae02391270
14
src/main.rs
14
src/main.rs
@ -38,6 +38,8 @@ include!(concat!(env!("OUT_DIR"), "/static.rs"));
|
|||||||
#[link_args="-ltinfo"]
|
#[link_args="-ltinfo"]
|
||||||
extern { }
|
extern { }
|
||||||
|
|
||||||
|
type PLIGenerator = Box<Fn() -> Box<ProgrammingLanguageInterface>>;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let languages: Vec<Box<ProgrammingLanguageInterface>> =
|
let languages: Vec<Box<ProgrammingLanguageInterface>> =
|
||||||
vec![
|
vec![
|
||||||
@ -45,6 +47,16 @@ fn main() {
|
|||||||
Box::new(maaru_lang::Maaru::new()),
|
Box::new(maaru_lang::Maaru::new()),
|
||||||
Box::new(robo_lang::Robo::new()),
|
Box::new(robo_lang::Robo::new()),
|
||||||
];
|
];
|
||||||
|
let languages2: Vec<Box<ProgrammingLanguageInterface>> =
|
||||||
|
vec![
|
||||||
|
Box::new(schala_lang::Schala::new()),
|
||||||
|
Box::new(maaru_lang::Maaru::new()),
|
||||||
|
Box::new(robo_lang::Robo::new()),
|
||||||
|
];
|
||||||
|
|
||||||
|
let func = Box::new(|| { let x: Box<ProgrammingLanguageInterface> = Box::new(schala_lang::Schala::new()); x });
|
||||||
|
|
||||||
|
webapp::web_main(languages2, func);
|
||||||
schala_main(languages);
|
schala_main(languages);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,7 +80,7 @@ fn schala_main(languages: Vec<Box<ProgrammingLanguageInterface>>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if option_matches.opt_present("webapp") {
|
if option_matches.opt_present("webapp") {
|
||||||
webapp::web_main(languages);
|
//webapp::web_main(languages);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ use rocket_contrib::Json;
|
|||||||
use schala_lang;
|
use schala_lang;
|
||||||
use language::{ProgrammingLanguageInterface, EvalOptions};
|
use language::{ProgrammingLanguageInterface, EvalOptions};
|
||||||
use WEBFILES;
|
use WEBFILES;
|
||||||
|
use ::PLIGenerator;
|
||||||
|
|
||||||
#[get("/")]
|
#[get("/")]
|
||||||
fn index() -> Content<String> {
|
fn index() -> Content<String> {
|
||||||
@ -38,6 +38,6 @@ fn interpreter_input(input: Json<Input>) -> Json<Output> {
|
|||||||
Json(Output { text: code_output.to_string() })
|
Json(Output { text: code_output.to_string() })
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn web_main(languages: Vec<Box<ProgrammingLanguageInterface>>) {
|
pub fn web_main(language_generators: Vec<Box<ProgrammingLanguageInterface>>, func: PLIGenerator) {
|
||||||
rocket::ignite().mount("/", routes![index, js_bundle, interpreter_input]).launch();
|
rocket::ignite().mount("/", routes![index, js_bundle, interpreter_input]).launch();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user