| 192 | |
| 193 | impl RValue { |
| 194 | pub fn redact_addr(&mut self) { |
| 195 | match self { |
| 196 | Self::Unit => (), |
| 197 | Self::Prim(_) => (), |
| 198 | Self::Bytes { .. } => (), |
| 199 | Self::Ref { addr, value, .. } => { |
| 200 | *addr = RefAddr::Redacted; |
| 201 | value.redact_addr(); |
| 202 | } |
| 203 | Self::DynRef { |
| 204 | addr, |
| 205 | vtable, |
| 206 | value, |
| 207 | .. |
| 208 | } => { |
| 209 | *addr = RefAddr::Redacted; |
| 210 | *vtable = RefAddr::Redacted; |
| 211 | value.redact_addr(); |
| 212 | } |
| 213 | Self::RefCounted { addr, value, .. } => { |
| 214 | *addr = RefAddr::Redacted; |
| 215 | value.redact_addr(); |
| 216 | } |
| 217 | Self::DynRefCounted { |
| 218 | addr, |
| 219 | vtable, |
| 220 | value, |
| 221 | .. |
| 222 | } => { |
| 223 | *addr = RefAddr::Redacted; |
| 224 | *vtable = RefAddr::Redacted; |
| 225 | value.redact_addr(); |
| 226 | } |
| 227 | Self::UnresolvedRef { addr } => { |
| 228 | *addr = RefAddr::Redacted; |
| 229 | } |
| 230 | Self::Struct { fields, .. } => { |
| 231 | for value in fields.values_mut() { |
| 232 | value.redact_addr(); |
| 233 | } |
| 234 | } |
| 235 | Self::Tuple { items, .. } => { |
| 236 | for value in items.iter_mut() { |
| 237 | value.redact_addr(); |
| 238 | } |
| 239 | } |
| 240 | Self::Enum { .. } => (), |
| 241 | Self::String { .. } => (), |
| 242 | Self::Union { fields, .. } => { |
| 243 | for value in fields.values_mut() { |
| 244 | value.redact_addr(); |
| 245 | } |
| 246 | } |
| 247 | Self::Option { value, .. } => { |
| 248 | if let Some(value) = value { |
| 249 | value.redact_addr(); |
| 250 | } |
| 251 | } |