//! ``` //! #[macro_use] //! extern crate serde_derive; //! //! extern crate toml; //! use toml::spanned::Spanned; //! //! #[derive(Deserialize)] //! struct Udoprog { //! s: Spanned, //! } //! //! fn main() { //! let t = "s = \"udoprog\"\n"; //! //! let u: Udoprog = toml::from_str(t).unwrap(); //! //! assert_eq!(u.s.start, 4); //! assert_eq!(u.s.end, 13); //! } //! ``` use serde::{Serialize, Serializer}; // FIXME: use a more unique name like "toml::Spanned". #[doc(hidden)] pub const NAME: &str = "Spanned"; #[doc(hidden)] pub const FIELDS: &[&str] = &["value", "start", "end"]; /// #[derive(Deserialize, Debug)] pub struct Spanned { /// pub value: T, /// pub start: usize, /// pub end: usize, } impl Serialize for Spanned { fn serialize(&self, serializer: S) -> Result where S: Serializer, { self.value.serialize(serializer) } }