mirror of
https://github.com/LemmyNet/lemmy.git
synced 2025-01-10 12:05:57 +00:00
Avoiding clone in map_to_enum
This commit is contained in:
parent
15f1671107
commit
43179177a0
5 changed files with 23 additions and 11 deletions
|
@ -284,7 +284,7 @@ pub trait InternalToCombinedView {
|
|||
type CombinedView;
|
||||
|
||||
/// Maps the combined DB row to an enum
|
||||
fn map_to_enum(&self) -> Option<Self::CombinedView>;
|
||||
fn map_to_enum(self) -> Option<Self::CombinedView>;
|
||||
}
|
||||
|
||||
/// Wrapper for assert_eq! macro. Checks that vec matches the given length, and prints the
|
||||
|
|
|
@ -238,7 +238,10 @@ impl PersonContentCombinedQuery {
|
|||
let res = query.load::<PersonContentViewInternal>(conn).await?;
|
||||
|
||||
// Map the query results to the enum
|
||||
let out = res.into_iter().filter_map(|u| u.map_to_enum()).collect();
|
||||
let out = res
|
||||
.into_iter()
|
||||
.filter_map(InternalToCombinedView::map_to_enum)
|
||||
.collect();
|
||||
|
||||
Ok(out)
|
||||
}
|
||||
|
@ -247,9 +250,9 @@ impl PersonContentCombinedQuery {
|
|||
impl InternalToCombinedView for PersonContentViewInternal {
|
||||
type CombinedView = PersonContentCombinedView;
|
||||
|
||||
fn map_to_enum(&self) -> Option<Self::CombinedView> {
|
||||
fn map_to_enum(self) -> Option<Self::CombinedView> {
|
||||
// Use for a short alias
|
||||
let v = self.clone();
|
||||
let v = self;
|
||||
|
||||
if let (Some(comment), Some(counts)) = (v.comment, v.comment_counts) {
|
||||
Some(PersonContentCombinedView::Comment(CommentView {
|
||||
|
|
|
@ -239,7 +239,10 @@ impl PersonSavedCombinedQuery {
|
|||
let res = query.load::<PersonContentViewInternal>(conn).await?;
|
||||
|
||||
// Map the query results to the enum
|
||||
let out = res.into_iter().filter_map(|u| u.map_to_enum()).collect();
|
||||
let out = res
|
||||
.into_iter()
|
||||
.filter_map(InternalToCombinedView::map_to_enum)
|
||||
.collect();
|
||||
|
||||
Ok(out)
|
||||
}
|
||||
|
|
|
@ -329,7 +329,10 @@ impl ReportCombinedQuery {
|
|||
let res = query.load::<ReportCombinedViewInternal>(conn).await?;
|
||||
|
||||
// Map the query results to the enum
|
||||
let out = res.into_iter().filter_map(|u| u.map_to_enum()).collect();
|
||||
let out = res
|
||||
.into_iter()
|
||||
.filter_map(InternalToCombinedView::map_to_enum)
|
||||
.collect();
|
||||
|
||||
Ok(out)
|
||||
}
|
||||
|
@ -338,9 +341,9 @@ impl ReportCombinedQuery {
|
|||
impl InternalToCombinedView for ReportCombinedViewInternal {
|
||||
type CombinedView = ReportCombinedView;
|
||||
|
||||
fn map_to_enum(&self) -> Option<Self::CombinedView> {
|
||||
fn map_to_enum(self) -> Option<Self::CombinedView> {
|
||||
// Use for a short alias
|
||||
let v = self.clone();
|
||||
let v = self;
|
||||
|
||||
if let (Some(post_report), Some(post), Some(community), Some(unread_comments), Some(counts)) = (
|
||||
v.post_report,
|
||||
|
|
|
@ -378,7 +378,10 @@ impl ModlogCombinedQuery {
|
|||
let res = query.load::<ModlogCombinedViewInternal>(conn).await?;
|
||||
|
||||
// Map the query results to the enum
|
||||
let out = res.into_iter().filter_map(|u| u.map_to_enum()).collect();
|
||||
let out = res
|
||||
.into_iter()
|
||||
.filter_map(InternalToCombinedView::map_to_enum)
|
||||
.collect();
|
||||
|
||||
Ok(out)
|
||||
}
|
||||
|
@ -387,9 +390,9 @@ impl ModlogCombinedQuery {
|
|||
impl InternalToCombinedView for ModlogCombinedViewInternal {
|
||||
type CombinedView = ModlogCombinedView;
|
||||
|
||||
fn map_to_enum(&self) -> Option<Self::CombinedView> {
|
||||
fn map_to_enum(self) -> Option<Self::CombinedView> {
|
||||
// Use for a short alias
|
||||
let v = self.clone();
|
||||
let v = self;
|
||||
|
||||
if let (Some(admin_allow_instance), Some(instance)) =
|
||||
(v.admin_allow_instance, v.instance.clone())
|
||||
|
|
Loading…
Reference in a new issue