그래서 저는 Rust로 프로그램을 작성하고 있습니다. 이것은 json 구성 파일을 읽고 입력에 따라 몇 가지 작업을 수행합니다. serde_json을 사용하여 json을 성공적으로 구문 분석했습니다 . 다음으로 사용자에게 허용하고 싶은 것은 몇 가지 고급 옵션을 지정할 수 있지만 입력을 구문 분석하는 방법을 모르겠습니다. 기본 json은 다음과 같습니다.
{
value: true
}
이것을 파싱하는 것은 다음과 같은 구조체로 간단합니다.
#[derive(Deserialize)]
pub struct Config {
value: bool
}
어떻게 입력 할 수 있도록 사용자에 대한 옵션을 추가하는 방법에 대한 갈 것 중 하나 bool
또는 object
같은 :
{
value: {
avanced_value: true
}
}
나는 enum
이와 같은 사용을 시도했지만 bool
열거 형 내에서 사용할 수없는 것 같습니다 .
#[derive(Deserialize)]
pub struct Config {
value: ValueEnum
}
#[derive(Deserialize)]
pub enum ValueEnum {
bool,
Config(ValueConfig),
}
#[derive(Deserialize)]
pub struct ValueConfig {
advanced_value: bool
}
분명한 것이 누락되었거나 입력 json을 재구성해야합니까? 미리 Tnx.
열거 형 변형으로 bool을 래핑하지 않았습니다 (ValueConfig에서했던 것처럼). 또한 기본적으로 serde 태그 열거 형은 아마도 원하는 것이 아닐 것입니다. 태그가 지정되지 않은 열거 형을 사용하려고합니다.
#[derive(Deserialize)]
pub struct Config {
value: ValueEnum
}
#[derive(Deserialize)]
#[serde(untagged)]
pub enum ValueEnum {
Bool(bool),
Config(ValueConfig),
}
#[derive(Deserialize)]
pub struct ValueConfig {
advanced_value: bool
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다