Skip to content

Commit a2da992

Browse files
committed
doc: add basic example usage
1 parent 2a8e28d commit a2da992

3 files changed

Lines changed: 60 additions & 0 deletions

File tree

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ cgroups-rs = "0.5.0"
1717
nix = { version = "0.30.1", default-features = false, features = ["signal"] }
1818
state-shift = "2.1.1"
1919
uuid = { version = "1.19.0", features = ["v4", "fast-rng"] }
20+
21+
[dev-dependencies]
22+
rand = "0.9.2"

examples/basic.rs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
use std::time::Duration;
2+
3+
use byte_unit::Byte;
4+
use judge_runner::{Judge, Resource, language};
5+
6+
fn main() {
7+
let checker_code = r#"
8+
import sys
9+
n = int(input())
10+
res = int(input())
11+
12+
if n == res:
13+
sys.exit(0)
14+
else:
15+
sys.exit(1)
16+
"#;
17+
let code = r#"
18+
#include<bits/stdc++.h>
19+
20+
using namespace std;
21+
22+
int main() {
23+
int n;
24+
cin >> n;
25+
cout << n << endl;
26+
}
27+
"#;
28+
29+
let checker = Judge::builder()
30+
.main(checker_code.as_bytes(), language::PYTHON)
31+
.build()
32+
.unwrap()
33+
.compile()
34+
.unwrap()
35+
.unwrap()
36+
.read_executable()
37+
.unwrap();
38+
39+
let judge = Judge::builder()
40+
.checker(&checker, language::PYTHON)
41+
.main(code.as_bytes(), language::CPP)
42+
.build()
43+
.unwrap();
44+
let judge = judge.compile().unwrap().unwrap();
45+
46+
let input = rand::random::<i32>().to_string();
47+
let resource = Resource {
48+
memory: Byte::MEGABYTE,
49+
..Default::default()
50+
};
51+
let time_limit = Duration::from_secs(1);
52+
let verdict = judge
53+
.run(input.as_bytes(), false, resource, time_limit)
54+
.unwrap();
55+
println!("{:?}", verdict);
56+
}

0 commit comments

Comments
 (0)