Эта игровая площадка - это способы, которые я мог бы придумать, чтобы попытаться сопоставить подсчитанное число внутренних изменяемых перечислений.Однако большинство способов создают ошибку несоответствующих типов, такую как
error[E0308]: mismatched types
--> src/main.rs:24:9
|
24 | Foo::Baz(_) => true
| ^^^^^^^^^^^ expected struct `std::rc::Rc`, found enum `Foo`
|
= note: expected type `std::rc::Rc<std::cell::RefCell<Foo>>`
found type `Foo`
или
error[E0308]: mismatched types
--> src/main.rs:30:9
|
30 | Foo::Bar(_) => false,
| ^^^^^^^^^^^ expected struct `std::cell::Ref`, found enum `Foo`
|
= note: expected type `std::cell::Ref<'_, Foo, >`
found type `Foo`
Единственный способ, который сработал, заключается в следующем:
match foo_ref.get_mut() {
Foo::Bar(_) => false,
Foo::Baz(_) => true
}
Это предполагаемый способ?Даже для доступа только для чтения?