Cursor

Struct Cursor 

Source
pub struct Cursor { /* private fields */ }
Expand description

An iterator for result sets from MimerSQL databases.

Implementations§

Source§

impl Cursor

Source

pub fn set_scroll_option(&mut self, option: ScrollOption)

Sets the scroll option for the cursor. Only avaiable for cursors on statements prepared as (scrollable)CursorMode::Scrollable. Valid options are ScrollOption::NEXT, ScrollOption::PREVIOUS, ScrollOption::FIRST, ScrollOption::LAST, ScrollOption::ABSOLUTE, ScrollOption::RELATIVE.

The options are configured as follows

Source

pub fn scroll(&mut self, idx: i32) -> Result<Option<&Row>, i32>

Moves cursor to specified row index. Takes into consideration the ScrollOption set for the cursor. The default scroll option is ScrollOption::NEXT. To change the scroll option use set_scroll_option.

§Errors

Returns Err when the cursor could not be moved to the specified row, e.g. if the specified index is out of bounds.

§Examples
let mut conn = Connection::open(db, ident, pass).unwrap();
let stmnt = conn.prepare("SELECT * FROM test_table", CursorMode::Scrollable).unwrap();

let mut cursor = stmnt.open_cursor().unwrap();
let row = cursor.scroll(2).unwrap().expect("Nothing was found on the specified index");
Source

pub fn next_row(&mut self) -> Result<Option<&Row>, i32>

Moves cursor to the next row in the result set and returns its contents. On success, returns either Some(Row) or None if there is no more data to fetch.

§Errors

Returns Err when cursor couldn’t advance.

§Examples
let mut conn = Connection::open(db, ident, pass).unwrap();
let stmnt = conn.prepare("SELECT * FROM test_table", CursorMode::Forward).unwrap();

let mut cursor = stmnt.open_cursor().unwrap();
let row = cursor.next_row().unwrap().expect("Nothing was found on this row");
Source

pub fn get_mode(&self) -> CursorMode

Returns the CursorMode of the Cursor.

Source

pub fn check_is_mode(&self, mode: CursorMode) -> bool

Checks if the cursor’s mode matches a given CursorMode.

Source

pub fn current_row(&self) -> Result<i32, i32>

Returns current index

Source

pub fn get_row_size(&self) -> Result<i32, i32>

Returns the maximum number of bytes required to hold one row of data. This method might be used to calculate the maximum number of rows allowed in an array fetching scenario under certain memory restrictions.

Trait Implementations§

Source§

impl Drop for Cursor

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl FallibleStreamingIterator for Cursor

Source§

type Error = i32

The error type of iteration.
Source§

type Item = Row

The type being iterated over.
Source§

fn advance(&mut self) -> Result<(), Self::Error>

Advances the iterator to the next position. Read more
Source§

fn get(&self) -> Option<&Self::Item>

Returns the current element. Read more
Source§

fn next(&mut self) -> Result<Option<&Self::Item>, Self::Error>

Advances the iterator, returning the next element. Read more
Source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns bounds on the number of remaining elements in the iterator.
Source§

fn all<F>(&mut self, f: F) -> Result<bool, Self::Error>
where Self: Sized, F: FnMut(&Self::Item) -> bool,

Determines if all elements of the iterator satisfy a predicate.
Source§

fn any<F>(&mut self, f: F) -> Result<bool, Self::Error>
where Self: Sized, F: FnMut(&Self::Item) -> bool,

Determines if any elements of the iterator satisfy a predicate.
Source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Borrows an iterator, rather than consuming it. Read more
Source§

fn count(self) -> Result<usize, Self::Error>
where Self: Sized,

Returns the number of remaining elements in the iterator.
Source§

fn filter<F>(self, f: F) -> Filter<Self, F>
where Self: Sized, F: FnMut(&Self::Item) -> bool,

Returns an iterator which filters elements by a predicate.
Source§

fn find<F>(&mut self, f: F) -> Result<Option<&Self::Item>, Self::Error>
where Self: Sized, F: FnMut(&Self::Item) -> bool,

Returns the first element of the iterator which satisfies a predicate.
Source§

fn for_each<F>(self, f: F) -> Result<(), Self::Error>
where Self: Sized, F: FnMut(&Self::Item),

Calls a closure on each element of an iterator.
Source§

fn fuse(self) -> Fuse<Self>
where Self: Sized,

Returns an iterator which is well-behaved at the beginning and end of iteration.
Source§

fn map<F, B>(self, f: F) -> Map<Self, F, B>
where Self: Sized, F: FnMut(&Self::Item) -> B,

Returns an iterator which applies a transform to elements.
Source§

fn map_ref<F, B>(self, f: F) -> MapRef<Self, F>
where Self: Sized, F: Fn(&Self::Item) -> &B, B: ?Sized,

Returns an iterator which applies a transform to elements. Read more
Source§

fn map_err<F, B>(self, f: F) -> MapErr<Self, F>
where Self: Sized, F: Fn(Self::Error) -> B,

Returns an iterator that applies a transform to errors.
Source§

fn nth(&mut self, n: usize) -> Result<Option<&Self::Item>, Self::Error>

Returns the nth element of the iterator.
Source§

fn position<F>(&mut self, f: F) -> Result<Option<usize>, Self::Error>
where Self: Sized, F: FnMut(&Self::Item) -> bool,

Returns the position of the first element matching a predicate.
Source§

fn skip(self, n: usize) -> Skip<Self>
where Self: Sized,

Returns an iterator which skips the first n elements.
Source§

fn skip_while<F>(self, f: F) -> SkipWhile<Self, F>
where Self: Sized, F: FnMut(&Self::Item) -> bool,

Returns an iterator which skips the first sequence of elements matching a predicate.
Source§

fn take(self, n: usize) -> Take<Self>
where Self: Sized,

Returns an iterator which only returns the first n elements.
Source§

fn take_while<F>(self, f: F) -> TakeWhile<Self, F>
where Self: Sized, F: FnMut(&Self::Item) -> bool,

Returns an iterator which only returns the first sequence of elements matching a predicate.

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<G1, G2> Within<G2> for G1
where G2: Contains<G1>,

Source§

fn is_within(&self, b: &G2) -> bool