lt_rs/alerts/implementations/
scrape_failed.rs

1use crate::{
2    alerts::{ScrapeFailedAlert, protocol_version::ProtocolVersion},
3    errors::LtrsError,
4    ffi::alerts::scrape_failed::ffi::{
5        scrape_failed_alert_get_error, scrape_failed_alert_get_error_message,
6        scrape_failed_alert_get_version,
7    },
8    torrent_handle::TorrentHandle,
9};
10
11impl ScrapeFailedAlert {
12    #[inline(always)]
13    pub fn handle(&self) -> TorrentHandle {
14        self.as_torrent_alert().handle()
15    }
16
17    #[inline(always)]
18    pub fn torrent_name<'a>(&'a self) -> &'a str {
19        self.as_torrent_alert().torrent_name()
20    }
21
22    #[inline(always)]
23    pub fn message(&self) -> String {
24        self.as_torrent_alert().message()
25    }
26
27    #[inline(always)]
28    pub fn tracker_url<'a>(&'a self) -> &'a str {
29        self.as_tracker_alert().tracker_url()
30    }
31
32    #[inline(always)]
33    pub fn local_endpoint(&self) {
34        self.as_tracker_alert().local_endpoint()
35    }
36
37    #[inline(always)]
38    pub fn error_message<'a>(&'a self) -> &'a str {
39        unsafe { scrape_failed_alert_get_error_message(self.0) }
40    }
41
42    #[inline(always)]
43    pub fn error(&self) -> LtrsError {
44        unsafe { scrape_failed_alert_get_error(self.0) }.into()
45    }
46
47    #[inline(always)]
48    pub fn version(&self) -> ProtocolVersion {
49        ProtocolVersion::from_u8(unsafe { scrape_failed_alert_get_version(self.0) })
50    }
51}