diff options
Diffstat (limited to 'vendor/miette/src/named_source.rs')
-rw-r--r-- | vendor/miette/src/named_source.rs | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/vendor/miette/src/named_source.rs b/vendor/miette/src/named_source.rs deleted file mode 100644 index 31ad1d1..0000000 --- a/vendor/miette/src/named_source.rs +++ /dev/null @@ -1,61 +0,0 @@ -use crate::{MietteError, MietteSpanContents, SourceCode, SpanContents}; - -/// Utility struct for when you have a regular [`SourceCode`] type that doesn't -/// implement `name`. For example [`String`]. Or if you want to override the -/// `name` returned by the `SourceCode`. -pub struct NamedSource { - source: Box<dyn SourceCode + 'static>, - name: String, -} - -impl std::fmt::Debug for NamedSource { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("NamedSource") - .field("name", &self.name) - .field("source", &"<redacted>"); - Ok(()) - } -} - -impl NamedSource { - /// Create a new `NamedSource` using a regular [`SourceCode`] and giving - /// its returned [`SpanContents`] a name. - pub fn new(name: impl AsRef<str>, source: impl SourceCode + Send + Sync + 'static) -> Self { - Self { - source: Box::new(source), - name: name.as_ref().to_string(), - } - } - - /// Gets the name of this `NamedSource`. - pub fn name(&self) -> &str { - &self.name - } - - /// Returns a reference the inner [`SourceCode`] type for this - /// `NamedSource`. - pub fn inner(&self) -> &(dyn SourceCode + 'static) { - &*self.source - } -} - -impl SourceCode for NamedSource { - fn read_span<'a>( - &'a self, - span: &crate::SourceSpan, - context_lines_before: usize, - context_lines_after: usize, - ) -> Result<Box<dyn SpanContents<'a> + 'a>, MietteError> { - let contents = self - .inner() - .read_span(span, context_lines_before, context_lines_after)?; - Ok(Box::new(MietteSpanContents::new_named( - self.name.clone(), - contents.data(), - *contents.span(), - contents.line(), - contents.column(), - contents.line_count(), - ))) - } -} |