Struct structsy::StructsyQuery
source · pub struct StructsyQuery<T: Persistent + 'static> { /* private fields */ }
Expand description
Query for a persistent struct
Example
use structsy::{ Structsy, StructsyTx, StructsyError};
use structsy_derive::{queries, Persistent};
#[derive(Persistent)]
struct Basic {
name: String,
}
impl Basic {
fn new(name: &str) -> Basic {
Basic { name: name.to_string() }
}
}
#[queries(Basic)]
trait BasicQuery {
fn by_name(self, name: String) -> Self;
}
fn basic_query() -> Result<(), StructsyError> {
let structsy = Structsy::open("file.structsy")?;
structsy.define::<Basic>()?;
let mut tx = structsy.begin()?;
tx.insert(&Basic::new("aaa"))?;
tx.commit()?;
let count = structsy.query::<Basic>().by_name("aaa".to_string()).fetch().count();
assert_eq!(count, 1);
Ok(())
}
Implementations§
source§impl<T: Persistent + 'static> StructsyQuery<T>
impl<T: Persistent + 'static> StructsyQuery<T>
pub fn projection<P: Projection<T>>(self) -> ProjectionQuery<P, T>
pub fn fetch(self) -> StructsyIter<'static, (Ref<T>, T)> ⓘ
Trait Implementations§
source§impl<T: Persistent> IntoIterator for StructsyQuery<T>
impl<T: Persistent> IntoIterator for StructsyQuery<T>
source§impl<T: Persistent + 'static> Query<T> for StructsyQuery<T>
impl<T: Persistent + 'static> Query<T> for StructsyQuery<T>
fn filter_builder(&mut self) -> &mut FilterBuilder<T>
fn add_group(&mut self, filter: Filter<T>)
source§impl<T, V> QueryAction<StructsyQuery<V>> for (Field<T, Option<Ref<V>>>, &mut FilterBuilder<T>)where
T: 'static,
V: Persistent + 'static,
impl<T, V> QueryAction<StructsyQuery<V>> for (Field<T, Option<Ref<V>>>, &mut FilterBuilder<T>)where T: 'static, V: Persistent + 'static,
fn query(self, value: StructsyQuery<V>)
source§impl<T, V> QueryAction<StructsyQuery<V>> for (Field<T, Ref<V>>, &mut FilterBuilder<T>)where
T: 'static,
V: Persistent + 'static,
impl<T, V> QueryAction<StructsyQuery<V>> for (Field<T, Ref<V>>, &mut FilterBuilder<T>)where T: 'static, V: Persistent + 'static,
fn query(self, value: StructsyQuery<V>)
source§impl<T, V> QueryAction<StructsyQuery<V>> for (Field<T, Vec<Ref<V>>>, &mut FilterBuilder<T>)where
T: 'static,
V: Persistent + 'static,
impl<T, V> QueryAction<StructsyQuery<V>> for (Field<T, Vec<Ref<V>>>, &mut FilterBuilder<T>)where T: 'static, V: Persistent + 'static,
fn query(self, value: StructsyQuery<V>)
Auto Trait Implementations§
impl<T> !RefUnwindSafe for StructsyQuery<T>
impl<T> !Send for StructsyQuery<T>
impl<T> !Sync for StructsyQuery<T>
impl<T> Unpin for StructsyQuery<T>
impl<T> !UnwindSafe for StructsyQuery<T>
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