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 child_filter<F>(&mut self, filter_builder: F) -> &mut Self
pub fn child_filter<F>(&mut self, filter_builder: F) -> &mut Self
Add a child segment with a single filter selector.
This is a shorthand for .child(|x| x.filter(filter_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 descendant_filter<F>(&mut self, filter_builder: F) -> &mut Self
pub fn descendant_filter<F>(&mut self, filter_builder: F) -> &mut Self
Add a descendant segment with a single filter selector.
This is a shorthand for .descendant(|x| x.filter(filter_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
by consuming this builder.
To avoid consuming the builder use to_query
.
Trait Implementations§
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 Freeze for JsonPathQueryBuilder
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