deepwoken_reqparse/model/
reqfile.rs1use std::str::FromStr;
2
3use serde::{Deserialize, Deserializer, Serialize, de};
4
5use crate::{model::opt::OptionalGroup, parse::reqfile::Reqfile, req::Requirement};
6
7impl FromStr for Reqfile {
8 type Err = String;
9
10 fn from_str(s: &str) -> Result<Self, Self::Err> {
11 crate::parse::reqfile::parse_reqfile_str(s)
12 .map_err(|e| format!("Failed to parse requirement: {}", e))
13 }
14}
15
16impl<'de> Deserialize<'de> for Reqfile {
17 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
18 where
19 D: Deserializer<'de>,
20 {
21 let s = String::deserialize(deserializer)?;
22 s.parse().map_err(de::Error::custom)
23 }
24}