Struct rsonpath_syntax::builder::JsonPathQueryBuilder
source · pub struct JsonPathQueryBuilder { /* private fields */ }
Expand description
Builder for JsonPathQuery
instances.
Examples
let mut builder = JsonPathQueryBuilder::new();
builder.child_name("a")
.descendant_name("b")
.child_wildcard()
.child_name("c")
.descendant_wildcard()
.child_slice(|x| x.with_start(3).with_end(-7).with_step(2));
// Can also use `builder.build()` as a non-consuming version.
let query: JsonPathQuery = builder.into();
assert_eq!(query.to_string(), "$['a']..['b'][*]['c']..[*][3:-7:2]");
Implementations§
source§impl JsonPathQueryBuilder
impl JsonPathQueryBuilder
sourcepub fn new() -> Self
pub fn new() -> Self
Initialize an empty builder.
Examples
let builder = JsonPathQueryBuilder::new();
let query: JsonPathQuery = builder.into();
assert!(query.segments().is_empty());
sourcepub fn child<F>(&mut self, selectors_builder: F) -> &mut Self
pub fn child<F>(&mut self, selectors_builder: F) -> &mut Self
Add a child segment with selectors defined in the selectors_builder
function.
See the documentation of JsonPathSelectorsBuilder
for selector building details.
Examples
let mut builder = JsonPathQueryBuilder::new();
builder.child(|x| x.name("abc").index(10).wildcard());
let result = builder.into_query();
assert_eq!(result.segments().len(), 1);
let segment = &result.segments()[0];
assert!(segment.is_child());
assert_eq!(&segment.selectors().as_slice(), &[
Selector::Name(JsonString::new("abc")),
Selector::Index(Index::FromStart(JsonUInt::from(10))),
Selector::Wildcard,
]);
sourcepub fn descendant<F>(&mut self, selectors_builder: F) -> &mut Self
pub fn descendant<F>(&mut self, selectors_builder: F) -> &mut Self
Add a descendant segment with selectors defined in the selectors_builder
function.
See the documentation of JsonPathSelectorsBuilder
for selector building details.
Examples
let mut builder = JsonPathQueryBuilder::new();
builder.descendant(|x| x.name("abc").index(10).wildcard());
let result = builder.into_query();
assert_eq!(result.segments().len(), 1);
let segment = &result.segments()[0];
assert!(segment.is_descendant());
assert_eq!(&segment.selectors().as_slice(), &[
Selector::Name(JsonString::new("abc")),
Selector::Index(Index::FromStart(JsonUInt::from(10))),
Selector::Wildcard,
]);
sourcepub fn child_name<S: Into<JsonString>>(&mut self, name: S) -> &mut Self
pub fn child_name<S: Into<JsonString>>(&mut self, name: S) -> &mut Self
Add a child segment with a single name selector.
This is a shorthand for .child(|x| x.name(name))
.
sourcepub fn child_wildcard(&mut self) -> &mut Self
pub fn child_wildcard(&mut self) -> &mut Self
Add a child segment with a single wildcard selector.
This is a shorthand for .child(|x| x.wildcard())
.
sourcepub fn child_index<N: Into<JsonInt>>(&mut self, idx: N) -> &mut Self
pub fn child_index<N: Into<JsonInt>>(&mut self, idx: N) -> &mut Self
Add a child segment with a single index selector.
This is a shorthand for .child(|x| x.index(idx))
.
sourcepub fn child_slice<F>(&mut self, slice_builder: F) -> &mut Self
pub fn child_slice<F>(&mut self, slice_builder: F) -> &mut Self
Add a child segment with a single slice selector.
This is a shorthand for .child(|x| x.slice(slice_builder))
.
sourcepub fn descendant_name<S: Into<JsonString>>(&mut self, name: S) -> &mut Self
pub fn descendant_name<S: Into<JsonString>>(&mut self, name: S) -> &mut Self
Add a descendant segment with a single name selector.
This is a shorthand for .descendant(|x| x.name(name))
.
sourcepub fn descendant_wildcard(&mut self) -> &mut Self
pub fn descendant_wildcard(&mut self) -> &mut Self
Add a descendant segment with a single name selector.
This is a shorthand for .descendant(|x| x.wildcard())
.
sourcepub fn descendant_index<N: Into<JsonInt>>(&mut self, idx: N) -> &mut Self
pub fn descendant_index<N: Into<JsonInt>>(&mut self, idx: N) -> &mut Self
Add a descendant segment with a single name selector.
This is a shorthand for .descendant(|x| x.index(idx))
.
sourcepub fn descendant_slice<F>(&mut self, slice_builder: F) -> &mut Self
pub fn descendant_slice<F>(&mut self, slice_builder: F) -> &mut Self
Add a descendant segment with a single slice selector.
This is a shorthand for .descendant(|x| x.slice(slice_builder))
.
sourcepub fn to_query(&mut self) -> JsonPathQuery
pub fn to_query(&mut self) -> JsonPathQuery
Produce a JsonPathQuery
from the builder.
This clones all data in the builder to create the query.
If possible, use into_query
to consume the builder and avoid a copy.
sourcepub fn into_query(self) -> JsonPathQuery
pub fn into_query(self) -> JsonPathQuery
Produce a JsonPathQuery
consuming builder.
To avoid consuming the builder use to_query
.
Trait Implementations§
source§impl Default for JsonPathQueryBuilder
impl Default for JsonPathQueryBuilder
source§impl From<JsonPathQueryBuilder> for JsonPathQuery
impl From<JsonPathQueryBuilder> for JsonPathQuery
source§fn from(value: JsonPathQueryBuilder) -> Self
fn from(value: JsonPathQueryBuilder) -> Self
Auto Trait Implementations§
impl RefUnwindSafe for JsonPathQueryBuilder
impl Send for JsonPathQueryBuilder
impl Sync for JsonPathQueryBuilder
impl Unpin for JsonPathQueryBuilder
impl UnwindSafe for JsonPathQueryBuilder
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<D> OwoColorize for D
impl<D> OwoColorize for D
source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
, Read moresource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
, Read more