mirror of
https://github.com/MeiK2333/river.git
synced 2025-09-26 22:49:11 +08:00
添加获取语言配置接口
This commit is contained in:
parent
085818abc1
commit
e14068cff4
@ -3,6 +3,20 @@ package river;
|
||||
|
||||
service River {
|
||||
rpc Judge(stream JudgeRequest) returns (stream JudgeResponse) {}
|
||||
rpc LanguageConfig(Empty) returns (LanguageConfigResponse) {}
|
||||
}
|
||||
|
||||
message Empty {
|
||||
}
|
||||
|
||||
message LanguageItem {
|
||||
string language = 1;
|
||||
string compile = 2;
|
||||
string run = 3;
|
||||
}
|
||||
|
||||
message LanguageConfigResponse {
|
||||
repeated LanguageItem languages = 1;
|
||||
}
|
||||
|
||||
message CompileData {
|
||||
|
22
src/main.rs
22
src/main.rs
@ -7,7 +7,9 @@ use futures_core::Stream;
|
||||
use log4rs;
|
||||
use river::judge_request::Data;
|
||||
use river::river_server::{River, RiverServer};
|
||||
use river::{JudgeRequest, JudgeResponse, JudgeResultEnum};
|
||||
use river::{
|
||||
Empty, JudgeRequest, JudgeResponse, JudgeResultEnum, LanguageConfigResponse, LanguageItem,
|
||||
};
|
||||
use std::pin::Pin;
|
||||
use tempfile::tempdir_in;
|
||||
use tonic::transport::Server;
|
||||
@ -103,6 +105,24 @@ impl River for RiverService {
|
||||
|
||||
Ok(Response::new(Box::pin(output) as Self::JudgeStream))
|
||||
}
|
||||
|
||||
async fn language_config(
|
||||
&self,
|
||||
_request: Request<Empty>,
|
||||
) -> Result<Response<LanguageConfigResponse>, Status> {
|
||||
let mut languages: Vec<LanguageItem> = vec![];
|
||||
for (key, value) in &config::CONFIG.languages {
|
||||
languages.push(LanguageItem {
|
||||
language: String::from(key),
|
||||
compile: String::from(&value.compile_cmd),
|
||||
run: String::from(&value.run_cmd),
|
||||
});
|
||||
}
|
||||
let response = LanguageConfigResponse {
|
||||
languages: languages,
|
||||
};
|
||||
Ok(Response::new(response))
|
||||
}
|
||||
}
|
||||
|
||||
#[tokio::main]
|
||||
|
Loading…
Reference in New Issue
Block a user