rspamd_client/protocol/
scan.rs1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4#[derive(Debug, Serialize, Deserialize)]
6pub struct RspamdScanReply {
7 #[serde(default)]
9 pub is_skipped: bool,
10 #[serde(default)]
12 pub score: f64,
13 #[serde(default)]
15 pub required_score: f64,
16 #[serde(default)]
18 pub action: String,
19 #[serde(default)]
21 pub thresholds: HashMap<String, f64>,
22 #[serde(default)]
24 pub symbols: HashMap<String, Symbol>,
25 #[serde(default)]
27 pub messages: HashMap<String, String>,
28 #[serde(default)]
30 pub urls: Vec<String>,
31 #[serde(default)]
33 pub emails: Vec<String>,
34 #[serde(rename = "message-id", default)]
36 pub message_id: String,
37 #[serde(default)]
39 pub time_real: f64,
40 #[serde(default)]
42 pub milter: Option<Milter>,
43 #[serde(default)]
44 pub filename: String,
46 #[serde(default)]
47 pub scan_time: f64,
48}
49
50#[derive(Debug, Serialize, Deserialize)]
52pub struct Symbol {
53 #[serde(default)]
54 pub name: String,
55 #[serde(default)]
56 pub score: f64,
57 #[serde(default)]
58 pub metric_score: f64,
59 #[serde(default)]
60 pub description: Option<String>,
61 #[serde(default)]
62 pub options: Option<Vec<String>>,
63}
64
65#[derive(Debug, Serialize, Deserialize)]
67pub struct Milter {
68 #[serde(default)]
69 pub add_headers: HashMap<String, MailHeader>,
70 #[serde(default)]
71 pub remove_headers: HashMap<String, i32>,
72}
73
74#[derive(Debug, Serialize, Deserialize)]
76pub struct MailHeader {
77 #[serde(default)]
78 pub value: String,
79 #[serde(default)]
80 pub order: i32,
81}