ron::options

Struct Options

Source
#[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
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional 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

Source

pub fn with_default_extension(self, default_extension: Extensions) -> Self

Enable default_extension by default during serialization and deserialization.

Source

pub fn without_default_extension(self, default_extension: Extensions) -> Self

Do NOT enable default_extension by default during serialization and deserialization.

Source

pub fn with_recursion_limit(self, recursion_limit: usize) -> Self

Set a maximum recursion limit during serialization and deserialization.

Source

pub fn without_recursion_limit(self) -> Self

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

Source

pub fn from_reader<R, T>(&self, rdr: R) -> SpannedResult<T>
where R: Read, T: DeserializeOwned,

A convenience function for building a deserializer and deserializing a value of type T from a reader.

Source

pub fn from_str<'a, T>(&self, s: &'a str) -> SpannedResult<T>
where T: Deserialize<'a>,

A convenience function for building a deserializer and deserializing a value of type T from a string.

Source

pub fn from_bytes<'a, T>(&self, s: &'a [u8]) -> SpannedResult<T>
where T: Deserialize<'a>,

A convenience function for building a deserializer and deserializing a value of type T from bytes.

Source

pub fn from_reader_seed<R, S, T>(&self, rdr: R, seed: S) -> SpannedResult<T>
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.

Source

pub fn from_str_seed<'a, S, T>(&self, s: &'a str, seed: S) -> SpannedResult<T>
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.

Source

pub fn from_bytes_seed<'a, S, T>( &self, s: &'a [u8], seed: S, ) -> SpannedResult<T>
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.

Source

pub fn to_writer<W, T>(&self, writer: W, value: &T) -> Result<()>
where W: Write, T: ?Sized + Serialize,

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.

Source

pub fn to_writer_pretty<W, T>( &self, writer: W, value: &T, config: PrettyConfig, ) -> Result<()>
where W: Write, T: ?Sized + Serialize,

Serializes value into writer in a pretty way.

Source

pub fn to_string<T>(&self, value: &T) -> Result<String>
where T: ?Sized + Serialize,

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.

Source

pub fn to_string_pretty<T>( &self, value: &T, config: PrettyConfig, ) -> Result<String>
where T: ?Sized + Serialize,

Serializes value in the recommended RON layout in a pretty way.

Trait Implementations§

Source§

impl Clone for Options

Source§

fn clone(&self) -> Options

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Options

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Options

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Options

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for Options

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,