pub struct Catalog { /* private fields */ }Expand description
Read-only catalog of every make and model present in the lookup data.
Useful for populating dropdowns, validators, or schema-typed enum columns
in webapps. Combines the vPIC pattern-derived index (make_models) with the
EU/global rip catalog (eu_brand_models, eu_engines) for non-US coverage.
Implementations§
Source§impl Catalog
impl Catalog
Sourcepub fn new() -> Result<Self>
pub fn new() -> Result<Self>
Open the catalog using the default data directory (see crate::Decoder::new).
Sourcepub fn open(dir: &Path) -> Result<Self>
pub fn open(dir: &Path) -> Result<Self>
Open the catalog against an explicit data directory. EU rip tables are
optional — they’re only loaded if the corresponding .fst files exist.
Sourcepub fn make_count(&self) -> u64
pub fn make_count(&self) -> u64
Total number of distinct makes.
Sourcepub fn models_for_make(&self, make: &str) -> Vec<String>
pub fn models_for_make(&self, make: &str) -> Vec<String>
Sorted list of model names known for the given make (case-insensitive lookup).
Merges results from the vPIC pattern-derived index and the EU/global rip catalog, deduped and sorted.
Sourcepub fn eu_models_for(&self, brand: &str) -> Vec<EuModelRow>
pub fn eu_models_for(&self, brand: &str) -> Vec<EuModelRow>
EU/global rip listing of models for the given brand, with year ranges. Returns an empty vec when the brand is unknown or the EU catalog is not embedded.
Sourcepub fn engines_for_brand(&self, brand: &str) -> Vec<EngineRow>
pub fn engines_for_brand(&self, brand: &str) -> Vec<EngineRow>
Engine variants known for the given brand. Filter by model in user
code, or use Catalog::engines_for.
Sourcepub fn engines_for(&self, brand: &str, model: &str) -> Vec<EngineRow>
pub fn engines_for(&self, brand: &str, model: &str) -> Vec<EngineRow>
Engine variants known for (brand, model). Both args are matched
case-insensitively against the canonical uppercase keys.
Sourcepub fn body_classes() -> &'static [BodyClass]
pub fn body_classes() -> &'static [BodyClass]
Static list of every BodyClass variant — useful for typed dropdowns.
Sourcepub fn fuel_types() -> &'static [FuelType]
pub fn fuel_types() -> &'static [FuelType]
Static list of every FuelType variant — useful for typed dropdowns.
Auto Trait Implementations§
impl Freeze for Catalog
impl RefUnwindSafe for Catalog
impl Send for Catalog
impl Sync for Catalog
impl Unpin for Catalog
impl UnsafeUnpin for Catalog
impl UnwindSafe for Catalog
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> 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> 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.