#[cfg(feature = "serde")]
#[macro_use]
extern crate serde;
#[macro_use]
extern crate snafu;
#[cfg(feature = "bidir-map")]
extern crate bidir_map;
extern crate indexmap;
extern crate try_from;
mod channel_permission;
mod convert;
mod data_type;
mod data_value;
mod error_code;
mod job_stopped_reason;
mod module_channel_reference;
mod module_state;
mod override_option;
mod parameter_value;
mod storage_type;
mod storage_type_with_mixed;
pub use channel_permission::ChannelPermission;
pub use convert::TryConvertTo;
pub use data_type::{DataType, HasDataType};
pub use data_value::{
ConstructParameterMask, DataValue, DataValueDescriptive, DataValueRaw,
DeconstructParameterMask, IsParameterMask,
};
pub use error_code::{ErrorCode, HasErrorCode};
pub use job_stopped_reason::JobStoppedReason;
pub use module_channel_reference::{
IsModuleChannelReference, ModuleChannelReference,
};
pub use module_state::ModuleState;
pub use override_option::OverrideOption;
pub use parameter_value::{ParameterValue, ParameterValueRaw};
pub use storage_type::{HasStorageType, IsInStorageType, StorageType};
pub use storage_type_with_mixed::StorageTypeWithMixed;
use indexmap::IndexSet;
use snafu::{Backtrace, Snafu};
pub type Result<T, E = Error> = std::result::Result<T, E>;
#[derive(Debug, Snafu)]
pub enum Error {
#[snafu(display(
"Value {:?} is not in range for type {:?}",
value,
datatype
))]
ValueOutOfRangeForType {
value: DataValueRaw,
datatype: DataType,
backtrace: Backtrace,
},
#[snafu(display(
"Expected datatype compatible with {:?} found {:?}",
expected,
found
))]
IncompatibleDataType {
expected: DataType,
found: DataType,
backtrace: Backtrace,
},
#[snafu(display(
"Parameter {:?} with index {} of mask range 64",
parameter,
index
))]
ParameterOutOfMaskRange {
parameter: String,
index: usize,
backtrace: Backtrace,
},
#[snafu(display(
"Mask {:#b} has bit {} for non-existing parameters set",
mask,
index
))]
ParameterMaskOutOfRange {
mask: u64,
index: usize,
backtrace: Backtrace,
},
#[snafu(display(
"Parameters {:?} are not in parameter set",
parameters
))]
ParametersNotInParameterSet {
parameters: IndexSet<String>,
backtrace: Backtrace,
},
}