huginn_net_http/output/
mod.rs1pub mod common;
2#[cfg(feature = "p0f-request")]
3pub mod request;
4#[cfg(feature = "p0f-response")]
5pub mod response;
6
7#[cfg(feature = "json")]
8pub(crate) fn serialize_display<T: std::fmt::Display, S: serde::Serializer>(
9 val: &T,
10 s: S,
11) -> Result<S::Ok, S::Error> {
12 s.serialize_str(&val.to_string())
13}
14
15pub use common::*;
16#[cfg(feature = "p0f-request")]
17pub use request::*;
18#[cfg(feature = "p0f-response")]
19pub use response::*;
20
21#[derive(Debug)]
31#[cfg_attr(feature = "json", derive(serde::Serialize))]
32pub struct HttpAnalysisResult {
33 #[cfg(feature = "p0f-request")]
35 pub http_request: Option<HttpRequestOutput>,
36 #[cfg(feature = "p0f-response")]
38 pub http_response: Option<HttpResponseOutput>,
39}
40
41impl HttpAnalysisResult {
42 #[must_use]
43 pub const fn empty() -> Self {
44 Self {
45 #[cfg(feature = "p0f-request")]
46 http_request: None,
47 #[cfg(feature = "p0f-response")]
48 http_response: None,
49 }
50 }
51
52 #[must_use]
53 pub fn is_empty(&self) -> bool {
54 #[cfg(feature = "p0f-request")]
55 if self.http_request.is_some() {
56 return false;
57 }
58 #[cfg(feature = "p0f-response")]
59 if self.http_response.is_some() {
60 return false;
61 }
62 true
63 }
64}