lib.rs 422 B

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