pub struct FieldPath(/* private fields */);
Expand description
Field path supporting up to 5 levels of nesting
Implementations§
Source§impl FieldPath
impl FieldPath
Sourcepub unsafe fn new_unchecked(path: impl Into<String>) -> Self
pub unsafe fn new_unchecked(path: impl Into<String>) -> Self
Creates a new field path from a string-like value without validation
§Safety
This function skips validation of the field path. The caller must ensure:
- Path length does not exceed 256 characters
- Path contains valid field references only
- Path nesting depth does not exceed 5 levels
§Examples
let path = unsafe { FieldPath::new_unchecked("user.name") };
Sourcepub fn eq<IFSB: IFSBValueMarker>(self, ifsb: IFSB) -> FieldFilter
pub fn eq<IFSB: IFSBValueMarker>(self, ifsb: IFSB) -> FieldFilter
Creates an equality filter
Sourcepub unsafe fn eq_unchecked<T: Serialize>(self, value: T) -> FieldFilter
pub unsafe fn eq_unchecked<T: Serialize>(self, value: T) -> FieldFilter
Creates an equality filter from any serializable value
§Safety
The caller must ensure the value serializes to either:
- A number
- A string
- A boolean
Sourcepub fn ne<IFSB: IFSBValueMarker>(self, ifsb: IFSB) -> FieldFilter
pub fn ne<IFSB: IFSBValueMarker>(self, ifsb: IFSB) -> FieldFilter
Creates a not equal filter
Sourcepub unsafe fn ne_unchecked<T: Serialize>(self, value: T) -> FieldFilter
pub unsafe fn ne_unchecked<T: Serialize>(self, value: T) -> FieldFilter
Creates a not equal filter from any serializable value
§Safety
The caller must ensure the value serializes to either:
- A number
- A string
- A boolean
Sourcepub fn le<IFS: IFSValueMarker>(self, ifs: IFS) -> FieldFilter
pub fn le<IFS: IFSValueMarker>(self, ifs: IFS) -> FieldFilter
Creates a less than or equal filter
Sourcepub unsafe fn le_unchecked<T: Serialize>(self, value: T) -> FieldFilter
pub unsafe fn le_unchecked<T: Serialize>(self, value: T) -> FieldFilter
Creates a less than or equal filter from any serializable value
§Safety
The caller must ensure the value serializes to either:
- A number
- A string
Sourcepub fn lt<IFS: IFSValueMarker>(self, ifs: IFS) -> FieldFilter
pub fn lt<IFS: IFSValueMarker>(self, ifs: IFS) -> FieldFilter
Creates a less than filter
Sourcepub unsafe fn lt_unchecked<T: Serialize>(self, value: T) -> FieldFilter
pub unsafe fn lt_unchecked<T: Serialize>(self, value: T) -> FieldFilter
Creates a less than filter from any serializable value
§Safety
The caller must ensure the value serializes to either:
- A number
- A string
Sourcepub fn ge<IFS: IFSValueMarker>(self, ifs: IFS) -> FieldFilter
pub fn ge<IFS: IFSValueMarker>(self, ifs: IFS) -> FieldFilter
Creates a greater than or equal filter
Sourcepub unsafe fn ge_unchecked<T: Serialize>(self, value: T) -> FieldFilter
pub unsafe fn ge_unchecked<T: Serialize>(self, value: T) -> FieldFilter
Creates a greater than or equal filter from any serializable value
§Safety
The caller must ensure the value serializes to either:
- A number
- A string
Sourcepub fn gt<IFS: IFSValueMarker>(self, ifs: IFS) -> FieldFilter
pub fn gt<IFS: IFSValueMarker>(self, ifs: IFS) -> FieldFilter
Creates a greater than filter
Sourcepub unsafe fn gt_unchecked<T: Serialize>(self, value: T) -> FieldFilter
pub unsafe fn gt_unchecked<T: Serialize>(self, value: T) -> FieldFilter
Creates a greater than filter from any serializable value
§Safety
The caller must ensure the value serializes to either:
- A number
- A string
Sourcepub fn contains<IFS: IFSValueMarker>(self, ifs: IFS) -> FieldFilter
pub fn contains<IFS: IFSValueMarker>(self, ifs: IFS) -> FieldFilter
Creates a contains filter for strings or arrays
Sourcepub unsafe fn contains_unchecked<T: Serialize>(self, value: T) -> FieldFilter
pub unsafe fn contains_unchecked<T: Serialize>(self, value: T) -> FieldFilter
Creates a contains filter from any serializable value
§Safety
The caller must ensure the value serializes to either:
- A number
- A string
Sourcepub fn not_contains<IFS: IFSValueMarker>(self, ifs: IFS) -> FieldFilter
pub fn not_contains<IFS: IFSValueMarker>(self, ifs: IFS) -> FieldFilter
Creates a not contains filter for strings or arrays
Sourcepub unsafe fn not_contains_unchecked<T: Serialize>(
self,
value: T,
) -> FieldFilter
pub unsafe fn not_contains_unchecked<T: Serialize>( self, value: T, ) -> FieldFilter
Creates a not contains filter from any serializable value
§Safety
The caller must ensure the value serializes to either:
- A number
- A string
Sourcepub fn begins_with(self, value: impl Into<String>) -> FieldFilter
pub fn begins_with(self, value: impl Into<String>) -> FieldFilter
Creates a begins with filter for string fields
Sourcepub fn in_values<IFS: IFSValueMarker>(
self,
values: impl Into<FixedVec<IFS, 5>>,
) -> FieldFilter
pub fn in_values<IFS: IFSValueMarker>( self, values: impl Into<FixedVec<IFS, 5>>, ) -> FieldFilter
Creates an IN filter accepting up to 5 values
§Examples
let path = FieldPath::new("user.id")?;
let filter = path.in_values(["id1", "id2", "id3"]);
Sourcepub unsafe fn in_values_unchecked<T: Serialize>(
self,
values: impl Into<FixedVec<T, 5>>,
) -> FieldFilter
pub unsafe fn in_values_unchecked<T: Serialize>( self, values: impl Into<FixedVec<T, 5>>, ) -> FieldFilter
Creates an IN filter from any array of up to 5 serializable values
§Safety
The caller must ensure each value in the array serializes to either:
- A number
- A string
Sourcepub fn not_in<IFS: IFSValueMarker>(
self,
values: impl Into<FixedVec<IFS, 5>>,
) -> FieldFilter
pub fn not_in<IFS: IFSValueMarker>( self, values: impl Into<FixedVec<IFS, 5>>, ) -> FieldFilter
Creates a NOT IN filter accepting up to 5 values
§Examples
let path = FieldPath::new("user.role")?;
let filter = path.not_in(["admin", "moderator"]);
Sourcepub unsafe fn not_in_unchecked<T: Serialize>(
self,
values: impl Into<FixedVec<T, 5>>,
) -> FieldFilter
pub unsafe fn not_in_unchecked<T: Serialize>( self, values: impl Into<FixedVec<T, 5>>, ) -> FieldFilter
Creates a NOT IN filter from any array of up to 5 serializable values
§Safety
The caller must ensure values in the array serializes to either:
- Numbers
- Strings
Sourcepub fn between<IFS: IFSValueMarker>(self, start: IFS, end: IFS) -> FieldFilter
pub fn between<IFS: IFSValueMarker>(self, start: IFS, end: IFS) -> FieldFilter
Creates a BETWEEN filter that matches values in a range
Sourcepub unsafe fn between_unchecked<T: Serialize>(
self,
start: T,
end: T,
) -> FieldFilter
pub unsafe fn between_unchecked<T: Serialize>( self, start: T, end: T, ) -> FieldFilter
Creates a BETWEEN filter from any two serializable values
§Safety
The caller must ensure both values serialize to either:
- Numbers
- Strings
Sourcepub fn contains_any<IFS: IFSValueMarker>(
self,
values: impl Into<FixedVec<IFS, 20>>,
) -> FieldFilter
pub fn contains_any<IFS: IFSValueMarker>( self, values: impl Into<FixedVec<IFS, 20>>, ) -> FieldFilter
Creates a contains any filter accepting up to 20 values
§Examples
let path = FieldPath::new("user.permissions")?;
let filter = path.contains_any(["read", "write", "delete"]);
Sourcepub unsafe fn contains_any_unchecked<T: Serialize>(
self,
values: impl Into<FixedVec<T, 20>>,
) -> FieldFilter
pub unsafe fn contains_any_unchecked<T: Serialize>( self, values: impl Into<FixedVec<T, 20>>, ) -> FieldFilter
Creates a contains any filter from any array of up to 20 serializable values
§Safety
The caller must ensure values in the array serializes to either:
- Numbers
- Strings
Trait Implementations§
impl StructuralPartialEq for FieldPath
Auto Trait Implementations§
impl Freeze for FieldPath
impl RefUnwindSafe for FieldPath
impl Send for FieldPath
impl Sync for FieldPath
impl Unpin for FieldPath
impl UnwindSafe for FieldPath
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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