pub use ::semver::Version;
use ::serde::Deserialize;
use ::serde::Serialize;
use crate::gen1::connect::format::GenerateInputFormat;
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)]
#[serde(deny_unknown_fields)]
pub struct AcceptedFormat {
pub apivolve_version: Version,
pub encoding: GenerateInputFormat,
}
#[cfg(test)]
mod tests {
pub use ::semver::Version;
use ::smallvec::smallvec;
use crate::gen1::connect::functionalityrequest::FunctionalityRequest;
use crate::gen1::connect::format::GenerateInputFormat;
use crate::gen1::connect::layout::GenFeature;
use crate::gen1::connect::layout::GenFeatures;
use super::*;
#[test]
fn serialize() {
let _json = serde_json::to_string(&AcceptedFormat {
apivolve_version: Version::new(1, 2, 4),
encoding: GenerateInputFormat::Json,
})
.unwrap();
let features = GenFeatures::new(smallvec![
GenFeature::Parser,
GenFeature::Parser,
GenFeature::Validator,
GenFeature::Documentation,
]);
let json = serde_json::to_string(&FunctionalityRequest {
features,
generate_parties: smallvec![], })
.unwrap();
assert_eq!(
json,
r#"{"apivolve_version":"1.2.4","features":{"features":["documentation","parser","validator"]},"encoding":"json"}"#
);
}
#[test]
fn deserialize() {
let config: AcceptedFormat = serde_json::from_str(
r#"{"apivolve_version":"1.2.4","features":{"features":[
"parser","validator"]},"encoding":"json"}"#,
)
.unwrap();
assert_eq!(
config,
AcceptedFormat {
apivolve_version: Version::new(1, 2, 4),
encoding: GenerateInputFormat::Json,
}
)
}
}