#[derive(Debug, thiserror::Error)]
pub enum LibError {
#[error("except group")]
ExceptGroup,
#[error("library param should only a name")]
LibraryParamLenUnmatch,
#[error("expect attr {0} but not found")]
MissAttr(String),
#[error("unsupport direction literal {0}")]
UnsupportDirection(String),
#[error(transparent)]
Io(#[from] std::io::Error),
#[error("parse error: {0}")]
Parse(String),
#[error("value kind unmatch, expect {0} but got {1}")]
ValueKindUnmatch(&'static str, &'static str),
}
pub type LibResult<T> = Result<T, LibError>;