pub struct CppReconcileGroupKey {
pub member_identifier: String,
pub owner_terminal: Option<String>,
}Expand description
Which candidates one reconcile group covers: a member identifier, and the terminal owner component that #1566’s pre-filter admits.
This – not the queried fq name – is the unit reconciliation is a function
of, and keying the memo by it is the #1908 fix. The old key was the queried
fq name, so a bare identifier that 1,277 distinct owners answer produced
1,277 distinct keys, none of which ever hit, each re-running the identical
lookup_candidates_by_identifier store read and re-scanning the identical
2,898-candidate set: 3.70M candidate evaluations for one request.
The owner terminal stays in the key rather than being dropped for a plain
per-identifier map. Dropping it would mean reconciling every same-named
candidate in the workspace on the first query for that identifier, which is
exactly the cost #1566 removed – chromium paid ~75 s per member query that
way. reconcile_skips_same_named_members_of_unrelated_classes_1566 pins it.
Fields§
§member_identifier: StringThe queried name’s terminal segment: the member identifier the persisted identifier index is probed with.
owner_terminal: Option<String>The terminal component of the queried name’s penultimate segment, or
None for a single-segment (bare) query, where #1566’s pre-filter is
inert and every candidate has to be reconciled.
Trait Implementations§
Source§impl Clone for CppReconcileGroupKey
impl Clone for CppReconcileGroupKey
Source§fn clone(&self) -> CppReconcileGroupKey
fn clone(&self) -> CppReconcileGroupKey
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CppReconcileGroupKey
impl Debug for CppReconcileGroupKey
impl Eq for CppReconcileGroupKey
Source§impl Hash for CppReconcileGroupKey
impl Hash for CppReconcileGroupKey
Source§impl PartialEq for CppReconcileGroupKey
impl PartialEq for CppReconcileGroupKey
impl StructuralPartialEq for CppReconcileGroupKey
Auto Trait Implementations§
impl Freeze for CppReconcileGroupKey
impl RefUnwindSafe for CppReconcileGroupKey
impl Send for CppReconcileGroupKey
impl Sync for CppReconcileGroupKey
impl Unpin for CppReconcileGroupKey
impl UnsafeUnpin for CppReconcileGroupKey
impl UnwindSafe for CppReconcileGroupKey
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more