From: Ian Jackson Date: Mon, 16 May 2022 14:46:16 +0000 (+0100) Subject: W Const X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=5ce1f6467f0949e86d4bf1b66b2c0e0920c2c2e5;p=rust-experiments.git W Const --- diff --git a/src/main.rs b/src/main.rs index d8ea197..f2af6be 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,35 +1,14 @@ #![allow(dead_code)] -pub struct Microdesc; - -pub struct State { - change: Vec, -} - -pub enum NetDirChange<'a> { - AddMicrodescs(&'a mut Vec), +trait Ish { + const FIELDS: &'static [&'static str], } -pub fn netdir_add_microdesc(_: Microdesc) { } - -impl State { - pub fn get_netdir_change(&mut self) -> Option> { - Some(NetDirChange::AddMicrodescs(&mut self.change)) - } -} - -pub fn apply_netdir_changes(mut state: State) { - if let Some(change) = state.get_netdir_change() { - match change { - NetDirChange::AddMicrodescs(mds) => { - for md in mds.drain(..) { - netdir_add_microdesc(md); - } - } - } - } +struct Inner { i: usize; } +impl Ish for Inner { + const FIELDS: &'static [&'static str] = ["i"]; } -fn main() { - +fn main(){ + eprintln!("IF {:?}", Inner::FIELDS); }