Mercurial > hg
diff rust/hg-core/src/dirstate/entry.rs @ 48051:98c0408324e6
dirstate: Pass the final DirstateItem to _rustmap.addfile()
Now that the Python DirstateItem class wraps a Rust DirstateEntry value,
use that value directly instead of converting through v1 data + 5 booleans.
Also remove propogating the return value. None of the callers look at it,
and it is always None.
Differential Revision: https://phab.mercurial-scm.org/D11494
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Thu, 23 Sep 2021 18:29:40 +0200 |
parents | 3e69bef2031a |
children | 060cd909439f |
line wrap: on
line diff
--- a/rust/hg-core/src/dirstate/entry.rs Thu Sep 23 15:36:43 2021 +0200 +++ b/rust/hg-core/src/dirstate/entry.rs Thu Sep 23 18:29:40 2021 +0200 @@ -83,12 +83,7 @@ mtime: 0, } } else { - Self { - flags: Flags::WDIR_TRACKED | Flags::P1_TRACKED, - mode, - size, - mtime, - } + Self::new_normal(mode, size, mtime) } } EntryState::Added => Self::new_added(), @@ -111,7 +106,7 @@ } } - fn new_from_p2() -> Self { + pub fn new_from_p2() -> Self { Self { // might be missing P1_TRACKED flags: Flags::WDIR_TRACKED | Flags::P2_TRACKED | Flags::CLEAN_P2, @@ -121,7 +116,7 @@ } } - fn new_possibly_dirty() -> Self { + pub fn new_possibly_dirty() -> Self { Self { flags: Flags::WDIR_TRACKED | Flags::P1_TRACKED @@ -132,7 +127,7 @@ } } - fn new_added() -> Self { + pub fn new_added() -> Self { Self { flags: Flags::WDIR_TRACKED, mode: 0, @@ -141,7 +136,7 @@ } } - fn new_merged() -> Self { + pub fn new_merged() -> Self { Self { flags: Flags::WDIR_TRACKED | Flags::P1_TRACKED // might not be true because of rename ? @@ -153,6 +148,15 @@ } } + pub fn new_normal(mode: i32, size: i32, mtime: i32) -> Self { + Self { + flags: Flags::WDIR_TRACKED | Flags::P1_TRACKED, + mode, + size, + mtime, + } + } + /// Creates a new entry in "removed" state. /// /// `size` is expected to be zero, `SIZE_NON_NORMAL`, or @@ -161,14 +165,6 @@ Self::from_v1_data(EntryState::Removed, 0, size, 0) } - /// TODO: refactor `DirstateMap::add_file` to not take a `DirstateEntry` - /// parameter and remove this constructor - pub fn new_for_add_file(mode: i32, size: i32, mtime: i32) -> Self { - // XXX Arbitrary default value since the value is determined later - let state = EntryState::Normal; - Self::from_v1_data(state, mode, size, mtime) - } - pub fn tracked(&self) -> bool { self.flags.contains(Flags::WDIR_TRACKED) }