use crate::{ config::parser::{ParseResult, Parser}, toml::{toml_span::Spanned, toml_value::Value}, }; impl Spanned<&Value> { pub fn parse(&self, parser: &mut P) -> ParseResult

{ self.value.parse(self.span, parser) } pub fn parse_map( &self, parser: &mut P, ) -> Result<

::Value, Spanned> where

::Error: Into, { self.parse(parser).map_spanned_err(|e| e.into()) } } impl Spanned { pub fn parse(&self, parser: &mut P) -> ParseResult

{ self.as_ref().parse(parser) } pub fn parse_map( &self, parser: &mut P, ) -> Result<

::Value, Spanned> where

::Error: Into, { self.as_ref().parse_map(parser) } } pub trait SpannedErrorExt { type T; type E; fn map_spanned_err(self, f: F) -> Result> where F: FnOnce(Self::E) -> U; } impl SpannedErrorExt for Result> { type T = T; type E = E; fn map_spanned_err(self, f: F) -> Result> where F: FnOnce(Self::E) -> U, { match self { Ok(v) => Ok(v), Err(e) => Err(Spanned { span: e.span, value: f(e.value), }), } } }