diff --git a/src/definitions/object.rs b/src/definitions/object.rs index 59f7758..1cbc6f1 100644 --- a/src/definitions/object.rs +++ b/src/definitions/object.rs @@ -34,16 +34,12 @@ pub struct Service { #[serde(rename_all = "snake_case")] pub enum ServiceType { TCP { - source_port: u64, - source_port_end: Option, - destination_port: u64, - destination_port_end: Option, + source: PortDefinition, + destination: PortDefinition, }, UDP { - source_port: u64, - source_port_end: Option, - destination_port: u64, - destination_port_end: Option, + source: PortDefinition, + destination: PortDefinition, }, ICMP { code: u8, @@ -52,3 +48,10 @@ pub enum ServiceType { children: Vec, }, } + +#[derive(Serialize, Deserialize, Clone, Debug)] +#[serde(rename_all = "snake_case")] +pub enum PortDefinition { + Single { port: u64 }, + Range { start_port: u64, end_port: u64 }, +}