[−][src]Trait figment::providers::Format
Trait implementable by text-based Data
format providers.
Instead of implementing Provider
directly, types that refer to data
formats, such as Json
and Toml
, implement this trait. By
implementing Format
, they become Provider
s indirectly via the
Data
type, which serves as a provider for all T: Format
.
Implementing
There are two primary implementation items to consider:
-
NAME
: This should be the name of the data format:"JSON"
or"TOML"
. The string is used in the metadata forData
. -
from_str()
: This is the core string deserialization method, for instance,toml::from_str
. For writing a custom data format, see serde's writing a data format guide.
Associated Types
Loading content...Associated Constants
Loading content...Required methods
fn from_str<'de, T: DeserializeOwned>(
string: &'de str
) -> Result<T, Self::Error>
string: &'de str
) -> Result<T, Self::Error>
Parses string
as the data format Self
as a T
or returns an error
if the string
is an invalid T
.
Provided methods
fn from_path<T: DeserializeOwned>(path: &Path) -> Result<T, Self::Error>
Parses the file at path
as the data format Self
as a T
or returns
an error if the string
is an invalid T
. The default implementation
calls Format::from_str()
with the contents of the file.
fn file<P: AsRef<Path>>(path: P) -> Data<Self>
Returns a Data
provider that sources its values by parsing the file at
path
as format Self
. See Data::file()
for more details. The
default implementation calls Data::file(path)
.
fn string(string: &str) -> Data<Self>
Returns a Data
provider that sources its values by parsing string
as
format Self
. See Data::string()
for more details. The default
implementation calls Data::string(string)
.