Struct jupiter::ig::builder::ObjectBuilder

source ·
pub struct ObjectBuilder<'a> { /* private fields */ }
Expand description

Builds an inner object or map within a Doc or another element.

A builder can either be obtained via DocBuilder::build_object.

Implementations§

source§

impl<'a> ObjectBuilder<'a>

source

pub fn put_int(&mut self, key: impl AsRef<str>, value: i64) -> Result<()>

Places an integer value within the object being built.

§Errors

If the internal symbol table overflows, an error is returned.

§Example
let mut builder = DocBuilder::new();
let mut obj_builder = builder.obj();

obj_builder.put_int("Test", 42).unwrap();

let doc = builder.build_object(obj_builder);
assert_eq!(doc.root().query("Test").as_int().unwrap(), 42);
source

pub fn insert_int(&mut self, key: Symbol, value: i64)

Places an integer value within the object being built using a Symbolwhich has been looked up previously.

§Example
let mut builder = DocBuilder::new();
let key = builder.resolve("Test").unwrap();
let mut obj_builder = builder.obj();

obj_builder.insert_int(key, 42);

let doc = builder.build_object(obj_builder);
assert_eq!(doc.root().query("Test").as_int().unwrap(), 42);
source

pub fn put_string( &mut self, key: impl AsRef<str>, value: impl AsRef<str> ) -> Result<()>

Places a string value within the object being built.

§Errors

If the internal symbol table overflows, an error is returned.

§Example
let builder = DocBuilder::new();
let mut obj_builder = builder.obj();

obj_builder.put_string("Test", "Foo").unwrap();

let doc = builder.build_object(obj_builder);
assert_eq!(doc.root().query("Test").as_str().unwrap(), "Foo");
source

pub fn insert_string(&mut self, key: Symbol, value: impl AsRef<str>)

Places a string value within the object being built using a Symbolwhich has been looked up previously.

§Example
let builder = DocBuilder::new();
let key = builder.resolve("Test").unwrap();
let mut obj_builder = builder.obj();

obj_builder.insert_string(key, "Foo");

let doc = builder.build_object(obj_builder);
assert_eq!(doc.root().query("Test").as_str().unwrap(), "Foo");
source

pub fn put_bool(&mut self, key: impl AsRef<str>, value: bool) -> Result<()>

Places a bool value within the object being built.

§Errors

If the internal symbol table overflows, an error is returned.

§Example
let builder = DocBuilder::new();
let mut obj_builder = builder.obj();

obj_builder.put_bool("Test", true).unwrap();

let doc = builder.build_object(obj_builder);
assert_eq!(doc.root().query("Test").as_bool(), true);
source

pub fn insert_bool(&mut self, key: Symbol, value: bool)

Places bool value within the object being built using a Symbolwhich has been looked up previously.

§Example
let builder = DocBuilder::new();
let key = builder.resolve("Test").unwrap();
let mut obj_builder = builder.obj();

obj_builder.insert_bool(key, true);

let doc = builder.build_object(obj_builder);
assert_eq!(doc.root().query("Test").as_bool(), true);
source

pub fn put_list( &mut self, key: impl AsRef<str>, list: ListBuilder ) -> Result<()>

Places a list value within the object being built. Returns the builder used to populate the list.

§Errors

If the internal symbol table overflows, an error is returned.

§Example
let builder = DocBuilder::new();
let mut obj_builder = builder.obj();

let mut list_builder = builder.list();
list_builder.append_int(1);
obj_builder.put_list("Test", list_builder).unwrap();

let doc = builder.build_object(obj_builder);
assert_eq!(doc.root().query("Test").at(0).as_int().unwrap(), 1);
source

pub fn insert_list(&mut self, key: Symbol, list: ListBuilder)

Places a list value within the object being built using a Symbolwhich has been looked up previously. Returns the builder used to populate the list.

§Example
let  builder = DocBuilder::new();
let key = builder.resolve("Test").unwrap();
let mut obj_builder = builder.obj();

let mut list_builder = builder.list();
list_builder.append_int(1);
obj_builder.insert_list(key, list_builder);

let doc = builder.build_object(obj_builder);
assert_eq!(doc.root().query("Test").at(0).as_int().unwrap(), 1);
source

pub fn put_object( &mut self, key: impl AsRef<str>, obj: ObjectBuilder<'_> ) -> Result<()>

Places an inner object within the object being built. Returns the builder used to populate the list.

§Errors

If the internal symbol table overflows, an error is returned.

§Example
let builder = DocBuilder::new();
let mut obj_builder = builder.obj();

let mut inner_obj_builder = builder.obj();
inner_obj_builder.put_string("Foo", "Bar").unwrap();
obj_builder.put_object("Test", inner_obj_builder).unwrap();

let doc = builder.build_object(obj_builder);
assert_eq!(doc.root().query("Test.Foo").as_str().unwrap(), "Bar");
source

pub fn insert_object(&mut self, key: Symbol, obj: ObjectBuilder<'_>)

Places an inner object within the object being built using a Symbolwhich has been looked up previously. Returns the builder used to populate the list.

§Example
let builder = DocBuilder::new();
let key = builder.resolve("Test").unwrap();
let mut obj_builder = builder.obj();

let mut inner_obj_builder = builder.obj();
inner_obj_builder.put_string("Foo", "Bar").unwrap();
obj_builder.insert_object(key, inner_obj_builder);

let doc = builder.build_object(obj_builder);
assert_eq!(doc.root().query("Test.Foo").as_str().unwrap(), "Bar");

Auto Trait Implementations§

§

impl<'a> Freeze for ObjectBuilder<'a>

§

impl<'a> RefUnwindSafe for ObjectBuilder<'a>

§

impl<'a> Send for ObjectBuilder<'a>

§

impl<'a> Sync for ObjectBuilder<'a>

§

impl<'a> Unpin for ObjectBuilder<'a>

§

impl<'a> UnwindSafe for ObjectBuilder<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more