#[non_exhaustive]pub struct Options {
pub default_extensions: Extensions,
pub recursion_limit: Option<usize>,
}
Expand description
Roundtrip serde options.
Examples
use ron::{Options, extensions::Extensions};
let ron = Options::default()
.with_default_extension(Extensions::IMPLICIT_SOME);
let de: Option<i32> = ron.from_str("42").unwrap();
let ser = ron.to_string(&de).unwrap();
assert_eq!(ser, "42");
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.default_extensions: Extensions
Extensions that are enabled by default during serialization and deserialization. During serialization, these extensions do NOT have to be explicitly enabled in the parsed RON. During deserialization, these extensions are used, but their explicit activation is NOT included in the output RON. No extensions are enabled by default.
recursion_limit: Option<usize>
Default recursion limit that is checked during serialization and
deserialization.
If set to None
, infinite recursion is allowed and stack overflow
errors can crash the serialization or deserialization process.
Defaults to Some(128)
, i.e. 128 recursive calls are allowed.
Implementations§
source§impl Options
impl Options
sourcepub fn with_default_extension(self, default_extension: Extensions) -> Options
pub fn with_default_extension(self, default_extension: Extensions) -> Options
Enable default_extension
by default during serialization and deserialization.
sourcepub fn without_default_extension(self, default_extension: Extensions) -> Options
pub fn without_default_extension(self, default_extension: Extensions) -> Options
Do NOT enable default_extension
by default during serialization and deserialization.
sourcepub fn with_recursion_limit(self, recursion_limit: usize) -> Options
pub fn with_recursion_limit(self, recursion_limit: usize) -> Options
Set a maximum recursion limit during serialization and deserialization.
sourcepub fn without_recursion_limit(self) -> Options
pub fn without_recursion_limit(self) -> Options
Disable the recursion limit during serialization and deserialization.
If you expect to handle highly recursive datastructures, consider wrapping
ron
with serde_stacker
.
source§impl Options
impl Options
sourcepub fn from_reader<R, T>(&self, rdr: R) -> Result<T, SpannedError>where
R: Read,
T: DeserializeOwned,
pub fn from_reader<R, T>(&self, rdr: R) -> Result<T, SpannedError>where
R: Read,
T: DeserializeOwned,
A convenience function for building a deserializer
and deserializing a value of type T
from a reader.
sourcepub fn from_str<'a, T>(&self, s: &'a str) -> Result<T, SpannedError>where
T: Deserialize<'a>,
pub fn from_str<'a, T>(&self, s: &'a str) -> Result<T, SpannedError>where
T: Deserialize<'a>,
A convenience function for building a deserializer
and deserializing a value of type T
from a string.
sourcepub fn from_bytes<'a, T>(&self, s: &'a [u8]) -> Result<T, SpannedError>where
T: Deserialize<'a>,
pub fn from_bytes<'a, T>(&self, s: &'a [u8]) -> Result<T, SpannedError>where
T: Deserialize<'a>,
A convenience function for building a deserializer
and deserializing a value of type T
from bytes.
sourcepub fn from_reader_seed<R, S, T>(
&self,
rdr: R,
seed: S
) -> Result<T, SpannedError>where
R: Read,
S: for<'a> DeserializeSeed<'a, Value = T>,
pub fn from_reader_seed<R, S, T>(
&self,
rdr: R,
seed: S
) -> Result<T, SpannedError>where
R: Read,
S: for<'a> DeserializeSeed<'a, Value = T>,
A convenience function for building a deserializer
and deserializing a value of type T
from a reader
and a seed.
sourcepub fn from_str_seed<'a, S, T>(
&self,
s: &'a str,
seed: S
) -> Result<T, SpannedError>where
S: DeserializeSeed<'a, Value = T>,
pub fn from_str_seed<'a, S, T>(
&self,
s: &'a str,
seed: S
) -> Result<T, SpannedError>where
S: DeserializeSeed<'a, Value = T>,
A convenience function for building a deserializer
and deserializing a value of type T
from a string
and a seed.
sourcepub fn from_bytes_seed<'a, S, T>(
&self,
s: &'a [u8],
seed: S
) -> Result<T, SpannedError>where
S: DeserializeSeed<'a, Value = T>,
pub fn from_bytes_seed<'a, S, T>(
&self,
s: &'a [u8],
seed: S
) -> Result<T, SpannedError>where
S: DeserializeSeed<'a, Value = T>,
A convenience function for building a deserializer
and deserializing a value of type T
from bytes
and a seed.
sourcepub fn to_writer<W, T>(&self, writer: W, value: &T) -> Result<(), Error>
pub fn to_writer<W, T>(&self, writer: W, value: &T) -> Result<(), Error>
Serializes value
into writer
.
This function does not generate any newlines or nice formatting;
if you want that, you can use
to_writer_pretty
instead.
sourcepub fn to_writer_pretty<W, T>(
&self,
writer: W,
value: &T,
config: PrettyConfig
) -> Result<(), Error>
pub fn to_writer_pretty<W, T>( &self, writer: W, value: &T, config: PrettyConfig ) -> Result<(), Error>
Serializes value
into writer
in a pretty way.
sourcepub fn to_string<T>(&self, value: &T) -> Result<String, Error>
pub fn to_string<T>(&self, value: &T) -> Result<String, Error>
Serializes value
and returns it as string.
This function does not generate any newlines or nice formatting;
if you want that, you can use
to_string_pretty
instead.
sourcepub fn to_string_pretty<T>(
&self,
value: &T,
config: PrettyConfig
) -> Result<String, Error>
pub fn to_string_pretty<T>( &self, value: &T, config: PrettyConfig ) -> Result<String, Error>
Serializes value
in the recommended RON layout in a pretty way.
Trait Implementations§
source§impl<'de> Deserialize<'de> for Options
impl<'de> Deserialize<'de> for Options
source§fn deserialize<__D>(
__deserializer: __D
) -> Result<Options, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<Options, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
source§impl Serialize for Options
impl Serialize for Options
source§fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl RefUnwindSafe for Options
impl Send for Options
impl Sync for Options
impl Unpin for Options
impl UnwindSafe for Options
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given World
.