pub struct Event { /* private fields */ }
Implementations§
Source§impl Event
impl Event
Sourcepub fn get(&self, k: &str) -> Option<&String>
pub fn get(&self, k: &str) -> Option<&String>
Examples found in repository?
examples/dump-events.rs (line 35)
14fn main() -> std::io::Result<()> {
15 let args: Vec<String> = env::args().collect();
16 let host = &args[1];
17 let event = &args[2];
18 let mut stream = TcpStream::connect(host)?;
19
20 let conn = Connection::new(stream);
21 let mut client = Client::new(conn);
22 let mut stats = Stats{
23 event_per_tick: 0,
24 events_counts_per_sec: HashMap::new()
25 };
26
27 client.auth("cloudpbx").expect("fails to authenticate");
28 client.event(event).expect("fails enabling events");
29
30 let mut now = std::time::Instant::now();
31 let notify_on_secs = std::time::Duration::from_secs(1);
32
33 loop {
34 let event: Event = client.pull_event().unwrap();
35 let event_name = event.get("Event-Name").unwrap().to_string();
36
37 stats.event_per_tick += 1;
38 if event_name == "CUSTOM" {
39 let event_subclass = event.get("Event-Subclass").unwrap().to_string();
40 let mut event_name = format!("{}:{}", event_name, event_subclass);
41 if let Some(action) = event.get("CC-Action") {
42 event_name = format!("{}:{}", event_name, action.to_string())
43 }
44 if let Some(counter) = stats.events_counts_per_sec.get_mut(&event_name) {
45 *counter += 1;
46 } else {
47 stats.events_counts_per_sec.insert(event_name, 1);
48 }
49 } else {
50 if let Some(counter) = stats.events_counts_per_sec.get_mut(&event_name) {
51 *counter += 1;
52 } else {
53 stats.events_counts_per_sec.insert(event_name, 1);
54 }
55 }
56
57 if now.elapsed() >= notify_on_secs {
58 let stamp = SystemTime::now().duration_since(SystemTime::UNIX_EPOCH).unwrap();
59 println!("{} {:?} {:?}", stamp.as_secs(), now.elapsed(), stats);
60
61 now = std::time::Instant::now();
62 stats.event_per_tick = 0;
63 stats.events_counts_per_sec.clear();
64 }
65 }
66
67 Ok(())
68}
More examples
examples/stats-events.rs (line 35)
14fn main() -> std::io::Result<()> {
15 let args: Vec<String> = env::args().collect();
16 let host = &args[1];
17 let event = &args[2];
18 let mut stream = TcpStream::connect(host)?;
19
20 let conn = Connection::new(stream);
21 let mut client = Client::new(conn);
22 let mut stats = Stats{
23 event_per_tick: 0,
24 events_counts_per_tick: HashMap::new()
25 };
26
27 client.auth("cloudpbx").expect("fails to authenticate");
28 client.event(event).expect("fails enabling events");
29
30 let mut now = std::time::Instant::now();
31 let notify_on_secs = std::time::Duration::from_secs(1);
32
33 loop {
34 let event: Event = client.pull_event().unwrap();
35 let event_name = event.get("Event-Name").unwrap().to_string();
36
37 stats.event_per_tick += 1;
38 if event_name == "CUSTOM" {
39 let event_subclass = event.get("Event-Subclass").unwrap().to_string();
40 let mut event_name = format!("{}:{}", event_name, event_subclass);
41 if let Some(action) = event.get("CC-Action") {
42 event_name = format!("{}:{}", event_name, action.to_string())
43 }
44 if let Some(counter) = stats.events_counts_per_tick.get_mut(&event_name) {
45 *counter += 1;
46 } else {
47 stats.events_counts_per_tick.insert(event_name, 1);
48 }
49 } else {
50 if let Some(counter) = stats.events_counts_per_tick.get_mut(&event_name) {
51 *counter += 1;
52 } else {
53 stats.events_counts_per_tick.insert(event_name, 1);
54 }
55 }
56
57 if now.elapsed() >= notify_on_secs {
58 let stamp = SystemTime::now().duration_since(SystemTime::UNIX_EPOCH).unwrap();
59 println!("{} {:?} {:?}", stamp.as_secs(), now.elapsed(), stats);
60
61 now = std::time::Instant::now();
62 stats.event_per_tick = 0;
63 stats.events_counts_per_tick.clear();
64 }
65 }
66
67 Ok(())
68}
pub fn len(&self) -> usize
Trait Implementations§
impl Eq for Event
impl StructuralPartialEq for Event
Auto Trait Implementations§
impl Freeze for Event
impl RefUnwindSafe for Event
impl Send for Event
impl Sync for Event
impl Unpin for Event
impl UnwindSafe for Event
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more