pub enum DataProfilerError {
Show 24 variants
#[non_exhaustive] CsvParsingError {
message: String,
suggestion: String,
source: Option<Box<dyn Error + Send + Sync>>,
},
FileNotFound {
path: String,
},
UnsupportedFormat {
format: String,
},
#[non_exhaustive] InvalidConfiguration {
message: String,
suggestion: String,
source: Option<Box<dyn Error + Send + Sync>>,
},
InvalidSemanticHint {
message: String,
suggestion: String,
},
#[non_exhaustive] StreamingError {
message: String,
suggestion: String,
source: Option<Box<dyn Error + Send + Sync>>,
},
#[non_exhaustive] IoError {
message: String,
source: Option<Box<dyn Error + Send + Sync>>,
},
EncodingError {
path: String,
detail: String,
guess: String,
},
#[non_exhaustive] BinaryInput {
path: String,
detected: String,
suggestion: String,
},
#[non_exhaustive] SourceChanged {
path: String,
detail: String,
suggestion: String,
},
#[non_exhaustive] JsonParsingError {
message: String,
source: Option<Box<dyn Error + Send + Sync>>,
},
#[non_exhaustive] ParquetError {
message: String,
source: Option<Box<dyn Error + Send + Sync>>,
},
#[non_exhaustive] ArrowError {
message: String,
source: Option<Box<dyn Error + Send + Sync>>,
},
UnsupportedDataSource {
message: String,
},
AllEnginesFailed {
message: String,
},
MetricsCalculationError {
message: String,
},
DuplicateColumnName {
names: String,
plural: String,
source_label: String,
},
ConfigValidationError {
message: String,
},
DatabaseConnectionError {
message: String,
suggestion: String,
},
DatabaseQueryError {
message: String,
},
DatabaseConfigError {
message: String,
},
DatabaseFeatureDisabled {
message: String,
},
SqlValidationError {
message: String,
},
DatabaseSslError {
message: String,
},
}Expand description
Enhanced error types with more descriptive messages for DataProfiler
Not Clone: a retained ErrorSource is a boxed trait object, and the
originating errors (std::io::Error, csv::Error, …) are not cloneable
themselves.
Variants§
#[non_exhaustive]CsvParsingError
Fields
This variant is marked as non-exhaustive
FileNotFound
UnsupportedFormat
#[non_exhaustive]InvalidConfiguration
Fields
This variant is marked as non-exhaustive
InvalidSemanticHint
#[non_exhaustive]StreamingError
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]IoError
Fields
This variant is marked as non-exhaustive
EncodingError
#[non_exhaustive]BinaryInput
A file whose signature bytes name a binary format (gzip, zstd, zip,
Parquet) was about to reach a text reader (#893). Built with
DataProfilerError::binary_input.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]SourceChanged
A remote object changed between the ranged reads of one profile, so
the bytes read do not all come from one version of it (#865). Built
with DataProfilerError::source_changed.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]JsonParsingError
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]ParquetError
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]ArrowError
Fields
This variant is marked as non-exhaustive
UnsupportedDataSource
AllEnginesFailed
MetricsCalculationError
DuplicateColumnName
ConfigValidationError
DatabaseConnectionError
DatabaseQueryError
DatabaseConfigError
DatabaseFeatureDisabled
SqlValidationError
DatabaseSslError
Implementations§
Source§impl DataProfilerError
impl DataProfilerError
Sourcepub fn database_connection(message: &str) -> DataProfilerError
pub fn database_connection(message: &str) -> DataProfilerError
Create a database connection error.
The message is scrubbed of URL credentials before storage so a driver error that echoes the connection string cannot leak the password.
Sourcepub fn database_query(message: &str) -> DataProfilerError
pub fn database_query(message: &str) -> DataProfilerError
Create a database query error.
Redacts URL credentials that a driver error might surface; the raw SQL text and bound parameter values are never embedded by callers.
Sourcepub fn database_config(message: &str) -> DataProfilerError
pub fn database_config(message: &str) -> DataProfilerError
Create a database config error
Sourcepub fn database_feature_disabled(
db_name: &str,
feature: &str,
) -> DataProfilerError
pub fn database_feature_disabled( db_name: &str, feature: &str, ) -> DataProfilerError
Create a feature-not-enabled error
Sourcepub fn sql_validation(message: &str) -> DataProfilerError
pub fn sql_validation(message: &str) -> DataProfilerError
Create a SQL validation error
Sourcepub fn database_ssl(message: &str) -> DataProfilerError
pub fn database_ssl(message: &str) -> DataProfilerError
Create a database SSL error
Sourcepub fn duplicate_column_name(
duplicates: &[String],
source: &str,
) -> DataProfilerError
pub fn duplicate_column_name( duplicates: &[String], source: &str, ) -> DataProfilerError
Create a duplicate-column-name error from the already-collected list of repeated names and a short transport label.
Only the offending names and the source are embedded — never row values — so the diagnostic cannot leak cell data.
Sourcepub fn csv_parsing(
original_error: &str,
file_path: Option<&str>,
) -> DataProfilerError
pub fn csv_parsing( original_error: &str, file_path: Option<&str>, ) -> DataProfilerError
Create a CSV parsing error with helpful suggestions.
file_path is None at boundaries that do not know the source (e.g. the
From<csv::Error> conversion); pass Some(path) whenever it is known so
the suggestion can name the offending file instead of a placeholder.
Sourcepub fn csv_parsing_from<E>(
original: E,
file_path: Option<&str>,
) -> DataProfilerError
pub fn csv_parsing_from<E>( original: E, file_path: Option<&str>, ) -> DataProfilerError
Create a CSV parsing error that retains original as its source.
The suggestion is derived from the same message text as
DataProfilerError::csv_parsing, so the two forms render identically;
only the cause chain differs.
Sourcepub fn file_not_found<P>(path: P) -> DataProfilerError
pub fn file_not_found<P>(path: P) -> DataProfilerError
Create a file not found error with path context
Sourcepub fn binary_input(
path: &Path,
signature: BinarySignature,
) -> DataProfilerError
pub fn binary_input( path: &Path, signature: BinarySignature, ) -> DataProfilerError
A file at path whose bytes carry signature, refused before a text
reader parses it.
Sourcepub fn source_changed(
path: &str,
detail: impl Into<String>,
) -> DataProfilerError
pub fn source_changed( path: &str, detail: impl Into<String>, ) -> DataProfilerError
The object at path changed while it was being read; detail says
how that showed.
Sourcepub fn unsupported_format(extension: &str) -> DataProfilerError
pub fn unsupported_format(extension: &str) -> DataProfilerError
Create unsupported format error with format detection
Sourcepub fn invalid_config(message: &str, suggestion: &str) -> DataProfilerError
pub fn invalid_config(message: &str, suggestion: &str) -> DataProfilerError
Create configuration error with specific suggestion
Sourcepub fn invalid_config_with_source<E>(
message: impl Into<String>,
suggestion: impl Into<String>,
original: E,
) -> DataProfilerError
pub fn invalid_config_with_source<E>( message: impl Into<String>, suggestion: impl Into<String>, original: E, ) -> DataProfilerError
Create a configuration error that retains original as its source.
Used by the TOML and glob conversions, where the underlying parser reports a position worth reaching programmatically.
Sourcepub fn streaming_error(message: &str) -> DataProfilerError
pub fn streaming_error(message: &str) -> DataProfilerError
Create streaming error with context
Sourcepub fn streaming_with_suggestion(
message: impl Into<String>,
suggestion: impl Into<String>,
) -> DataProfilerError
pub fn streaming_with_suggestion( message: impl Into<String>, suggestion: impl Into<String>, ) -> DataProfilerError
Create a streaming error with an actionable suggestion and no source.
An empty suggestion means there is no remedy to offer the caller.
Sourcepub fn streaming_with_source<E>(
message: impl Into<String>,
suggestion: impl Into<String>,
original: E,
) -> DataProfilerError
pub fn streaming_with_source<E>( message: impl Into<String>, suggestion: impl Into<String>, original: E, ) -> DataProfilerError
Create a streaming error that retains original without changing its
contextual message, suggestion, or streaming category.
Sourcepub fn io_error(original: Error) -> DataProfilerError
pub fn io_error(original: Error) -> DataProfilerError
Create an I/O error that retains original as its source.
Takes the error by value: std::io::Error is not cloneable, so a
borrowed one could only ever be stringified, which is what this issue
set out to stop. Use map_err(DataProfilerError::io_error) at call
sites.
Sourcepub fn io_message(message: &str) -> DataProfilerError
pub fn io_message(message: &str) -> DataProfilerError
Create an I/O error from a message, for callers with no originating error to retain (a condition detected by dataprof itself rather than reported by the OS).
Sourcepub fn json_parsing_error(original: &str) -> DataProfilerError
pub fn json_parsing_error(original: &str) -> DataProfilerError
Create a JSON parsing error with no retained source.
Sourcepub fn json_parsing_from<E>(original: E) -> DataProfilerError
pub fn json_parsing_from<E>(original: E) -> DataProfilerError
Create a JSON parsing error that retains original as its source.
Sourcepub fn csv_parsing_with_source<E>(
message: impl Into<String>,
suggestion: impl Into<String>,
original: E,
) -> DataProfilerError
pub fn csv_parsing_with_source<E>( message: impl Into<String>, suggestion: impl Into<String>, original: E, ) -> DataProfilerError
Create a CSV parsing error with a caller-supplied message and
suggestion that still retains original as its source.
For callers whose suggestion is specific to their own context and so
cannot come from DataProfilerError::csv_parsing’s message analysis.
Sourcepub fn csv_structure(
message: impl Into<String>,
suggestion: impl Into<String>,
) -> DataProfilerError
pub fn csv_structure( message: impl Into<String>, suggestion: impl Into<String>, ) -> DataProfilerError
Create a CSV parsing error for a structural problem the parser itself accepted, so there is no underlying error to keep as its source.
Sourcepub fn json_parsing_with_source<E>(
message: impl Into<String>,
original: E,
) -> DataProfilerError
pub fn json_parsing_with_source<E>( message: impl Into<String>, original: E, ) -> DataProfilerError
Create a JSON parsing error with a caller-supplied message that still
retains original as its source.
Used where the message adds context the decoder does not have (a record position, a physical line number) and the decoder error is still worth keeping underneath it.
Sourcepub fn arrow_with_source<E>(
message: impl Into<String>,
original: E,
) -> DataProfilerError
pub fn arrow_with_source<E>( message: impl Into<String>, original: E, ) -> DataProfilerError
Create an Arrow error with a caller-supplied message that still retains
original as its source.
Sourcepub fn parquet_with_source<E>(
message: impl Into<String>,
original: E,
) -> DataProfilerError
pub fn parquet_with_source<E>( message: impl Into<String>, original: E, ) -> DataProfilerError
Create a Parquet error with a caller-supplied message that still retains
original as its source.
Sourcepub fn io_with_source<E>(
message: impl Into<String>,
original: E,
) -> DataProfilerError
pub fn io_with_source<E>( message: impl Into<String>, original: E, ) -> DataProfilerError
Create an I/O error with a caller-supplied message that still retains
original as its source.
Sourcepub fn arrow_error(message: &str) -> DataProfilerError
pub fn arrow_error(message: &str) -> DataProfilerError
Create an Arrow error with no retained source.
Sourcepub fn arrow_error_from<E>(original: E) -> DataProfilerError
pub fn arrow_error_from<E>(original: E) -> DataProfilerError
Create an Arrow error that retains original as its source.
Sourcepub fn parquet_error(message: &str) -> DataProfilerError
pub fn parquet_error(message: &str) -> DataProfilerError
Create a Parquet error with no retained source.
Sourcepub fn suggestion(&self) -> Option<String>
pub fn suggestion(&self) -> Option<String>
The actionable next step for this error, as structured context.
Suggestions live in the variants and the Display string, but callers
that want to react programmatically (or render the hint separately from
the message) should read it here rather than parse the formatted output.
Trait Implementations§
Source§impl Debug for DataProfilerError
impl Debug for DataProfilerError
Source§impl Display for DataProfilerError
impl Display for DataProfilerError
Source§impl Error for DataProfilerError
impl Error for DataProfilerError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<ArrowError> for DataProfilerError
Available on crate feature arrow only.Convert from arrow::error::ArrowError to DataProfilerError
impl From<ArrowError> for DataProfilerError
arrow only.Convert from arrow::error::ArrowError to DataProfilerError
Source§fn from(err: ArrowError) -> DataProfilerError
fn from(err: ArrowError) -> DataProfilerError
Source§impl From<Error> for DataProfilerError
Convert from anyhow::Error to DataProfilerError with context.
impl From<Error> for DataProfilerError
Convert from anyhow::Error to DataProfilerError with context.
These conversions run where the source path/operation is not known, so they
never fabricate one: a path is only ever attached by the call sites that hold
it (see DataProfilerError::csv_parsing, map_io_error, and the facade’s
existence check). Preserving the original message keeps the source diagnostic.
Source§fn from(err: Error) -> DataProfilerError
fn from(err: Error) -> DataProfilerError
Source§impl From<Error> for DataProfilerError
Convert from std::io::Error to DataProfilerError.
impl From<Error> for DataProfilerError
Convert from std::io::Error to DataProfilerError.
Path-less by design: callers that know the file use map_io_error to produce
a DataProfilerError::FileNotFound with the real path. Here we keep the OS
message (which already names the condition) rather than guessing a path.
Source§fn from(err: Error) -> DataProfilerError
fn from(err: Error) -> DataProfilerError
Source§impl From<Error> for DataProfilerError
Convert from csv::Error to DataProfilerError with enhanced context.
impl From<Error> for DataProfilerError
Convert from csv::Error to DataProfilerError with enhanced context.
The source path is unknown at this boundary, so the suggestion is written
without a filename rather than the misleading 'unknown' placeholder.
Source§fn from(err: Error) -> DataProfilerError
fn from(err: Error) -> DataProfilerError
Source§impl From<Error> for DataProfilerError
Convert from serde_json::Error to DataProfilerError
impl From<Error> for DataProfilerError
Convert from serde_json::Error to DataProfilerError
Source§fn from(err: Error) -> DataProfilerError
fn from(err: Error) -> DataProfilerError
Auto Trait Implementations§
impl !RefUnwindSafe for DataProfilerError
impl !UnwindSafe for DataProfilerError
impl Freeze for DataProfilerError
impl Send for DataProfilerError
impl Sync for DataProfilerError
impl Unpin for DataProfilerError
impl UnsafeUnpin for DataProfilerError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more