rnotifylib/send_error/
reported.rs1use std::error::Error;
2use crate::message::Message;
3use crate::send_error::borrowed::SendErrorBorrowed;
4use crate::send_error::owned::SendErrorOwned;
5use crate::send_error::SendError;
6
7#[derive(Debug)]
8pub struct ReportedSendError<'a> {
9 send_err: SendErrorBorrowed<'a>,
10 error_report_summary: ErrorReportSummary,
11}
12
13impl<'a> ReportedSendError<'a> {
14 pub fn new(send_err: SendErrorBorrowed<'a>, error_report_summary: ErrorReportSummary) -> Self {
15 Self {
16 send_err,
17 error_report_summary,
18 }
19 }
20
21 pub fn get_report_summary(&self) -> &ErrorReportSummary {
22 &self.error_report_summary
23 }
24}
25
26impl<'a> SendError for ReportedSendError<'a> {
27 fn get_error(&self) -> &Box<dyn Error> {
28 &self.send_err.get_error()
29 }
30
31 fn get_failed_destination_id(&self) -> &str {
32 &self.send_err.get_failed_destination_id()
33 }
34
35 fn get_failed_message(&self) -> &Message {
36 self.send_err.get_failed_message()
37 }
38}
39
40#[derive(Default, Debug)]
41pub struct ErrorReportSummary {
42 reported: bool,
44 error_report_failures: Vec<SendErrorOwned>
46}
47
48impl ErrorReportSummary {
49 pub fn new(reported: bool, error_report_failures: Vec<SendErrorOwned>) -> Self {
50 Self {
51 reported,
52 error_report_failures,
53 }
54 }
55
56 pub fn was_reported(&self) -> bool {
57 self.reported
58 }
59
60 pub fn get_report_failures(&self) -> &Vec<SendErrorOwned> {
61 &self.error_report_failures
62 }
63}