Skip to content

Commit 65c1257

Browse files
committed
Removed clone that was not needed, import and made a macro for duplicate code
1 parent c3dec97 commit 65c1257

File tree

2 files changed

+20
-23
lines changed

2 files changed

+20
-23
lines changed

src/cluster/pager.rs

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,21 @@ impl<
9494
}
9595
}
9696

97+
macro_rules! body_to_rows {
98+
($body: ident, $this: ident) => {{
99+
let metadata_res: error::Result<RowsMetadata> = $body
100+
.as_rows_metadata()
101+
.ok_or("Pager query should yield a vector of rows".into());
102+
let metadata = metadata_res?;
103+
104+
$this.pager_state.has_more_pages =
105+
Some(RowsMetadataFlag::has_has_more_pages(metadata.flags));
106+
$this.pager_state.cursor = metadata.paging_state;
107+
$body.into_rows()
108+
.ok_or("Pager query should yield a vector of rows".into())
109+
}};
110+
}
111+
97112
pub struct QueryPager<'a, Q: ToString, P: 'a> {
98113
pager: &'a mut P,
99114
pub pager_state: PagerState,
@@ -128,16 +143,7 @@ impl<
128143
.query_with_params(self.query.to_string(), params.finalize())
129144
.and_then(|frame| frame.get_body())?;
130145

131-
let metadata_res: error::Result<RowsMetadata> = body
132-
.as_rows_metadata()
133-
.ok_or("Pager query should yield a vector of rows".into());
134-
let metadata = metadata_res?;
135-
136-
self.pager_state.has_more_pages =
137-
Some(RowsMetadataFlag::has_has_more_pages(metadata.flags.clone()));
138-
self.pager_state.cursor = metadata.paging_state.clone();
139-
body.into_rows()
140-
.ok_or("Pager query should yield a vector of rows".into())
146+
body_to_rows!(body, self)
141147
}
142148

143149
pub fn has_more(&self) -> bool {
@@ -166,8 +172,9 @@ impl<
166172
{
167173
pub fn next(&mut self) -> error::Result<Vec<Row>> {
168174
let mut params = QueryParamsBuilder::new().page_size(self.pager.page_size);
169-
if self.pager_state.cursor.is_some() {
170-
params = params.paging_state(self.pager_state.cursor.clone().unwrap());
175+
176+
if let Some(cursor) = &self.pager_state.cursor {
177+
params = params.paging_state(cursor.clone());
171178
}
172179

173180
let body = self
@@ -176,16 +183,7 @@ impl<
176183
.exec_with_params(self.query, params.finalize())
177184
.and_then(|frame| frame.get_body())?;
178185

179-
let metadata_res: error::Result<RowsMetadata> = body
180-
.as_rows_metadata()
181-
.ok_or("Pager query should yield a vector of rows".into());
182-
let metadata = metadata_res?;
183-
184-
self.pager_state.has_more_pages =
185-
Some(RowsMetadataFlag::has_has_more_pages(metadata.flags.clone()));
186-
self.pager_state.cursor = metadata.paging_state.clone();
187-
body.into_rows()
188-
.ok_or("Pager query should yield a vector of rows".into())
186+
body_to_rows!(body, self)
189187
}
190188

191189
pub fn has_more(&self) -> bool {

src/transport.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ use std::io::{Read, Write};
1818
use std::net;
1919
use std::net::TcpStream;
2020
use std::time::Duration;
21-
use std::sync::Arc;
2221

2322
// TODO [v 2.x.x]: CDRSTransport: ... + BufReader + ButWriter + ...
2423
///General CDRS transport trait. Both [`TranportTcp`][transportTcp]

0 commit comments

Comments
 (0)