【发布时间】:2021-06-25 01:41:31
【问题描述】:
我在 golang 中有一个函数 -
func (s *Server) getEnforcer(handle int) (*casbin.Enforcer, error) {
if _, ok := s.enforcerMap[handle]; ok {
return s.enforcerMap[handle], nil
} else {
return nil, errors.New("enforcer not found")
}
}
我正在尝试在 rust 中实现这一点。我写了这个-
impl Server {
fn getEnforcer(&mut self, handle: i32) -> Result<Enforcer, Box<dyn Error>> {
let e: Enforcer = self.enforcerMap[&handle];
// match ..
}
}
不知道如何处理错误。
【问题讨论】:
-
什么是
enforcerMap? -
假设
enforcerMap是BTreeMap或HashMap,你会这样做:self.enforcerMap.get (handle).ok_or (Box::new (Error::new ("enforcer not found")))
标签: error-handling rust