use serde::Serialize;
use thiserror::Error;
pub mod ams;
pub mod bitcoin;
pub mod copt;
pub mod dhcp;
pub mod dhcpv6;
pub mod dns;
pub mod giop;
pub mod http;
pub mod modbus_tcp;
pub mod mqtt;
pub mod ntp;
pub mod opcua;
pub mod s7comm;
pub mod snmp;
pub mod srvloc;
pub mod tls;
#[derive(Debug, Error, Clone, Serialize)]
pub enum ApplicationError {
#[error("Packet is empty")]
EmptyPacket,
#[error("Failed to parse NTP packet")]
NtpParseError,
#[error("Failed to parse DHCPv6 packet")]
Dhcpv6ParseError,
#[error("Failed to parse DNS packet")]
DnsParseError,
#[error("Failed to parse QUIC packet")]
QuicParseError,
#[error("Failed to parse Bitcoin packet")]
BitcoinParseError,
#[error("Failed to parse MQTT packet")]
MqttParseError,
#[error("Failed to parse SNMP packet")]
SnmpParseError,
}