Skip to main content

deepwoken_reqparse/model/
reqfile.rs

1use 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}