pub struct LockJoinQuery<'a, L, R, LL, LR>{ /* private fields */ }Expand description
A join query builder for locked data structures.
Enables joining two collections of locked values.
Implementations§
Source§impl<'a, L, R, LL, LR> LockJoinQuery<'a, L, R, LL, LR>
impl<'a, L, R, LL, LR> LockJoinQuery<'a, L, R, LL, LR>
Sourcepub fn new(
left: Vec<&'a LL>,
right: Vec<&'a LR>,
) -> LockJoinQuery<'a, L, R, LL, LR>
pub fn new( left: Vec<&'a LL>, right: Vec<&'a LR>, ) -> LockJoinQuery<'a, L, R, LL, LR>
Create a new join query from two collections of locks.
Sourcepub fn inner_join<LK, RK, M, Out>(
&self,
left_key: KeyPaths<L, LK>,
right_key: KeyPaths<R, RK>,
mapper: M,
) -> Vec<Out>
pub fn inner_join<LK, RK, M, Out>( &self, left_key: KeyPaths<L, LK>, right_key: KeyPaths<R, RK>, mapper: M, ) -> Vec<Out>
Sourcepub fn left_join<LK, RK, M, Out>(
&self,
left_key: KeyPaths<L, LK>,
right_key: KeyPaths<R, RK>,
mapper: M,
) -> Vec<Out>
pub fn left_join<LK, RK, M, Out>( &self, left_key: KeyPaths<L, LK>, right_key: KeyPaths<R, RK>, mapper: M, ) -> Vec<Out>
Perform a LEFT JOIN.
Returns all left items with optional right matches.
§Example
ⓘ
let results = LockJoinQuery::new(&users, &orders)
.left_join(
User::id(),
Order::user_id(),
|user, order_opt| match order_opt {
Some(order) => format!("{} has order {}", user.name, order.id),
None => format!("{} has no orders", user.name),
}
);Sourcepub fn right_join<LK, RK, M, Out>(
&self,
left_key: KeyPaths<L, LK>,
right_key: KeyPaths<R, RK>,
mapper: M,
) -> Vec<Out>
pub fn right_join<LK, RK, M, Out>( &self, left_key: KeyPaths<L, LK>, right_key: KeyPaths<R, RK>, mapper: M, ) -> Vec<Out>
Perform a RIGHT JOIN.
Returns all right items with optional left matches.
Auto Trait Implementations§
impl<'a, L, R, LL, LR> Freeze for LockJoinQuery<'a, L, R, LL, LR>
impl<'a, L, R, LL, LR> RefUnwindSafe for LockJoinQuery<'a, L, R, LL, LR>
impl<'a, L, R, LL, LR> Send for LockJoinQuery<'a, L, R, LL, LR>
impl<'a, L, R, LL, LR> Sync for LockJoinQuery<'a, L, R, LL, LR>
impl<'a, L, R, LL, LR> Unpin for LockJoinQuery<'a, L, R, LL, LR>
impl<'a, L, R, LL, LR> UnwindSafe for LockJoinQuery<'a, L, R, LL, LR>
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
Mutably borrows from an owned value. Read more