pub struct Cursor { /* private fields */ }Expand description
Cursor allows to get all values from a statement page by page.
QLDB returns 200 documents for each page.
You don’t need to directly use Cursor in your code. When the method uses Cursor internally in order to load all values.
use qldb::{QldbClient, Cursor};
let client = QldbClient::default("rust-crate-test", 200).await?;
let mut value_to_insert = HashMap::new();
// This will insert a documents with a key "test_column"
// with the value "IonValue::String(test_value)"
value_to_insert.insert("test_column", "test_value");
client
.transaction_within(|client| async move {
let mut cursor = client
.query("SEL/CT * FROM TestTable")
.get_cursor()?;
while let Some(mut values) = cursor.load_more().await? {
println!("{:?}", values);
}
Ok(())
})
.await?;Implementations§
Source§impl Cursor
impl Cursor
Sourcepub async fn load_more(&mut self) -> QldbResult<Option<DocumentCollection>>
pub async fn load_more(&mut self) -> QldbResult<Option<DocumentCollection>>
It loads the next page from a query. It automatically tracks the next_page_token, so you can call this method again and again in order to load all pages.
It returns Ok(Some(_)) when QLDB returns documents.
It returns Ok(None) when QLDB doesn’t return documents, which means that there isn’t more pages to query
while let Some(mut values) = cursor.load_more().await? {
println!("{:?}", values);
}
Sourcepub async fn load_all(self) -> QldbResult<DocumentCollection>
pub async fn load_all(self) -> QldbResult<DocumentCollection>
Loads all pages from the cursor and consumes it in the process.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Cursor
impl !RefUnwindSafe for Cursor
impl Send for Cursor
impl Sync for Cursor
impl Unpin for Cursor
impl !UnwindSafe for Cursor
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