use serde::{Deserialize, Serialize};
use thiserror::Error;
#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Deserialize, Serialize, Error)]
#[non_exhaustive]
pub enum IndexError {
#[error("ExchangeIndex: {0}")]
ExchangeIndex(String),
#[error("AssetIndex: {0}")]
AssetIndex(String),
#[error("InstrumentIndex: {0}")]
InstrumentIndex(String),
#[error("duplicate InstrumentNameInternal: {0}")]
DuplicateInstrumentNameInternal(String),
#[error("invalid contract_size: {0}")]
InvalidContractSize(String),
#[error("duplicate AssetNameInternal: {0}")]
DuplicateAssetNameInternal(String),
}