///|
pub(all) suberror RecordError {
Leader(@leader.LeaderError)
Directory(@directory.DirectoryError)
InvalidLength(Int, Int)
FieldOutsideRecord(String)
FieldTerminatorMissing(String)
InvalidControlField(String)
InvalidDataField(String)
InvalidUtf8(String)
InvalidSubfield(String)
} derive(Eq, Debug)
///|
pub impl Show for RecordError with fn output(self, logger) {
logger.write_string(self.to_string())
}
///|
pub fn RecordError::to_string(self : RecordError) -> String {
match self {
Leader(error) => "leader: \{error}"
Directory(error) => "directory: \{error}"
InvalidLength(expected, actual) =>
"record length mismatch: leader=\{expected}, actual=\{actual}"
FieldOutsideRecord(tag) => "field \{tag} points outside the record"
FieldTerminatorMissing(tag) => "field \{tag} is missing its terminator"
InvalidControlField(tag) => "control field \{tag} contains subfield data"
InvalidDataField(tag) => "data field \{tag} is too short for indicators"
InvalidUtf8(tag) => "field \{tag} contains invalid UTF-8"
InvalidSubfield(tag) => "data field \{tag} contains malformed subfield data"
}
}