Get part result from default()
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 25/100
Direzione di ricerca
Start with the reproducer in testconfig.rs and main.rs, especially the blank test.toml and the confy::load_path:: call. Verify the loaded value and compare it with the Default implementations; done should mean the expected behavior for an empty file is clearly established and covered by a focused test or documentation.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Result is None when test.toml is blank. I wish to get as below, how can I do it?
Some(
Test {
sub: Some(
[
Data {
id: 2,
name: "3",
},
Data {
id: 4,
name: "5",
},
],
),
},
)
my code is here:
testconfig.rs:
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct Data {
pub id: usize,
pub name: String,
}
impl Default for Data {
fn default() -> Self {
Self {
id: 1,
name: "test1".to_string(),
}
}
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Test {
#[allow(dead_code)]
pub sub: Option<Vec<Data>>,
}
impl Default for Test {
fn default() -> Self {
Self { sub: Some(vec![Data{id:2,name: "3".to_string()}, Data{id:4, name: "5".to_string()}]) }
}
}
#[derive(Debug, Serialize, Deserialize)]
pub struct TestGlobalConfig {
#[allow(dead_code)]
pub test: Option<Test>,
}
impl Default for TestGlobalConfig {
fn default() -> Self {
Self { test: Some(Test::default()) }
}
}
main.rs:
use std::sync::RwLock;
pub mod testconfig;
use crate::testconfig::TestGlobalConfig;
lazy_static::lazy_static! {
static ref GLOBAL: RwLock<TestGlobalConfig> ={
let path = concat!(env!("CARGO_MANIFEST_DIR"),"/test.toml");
if let Ok(global_config) = confy::load_path::<TestGlobalConfig>(path) {
RwLock::new(global_config)
} else {
panic!("load config file {path:?} error!");
}
};
}
fn main() {
let binding = GLOBAL.read().unwrap();
let settings = &binding.test;
println!("{:#?}", settings);
}
- Lingua principale
- Rust
- Stelle
- 1k
- Fork
- 80
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rust-cli/confy
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 50/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Doesn't atomically save to file, resulting in possible file truncation or corruptionForse già presa @arobsn l’ha presa 229 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Tutte le issue di rust-cli/confy
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
cmlarsen/writemorebetter#158 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
-
state:triage-needed
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
scanaislop/aislop#482 ·
I maintainer di solito rispondono entro 1 giorno
-
docs(skills): issue-first should reference an existing Linear ticket instead of filing a duplicateApertadocumentation
Difficoltà 1/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno