Mercurial > public > mercurial-scm > hg
diff rust/hg-core/src/operations/find_root.rs @ 45358:452ece5654c5
hg-core: remove the `Operation` trait
There is no way to currently define a trait which can both return references
to `self` and to passed data, which is what we would need.
Generic Associated Types may fix this and allow us to have a unified interface.
See: rust #44265
Differential Revision: https://phab.mercurial-scm.org/D8862
author | Antoine Cezar <antoine.cezar@octobus.net> |
---|---|
date | Wed, 29 Jul 2020 10:08:09 +0200 |
parents | 5965efb609b6 |
children | 3d9f1dfc52c2 |
line wrap: on
line diff
--- a/rust/hg-core/src/operations/find_root.rs Tue Aug 04 10:59:43 2020 +0200 +++ b/rust/hg-core/src/operations/find_root.rs Wed Jul 29 10:08:09 2020 +0200 @@ -1,4 +1,3 @@ -use super::Operation; use std::fmt; use std::path::{Path, PathBuf}; @@ -45,12 +44,8 @@ current_dir: Some(current_dir), } } -} -impl<'a> Operation<PathBuf> for FindRoot<'a> { - type Error = FindRootError; - - fn run(&self) -> Result<PathBuf, Self::Error> { + pub fn run(&self) -> Result<PathBuf, FindRootError> { let current_dir = match self.current_dir { None => std::env::current_dir().or_else(|e| { Err(FindRootError {