use snafu::Snafu;
#[derive(Debug, Snafu)]
#[snafu(visibility(pub(crate)))]
#[allow(missing_docs)]
pub enum CompileError {
#[snafu(display("InvalidFieldName: {field_name} is not a valid rust ident"))]
InvalidFieldName { field_name: String },
#[snafu(display("DefaultValueTooLong: {message}"))]
DefaultValueTooLong { message: String },
#[snafu(display("DefaultValueTypeMismatch: {message}"))]
DefaultValueTypeMismatch { message: String },
#[snafu(display("NotRunViaCargo: Missing expected cargo env variables"))]
NotRunViaCargo,
#[snafu(display("Io: {source}"))]
Io { source: std::io::Error },
#[snafu(display("Error loading device config: {source}"))]
DeviceConfig {
source: zencan_common::device_config::LoadError,
},
}