pub struct VinRuleRow {
pub remainder: String,
pub make: String,
pub model: String,
}Expand description
Per-VIN rule keyed by 3-char WMI in the wmi_rules table. Each rule
supplies a VDS-prefix remainder (matched against vin[3..]) plus optional
make / model overrides. Empty strings mean “leave the existing value”.
The build pipeline pre-sorts a WMI’s rules by remainder.len() DESC so the
decoder can do longest-prefix-match by walking the list and picking the
first hit. A row with empty remainder acts as a fallback that fires for
any VIN sharing the WMI (handy for fixing mislabeled WMI → make mappings
from upstream sources without losing valid model-specific overrides).
Fields§
§remainder: StringVDS prefix appended after the WMI (e.g. "ZZZ8X"); empty matches all.
make: StringMake override (uppercase canonical, matches eu_brand_models keys);
empty string means keep the make resolved from wmi_make.
model: StringModel override; empty string means leave model unset (let pattern decode handle it).
Trait Implementations§
Source§impl Archive for VinRuleRow
impl Archive for VinRuleRow
Source§const COPY_OPTIMIZATION: CopyOptimization<Self>
const COPY_OPTIMIZATION: CopyOptimization<Self>
serialize. Read moreSource§type Archived = ArchivedVinRuleRow
type Archived = ArchivedVinRuleRow
Source§type Resolver = VinRuleRowResolver
type Resolver = VinRuleRowResolver
Source§impl Clone for VinRuleRow
impl Clone for VinRuleRow
Source§fn clone(&self) -> VinRuleRow
fn clone(&self) -> VinRuleRow
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 VinRuleRow
impl Debug for VinRuleRow
Source§impl<__D: Fallible + ?Sized> Deserialize<VinRuleRow, __D> for Archived<VinRuleRow>
impl<__D: Fallible + ?Sized> Deserialize<VinRuleRow, __D> for Archived<VinRuleRow>
Source§fn deserialize(
&self,
deserializer: &mut __D,
) -> Result<VinRuleRow, <__D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut __D, ) -> Result<VinRuleRow, <__D as Fallible>::Error>
Source§impl PartialEq for VinRuleRow
impl PartialEq for VinRuleRow
Source§fn eq(&self, other: &VinRuleRow) -> bool
fn eq(&self, other: &VinRuleRow) -> bool
self and other values to be equal, and is used by ==.Source§impl Saveable for VinRuleRow
impl Saveable for VinRuleRow
impl Eq for VinRuleRow
impl RkyvDe<VinRuleRow> for ArchivedVinRuleRow
impl RkyvSer for VinRuleRow
impl StructuralPartialEq for VinRuleRow
Auto Trait Implementations§
impl Freeze for VinRuleRow
impl RefUnwindSafe for VinRuleRow
impl Send for VinRuleRow
impl Sync for VinRuleRow
impl Unpin for VinRuleRow
impl UnsafeUnpin for VinRuleRow
impl UnwindSafe for VinRuleRow
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
Source§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
Archive, it may be
unsized. Read moreSource§fn archived_metadata(
&self,
) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
fn archived_metadata( &self, ) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
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
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§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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.