From e17048eddfe2df86abd2d498da2a33b9c3dd8a72 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Fri, 2 May 2025 23:38:23 +0300 Subject: Add sort_asc param, impl demo chat app --- py_bindings/src/lib.rs | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) (limited to 'py_bindings/src') diff --git a/py_bindings/src/lib.rs b/py_bindings/src/lib.rs index a4abfde..4e125ec 100644 --- a/py_bindings/src/lib.rs +++ b/py_bindings/src/lib.rs @@ -307,15 +307,23 @@ impl DB { Ok(recs.map(|rec| py_from_record(rec))) } - #[pyo3(signature = (field, key, offset = DEFAULT_QUERY_PARAMS.offset, limit = DEFAULT_QUERY_PARAMS.limit))] + #[pyo3(signature = (field, key, + offset = DEFAULT_QUERY_PARAMS.offset, + limit = DEFAULT_QUERY_PARAMS.limit, + sort_asc = DEFAULT_QUERY_PARAMS.sort_asc))] pub fn find_by( &mut self, field: PyField, key: &Value, offset: usize, limit: usize, + sort_asc: bool, ) -> PyResult> { - let params = QueryParams { offset, limit }; + let params = QueryParams { + offset, + limit, + sort_asc, + }; let recs = self .db .find_by_with_params(&field, &key.record_value, ¶ms) @@ -324,15 +332,23 @@ impl DB { Ok(recs.into_iter().map(|rec| py_from_record(rec)).collect()) } - #[pyo3(signature = (field, keys, offset = DEFAULT_QUERY_PARAMS.offset, limit = DEFAULT_QUERY_PARAMS.limit))] + #[pyo3(signature = (field, keys, + offset = DEFAULT_QUERY_PARAMS.offset, + limit = DEFAULT_QUERY_PARAMS.limit, + sort_asc = DEFAULT_QUERY_PARAMS.sort_asc))] pub fn batch_find_by( &mut self, field: PyField, keys: Vec, offset: usize, limit: usize, + sort_asc: bool, ) -> PyResult> { - let params = QueryParams { offset, limit }; + let params = QueryParams { + offset, + limit, + sort_asc, + }; let keys: Vec = keys.into_iter().map(|key| key.record_value).collect(); let recs = self .db @@ -345,7 +361,10 @@ impl DB { .collect()) } - #[pyo3(signature = (field, start, end, offset = DEFAULT_QUERY_PARAMS.offset, limit = DEFAULT_QUERY_PARAMS.limit))] + #[pyo3(signature = (field, start, end, + offset = DEFAULT_QUERY_PARAMS.offset, + limit = DEFAULT_QUERY_PARAMS.limit, + sort_asc = DEFAULT_QUERY_PARAMS.sort_asc))] pub fn range_by( &mut self, field: PyField, @@ -353,8 +372,13 @@ impl DB { end: &PyRangeBound, offset: usize, limit: usize, + sort_asc: bool, ) -> PyResult> { - let params = QueryParams { offset, limit }; + let params = QueryParams { + offset, + limit, + sort_asc, + }; let range = OwnedBounds::new( match start { PyRangeBound::Unbounded() => StdBound::Unbounded, -- cgit v1.3