eventsource_threaded/
eventsource.rs1use super::event::Event;
2use crate::reqwest::{Client, Result};
3use crossbeam::channel::{unbounded, Receiver};
4use reqwest::header::HeaderMap;
5use std::thread;
6
7pub type ReceiverSource = Receiver<Result<Event>>;
10
11pub struct EventSource {}
12
13impl EventSource {
14 pub fn new(url: reqwest::Url, headers: HeaderMap) -> ReceiverSource {
19 let (s, r) = unbounded();
20
21 thread::spawn(move || {
22 let client = Client::new(url, headers);
23 for event in client.into_iter() {
24 let _ = s.send(event);
25 }
26 });
27 r
28 }
29}