agentics_domain/models/challenge/
datasets.rs1use serde::{Deserialize, Serialize};
4
5use crate::models::paths::BundleRelativePath;
6
7use super::serde_helpers::{required_nullable, required_nullable_schema};
8
9#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
11#[serde(deny_unknown_fields)]
12pub struct DatasetsSpec {
13 pub public_dir: BundleRelativePath,
15 #[serde(deserialize_with = "required_nullable")]
17 #[schemars(
18 required,
19 schema_with = "required_nullable_schema::<BundleRelativePath>"
20 )]
21 pub private_benchmark_dir: Option<BundleRelativePath>,
22 pub public_policy: crate::models::evaluation::ScoreVisibility,
24 pub private_benchmark_policy: PrivateBenchmarkPolicy,
26 pub private_benchmark_enabled: bool,
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
32#[serde(deny_unknown_fields)]
33pub struct PublicDatasetsSpec {
34 pub public_dir: BundleRelativePath,
36 pub public_policy: crate::models::evaluation::ScoreVisibility,
38 pub private_benchmark_policy: PrivateBenchmarkPolicy,
40 pub private_benchmark_enabled: bool,
42}
43
44#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)]
46#[serde(rename_all = "snake_case")]
47pub enum PrivateBenchmarkPolicy {
48 ScoreOnly,
49}