use std::{borrow::Cow, num::ParseIntError};
use crate::error::ParseError;
use super::object::PostScriptString;
pub type PostScriptResult<T> = Result<T, PostScriptError>;
#[derive(Debug)]
pub enum PostScriptError {
ParseError(Cow<'static, str>),
ParseIntError(ParseIntError),
ParseFloatError(fast_float::Error),
DictionaryFull,
DictStackOverflow,
DictStackUnderflow,
ExecStackOverflow,
StackOverflow,
StackUnderflow,
TypeCheck,
RangeCheck,
Undefined {
key: PostScriptString,
},
InvalidFont,
}
impl From<ParseIntError> for PostScriptError {
fn from(err: ParseIntError) -> Self {
Self::ParseIntError(err)
}
}
impl From<fast_float::Error> for PostScriptError {
fn from(err: fast_float::Error) -> Self {
Self::ParseFloatError(err)
}
}
impl From<PostScriptError> for ParseError {
fn from(err: PostScriptError) -> Self {
Self::PostScriptError(err)
}
}