Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
67 lines (47 sloc) 1.33 KB

RON extensions

RON has extensions that can be enabled by adding the following attribute at the top of your RON document:

#![enable(...)]

unwrap_newtypes

You can add this extension by adding the following attribute at the top of your RON document:

#![enable(unwrap_newtypes)]

This feature enables RON to automatically unwrap simple tuples.

struct NewType(u32);
struct Object {
    pub new_type: NewType,
}

Without unwrap_newtypes, because the value 5 can not be saved into NewType(u32), your RON document would look like this:

(
    new_type: (5),
)

With the unwrap_newtypes extension, this coercion is done automatically. So 5 will be interpreted as (5).

#![enable(unwrap_newtypes)]
(
    new_type: 5,
)

implicit_some

You can add this extension by adding the following attribute at the top of your RON document:

#![enable(implicit_some)]

This feature enables RON to automatically convert any value to Some(value) if the deserialized struct requires it.

struct Object {
    pub value: Option<u32>,
}

Without this feature, you would have to write this RON document.

(
    value: Some(5),
)

Enabling the feature would automatically infer Some(x) if x is given. In this case, RON automatically casts this 5 into a Some(5).

(
    value: 5,
)
You can’t perform that action at this time.