agdb/query_builder/
select_aliases.rs

1use crate::QueryIds;
2use crate::SearchQuery;
3use crate::SelectAliasesQuery;
4use crate::SelectAllAliasesQuery;
5use crate::query_builder::search::Search;
6
7/// Select aliases builder.
8#[cfg_attr(feature = "api", derive(agdb::ApiDefImpl))]
9pub struct SelectAliases(pub SelectAliasesQuery);
10
11/// Final builder that lets you create
12/// an actual query object.
13#[cfg_attr(feature = "api", derive(agdb::ApiDefImpl))]
14pub struct SelectAliasesIds(pub SelectAliasesQuery);
15
16#[cfg_attr(feature = "api", agdb::impl_def())]
17impl SelectAliases {
18    /// An id or list of ids or search query to select aliases of.
19    /// All ids specified must exist in the database.
20    pub fn ids<T: Into<QueryIds>>(mut self, ids: T) -> SelectAliasesIds {
21        self.0.0 = ids.into();
22
23        SelectAliasesIds(self.0)
24    }
25
26    /// Select using the result of a search query as ids.
27    /// Equivalent to `ids(QueryBuilder::search()/* ... */)`.
28    pub fn search(mut self) -> Search<SelectAliasesQuery> {
29        self.0.0 = QueryIds::Search(SearchQuery::new());
30        Search(self.0)
31    }
32
33    /// Returns the built `SelectAllAliases` object.
34    pub fn query(self) -> SelectAllAliasesQuery {
35        SelectAllAliasesQuery {}
36    }
37}
38
39#[cfg_attr(feature = "api", agdb::impl_def())]
40impl SelectAliasesIds {
41    /// Returns the built `SelectAllAliases` object.
42    pub fn query(self) -> SelectAliasesQuery {
43        self.0
44    }
45}