-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #16 from sancane/error_code
Error code
- Loading branch information
Showing
21 changed files
with
1,002 additions
and
871 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
[package] | ||
name = "precis-core" | ||
version = "0.1.3" | ||
version = "0.1.4" | ||
authors = ["Santiago Carot-Nemesio <[email protected]>"] | ||
description = """ | ||
PRECIS Framework: Preparation, Enforcement, and Comparison of | ||
|
@@ -17,11 +17,11 @@ categories = ["text-processing", "internationalization"] | |
edition = "2018" | ||
|
||
[dev-dependencies] | ||
precis-tools = { path = "../precis-tools", version = "0.1.3" } | ||
precis-tools = { path = "../precis-tools", version = "0.1.4" } | ||
ucd-parse = "0.1.8" | ||
|
||
[build-dependencies] | ||
precis-tools = { path = "../precis-tools", version = "0.1.3" } | ||
precis-tools = { path = "../precis-tools", version = "0.1.4" } | ||
ucd-parse = "0.1.8" | ||
|
||
[dependencies] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,57 @@ | ||
use crate::DerivedPropertyValue; | ||
|
||
/// Represents any kind of error that may happen when | ||
/// preparing, enforcing or comparing of internationalized | ||
/// preparing, enforcing or comparing internationalized | ||
/// strings | ||
#[derive(Debug, PartialEq)] | ||
pub enum Error { | ||
/// Operation disallowed | ||
Disallowed, | ||
/// Operation not applicable | ||
NotApplicable, | ||
/// Undefined error | ||
/// Invalid label | ||
Invalid, | ||
/// Detected a disallowed Unicode code pint in the label. | ||
/// [`CodepointInfo`] contains information about the code point. | ||
BadCodepoint(CodepointInfo), | ||
/// Error used to deal with any unexpected condition not directly | ||
/// covered by any other category. | ||
Unexpected(UnexpectedError), | ||
} | ||
|
||
/// Error that contains information regarding the wrong Unicode code point | ||
#[derive(Debug, PartialEq)] | ||
pub struct CodepointInfo { | ||
/// Unicode code point | ||
pub cp: u32, | ||
/// The position of the Unicode code point in the label | ||
pub position: usize, | ||
/// The derived property value | ||
pub property: DerivedPropertyValue, | ||
} | ||
|
||
impl CodepointInfo { | ||
/// Creates a new `CodepointInfo` `struct` | ||
pub fn new(cp: u32, position: usize, property: DerivedPropertyValue) -> Self { | ||
Self { | ||
cp, | ||
position, | ||
property, | ||
} | ||
} | ||
} | ||
|
||
/// Internal errors that group unusual error conditions that mostly | ||
/// have to do with the processing of wrong labels, unexpected Unicode | ||
/// code points if tested against another version defined in PRECIS, etc. | ||
#[derive(Debug, PartialEq)] | ||
pub enum UnexpectedError { | ||
/// Error caused when trying to apply a context rule over | ||
/// an invalid code point. | ||
ContextRuleNotApplicable(CodepointInfo), | ||
/// The code point requires a context rule that is not implemented. | ||
/// [`CodepointInfo`] contains information about the code point. | ||
MissingContextRule(CodepointInfo), | ||
/// Error caused when trying to apply a context rule that is not defined | ||
/// by the PRECIS profile. | ||
ProfileRuleNotApplicable, | ||
/// Unexpected error condition such as an attempt to access to a character before | ||
/// the start of a label or after the end of a label. | ||
Undefined, | ||
/// Unexpected error | ||
Unexpected, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.