Move stuff around to prep for future crates
Eventually, I want to take the code for working with the official binary formats and split it out into a standalone library. The code for parsing my unofficial text formats would then use that library as a dependency. I might also spin off the text format code into its own library someday. It might be useful to have a common text format. This commit is just anticipatory prep work; I'm definitely not ready to split this into a bunch of different crates today! I want to firm up the data structures and the text format first.
This commit is contained in:
+5
-11
@@ -21,23 +21,17 @@ pub enum ParseError {
|
||||
#[error("board data too large")]
|
||||
BoardTooLarge,
|
||||
|
||||
#[error("parse error: {0}")]
|
||||
ParseError(String),
|
||||
|
||||
#[error("text parse error: {message}")]
|
||||
TextParseError { message: String },
|
||||
|
||||
#[error("invalid hex in terrain: {0}")]
|
||||
InvalidHex(String),
|
||||
#[error("nom error: {0}")]
|
||||
NomError(String),
|
||||
}
|
||||
|
||||
impl<I> NomParseError<I> for ParseError {
|
||||
fn from_error_kind(_input: I, kind: ErrorKind) -> Self {
|
||||
Self::ParseError(kind.description().to_string())
|
||||
Self::NomError(kind.description().to_string())
|
||||
}
|
||||
|
||||
fn append(_input: I, kind: ErrorKind, other: Self) -> Self {
|
||||
Self::ParseError(format!("{}: {:?}", other, kind))
|
||||
Self::NomError(format!("{}: {:?}", other, kind))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +39,7 @@ impl From<nom::Err<ParseError>> for ParseError {
|
||||
fn from(value: nom::Err<ParseError>) -> Self {
|
||||
match value {
|
||||
nom::Err::Error(e) | nom::Err::Failure(e) => e,
|
||||
nom::Err::Incomplete(needed) => Self::ParseError(format!("incomplete: {:?}", needed)),
|
||||
nom::Err::Incomplete(needed) => Self::NomError(format!("incomplete: {:?}", needed)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -2,9 +2,8 @@ mod elements;
|
||||
mod encoding;
|
||||
mod error;
|
||||
mod parse;
|
||||
mod text;
|
||||
|
||||
pub use elements::{Element, element_id_from_name, element_name, resolve_alias};
|
||||
pub use encoding::{decode_multiline, decode_oneline, encode_multiline, encode_oneline};
|
||||
pub use error::ParseError;
|
||||
pub use parse::{Board, Program, Stat, Tile, World};
|
||||
pub use text::{board_to_text, text_to_board, text_to_world, world_to_text};
|
||||
|
||||
-1201
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user