pub struct MetadataRepository;Expand description
Repository for package metadata operations.
Implementations§
Source§impl MetadataRepository
impl MetadataRepository
Sourcepub fn list_all(conn: &mut SqliteConnection) -> QueryResult<Vec<Package>>
pub fn list_all(conn: &mut SqliteConnection) -> QueryResult<Vec<Package>>
Lists all packages using Diesel DSL.
Sourcepub fn list_all_minimal(
conn: &mut SqliteConnection,
) -> QueryResult<Vec<PackageListing>>
pub fn list_all_minimal( conn: &mut SqliteConnection, ) -> QueryResult<Vec<PackageListing>>
Lists all packages with only the fields needed for display. This is much more memory-efficient than list_all for large package lists.
Sourcepub fn list_paginated(
conn: &mut SqliteConnection,
page: i64,
per_page: i64,
) -> QueryResult<Vec<Package>>
pub fn list_paginated( conn: &mut SqliteConnection, page: i64, per_page: i64, ) -> QueryResult<Vec<Package>>
Lists packages with pagination and sorting using Diesel DSL.
Sourcepub fn get_repo_name(conn: &mut SqliteConnection) -> QueryResult<Option<String>>
pub fn get_repo_name(conn: &mut SqliteConnection) -> QueryResult<Option<String>>
Gets the repository name from the database.
Sourcepub fn get_repo_etag(conn: &mut SqliteConnection) -> QueryResult<Option<String>>
pub fn get_repo_etag(conn: &mut SqliteConnection) -> QueryResult<Option<String>>
Gets the repository etag from the database.
Sourcepub fn update_repo_metadata(
conn: &mut SqliteConnection,
name: &str,
etag: &str,
) -> QueryResult<usize>
pub fn update_repo_metadata( conn: &mut SqliteConnection, name: &str, etag: &str, ) -> QueryResult<usize>
Updates the repository metadata (name and etag).
Sourcepub fn find_by_id(
conn: &mut SqliteConnection,
id: i32,
) -> QueryResult<Option<Package>>
pub fn find_by_id( conn: &mut SqliteConnection, id: i32, ) -> QueryResult<Option<Package>>
Finds a package by ID using Diesel DSL.
Sourcepub fn find_by_name(
conn: &mut SqliteConnection,
name: &str,
) -> QueryResult<Vec<Package>>
pub fn find_by_name( conn: &mut SqliteConnection, name: &str, ) -> QueryResult<Vec<Package>>
Finds packages by name (exact match) using Diesel DSL.
Sourcepub fn find_by_pkg_id(
conn: &mut SqliteConnection,
pkg_id: &str,
) -> QueryResult<Option<Package>>
pub fn find_by_pkg_id( conn: &mut SqliteConnection, pkg_id: &str, ) -> QueryResult<Option<Package>>
Finds a package by pkg_id using Diesel DSL.
Sourcepub fn find_by_query(
conn: &mut SqliteConnection,
pkg_name: Option<&str>,
pkg_id: Option<&str>,
version: Option<&str>,
) -> QueryResult<Vec<Package>>
pub fn find_by_query( conn: &mut SqliteConnection, pkg_name: Option<&str>, pkg_id: Option<&str>, version: Option<&str>, ) -> QueryResult<Vec<Package>>
Finds packages that match pkg_name and optionally pkg_id and version using Diesel DSL.
Sourcepub fn search(
conn: &mut SqliteConnection,
pattern: &str,
limit: Option<i64>,
) -> QueryResult<Vec<Package>>
pub fn search( conn: &mut SqliteConnection, pattern: &str, limit: Option<i64>, ) -> QueryResult<Vec<Package>>
Searches packages by pattern (case-insensitive LIKE query) using Diesel DSL. Searches across pkg_name and pkg_id fields.
Sourcepub fn search_case_sensitive(
conn: &mut SqliteConnection,
pattern: &str,
limit: Option<i64>,
) -> QueryResult<Vec<Package>>
pub fn search_case_sensitive( conn: &mut SqliteConnection, pattern: &str, limit: Option<i64>, ) -> QueryResult<Vec<Package>>
Searches packages (case-sensitive LIKE query) using Diesel DSL.
Sourcepub fn find_replacement_pkg_id(
conn: &mut SqliteConnection,
pkg_id: &str,
) -> QueryResult<Option<String>>
pub fn find_replacement_pkg_id( conn: &mut SqliteConnection, pkg_id: &str, ) -> QueryResult<Option<String>>
Checks if a package exists that replaces the given pkg_id. Returns the pkg_id of the replacement package if found. Uses raw SQL for JSON array search since Diesel doesn’t support json_each.
Sourcepub fn count(conn: &mut SqliteConnection) -> QueryResult<i64>
pub fn count(conn: &mut SqliteConnection) -> QueryResult<i64>
Counts total packages.
Sourcepub fn count_search(
conn: &mut SqliteConnection,
pattern: &str,
) -> QueryResult<i64>
pub fn count_search( conn: &mut SqliteConnection, pattern: &str, ) -> QueryResult<i64>
Counts packages matching a search pattern using Diesel DSL.
Sourcepub fn insert(
conn: &mut SqliteConnection,
package: &NewPackage<'_>,
) -> QueryResult<usize>
pub fn insert( conn: &mut SqliteConnection, package: &NewPackage<'_>, ) -> QueryResult<usize>
Inserts a new package.
Sourcepub fn last_insert_id(conn: &mut SqliteConnection) -> QueryResult<i32>
pub fn last_insert_id(conn: &mut SqliteConnection) -> QueryResult<i32>
Gets the last inserted package ID.
Sourcepub fn find_or_create_maintainer(
conn: &mut SqliteConnection,
contact: &str,
name: &str,
) -> QueryResult<i32>
pub fn find_or_create_maintainer( conn: &mut SqliteConnection, contact: &str, name: &str, ) -> QueryResult<i32>
Finds or creates a maintainer.
Sourcepub fn link_maintainer(
conn: &mut SqliteConnection,
package_id: i32,
maintainer_id: i32,
) -> QueryResult<usize>
pub fn link_maintainer( conn: &mut SqliteConnection, package_id: i32, maintainer_id: i32, ) -> QueryResult<usize>
Links a maintainer to a package.
Sourcepub fn get_maintainers(
conn: &mut SqliteConnection,
package_id: i32,
) -> QueryResult<Vec<Maintainer>>
pub fn get_maintainers( conn: &mut SqliteConnection, package_id: i32, ) -> QueryResult<Vec<Maintainer>>
Gets maintainers for a package.
Sourcepub fn delete_all(conn: &mut SqliteConnection) -> QueryResult<usize>
pub fn delete_all(conn: &mut SqliteConnection) -> QueryResult<usize>
Deletes all packages (for reimport).
Sourcepub fn find_filtered(
conn: &mut SqliteConnection,
pkg_name: Option<&str>,
pkg_id: Option<&str>,
version: Option<&str>,
limit: Option<i64>,
sort_by_name: Option<SortDirection>,
) -> QueryResult<Vec<Package>>
pub fn find_filtered( conn: &mut SqliteConnection, pkg_name: Option<&str>, pkg_id: Option<&str>, version: Option<&str>, limit: Option<i64>, sort_by_name: Option<SortDirection>, ) -> QueryResult<Vec<Package>>
Finds packages with flexible filtering using Diesel DSL.
Sourcepub fn find_newer_version(
conn: &mut SqliteConnection,
pkg_name: &str,
pkg_id: &str,
current_version: &str,
) -> QueryResult<Option<Package>>
pub fn find_newer_version( conn: &mut SqliteConnection, pkg_name: &str, pkg_id: &str, current_version: &str, ) -> QueryResult<Option<Package>>
Finds packages with a newer version than the given version. Used for update checking. Uses Diesel DSL with raw SQL filter for version comparison.
Sourcepub fn exists_by_pkg_id(
conn: &mut SqliteConnection,
pkg_id: &str,
) -> QueryResult<bool>
pub fn exists_by_pkg_id( conn: &mut SqliteConnection, pkg_id: &str, ) -> QueryResult<bool>
Checks if a package with the given pkg_id exists.
Sourcepub fn import_packages(
conn: &mut SqliteConnection,
metadata: &[RemotePackage],
repo_name: &str,
) -> QueryResult<()>
pub fn import_packages( conn: &mut SqliteConnection, metadata: &[RemotePackage], repo_name: &str, ) -> QueryResult<()>
Imports packages from remote metadata (JSON format).
Auto Trait Implementations§
impl Freeze for MetadataRepository
impl RefUnwindSafe for MetadataRepository
impl Send for MetadataRepository
impl Sync for MetadataRepository
impl Unpin for MetadataRepository
impl UnwindSafe for MetadataRepository
Blanket Implementations§
Source§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
Source§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read moreSource§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read moreSource§fn aggregate_filter<P>(self, f: P) -> Self::Output
fn aggregate_filter<P>(self, f: P) -> Self::Output
Source§fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoSql for T
impl<T> IntoSql for T
Source§fn into_sql<T>(self) -> Self::Expression
fn into_sql<T>(self) -> Self::Expression
self to an expression for Diesel’s query builder. Read moreSource§fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
&self to an expression for Diesel’s query builder. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more