1 #![no_std] 2 3 /// 获取指定字段 4 /// 5 /// 当weak指针的strong count为0的时候,清除弱引用 6 #[macro_export] 7 macro_rules! get_weak_or_clear { 8 ($field:expr) => {{ 9 if let Some(x) = $field.clone() { 10 if x.strong_count() == 0 { 11 $field = None; 12 None 13 } else { 14 Some(x) 15 } 16 } else { 17 None 18 } 19 }}; 20 } 21