1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
use std::fmt;
use crate::config::Config;
use crate::process::ProcessRecord;
pub trait Connector {
fn to_string(&self) -> String;
fn on_startup(&self, config: &Config) -> Result<(), ConnectorError>;
fn on_event_kill(
&self,
config: &Config,
proc: &ProcessRecord,
prediction: f32,
) -> Result<(), ConnectorError>;
}
pub struct ConnectorError {
connector_name: String,
details: String,
}
impl ConnectorError {
pub fn new(n: &str, d: &str) -> ConnectorError {
return ConnectorError {
connector_name: n.to_string(),
details: d.to_string(),
};
}
}
impl fmt::Display for ConnectorError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{} : {}", self.connector_name, self.details)
}
}