比较RefCell <T>中包含的值

时间:2019-08-22 16:17:44

标签: rust interior-mutability

我有一个结构,其字段定义如下:

log_str: RefCell<String>

我对borrow_mut()进行了各种调用,以在现场调用push_str(.)。最后,我将使用以下方法评估其价值:

assert_eq!(os.log_str.borrow(), "<expected value>");

尽管如此,assert所在的行仍显示以下消息:

  

错误[E0369]:二进制操作==无法应用于类型std::cell::Ref<'_, std::string::String>

我理解为什么会发生错误,因为编译器甚至提示:

  

std::cmp::PartialEq可能缺少std::cell::Ref<'_, std::string::String>的实现

我的问题是:我应该如何比较RefCell<T>中包含的值(通常在这种情况下,将包含的字符串与期望值进行比较)。

谢谢!

1 个答案:

答案 0 :(得分:4)

您要取消引用borrow值:

assert_eq!(*os.log_str.borrow(), "<expected value>");