#![allow(dead_code)]
-pub struct Microdesc;
-
-pub struct State {
- change: Vec<Microdesc>,
-}
-
-pub enum NetDirChange<'a> {
- AddMicrodescs(&'a mut Vec<Microdesc>),
+trait Ish {
+ const FIELDS: &'static [&'static str],
}
-pub fn netdir_add_microdesc(_: Microdesc) { }
-
-impl State {
- pub fn get_netdir_change(&mut self) -> Option<NetDirChange<'_>> {
- 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);
}