sansio_bootstrap/bootstrap_udp/
bootstrap_udp_client.rs1use super::*;
2
3pub struct BootstrapUdpClient<W> {
5 bootstrap_udp: BootstrapUdp<W>,
6}
7
8impl<W: 'static> Default for BootstrapUdpClient<W> {
9 fn default() -> Self {
10 Self::new()
11 }
12}
13
14impl<W: 'static> BootstrapUdpClient<W> {
15 pub fn new() -> Self {
17 Self {
18 bootstrap_udp: BootstrapUdp::new(),
19 }
20 }
21
22 pub fn max_payload_size(&mut self, max_payload_size: usize) -> &mut Self {
24 self.bootstrap_udp.max_payload_size(max_payload_size);
25 self
26 }
27
28 pub fn pipeline(
30 &mut self,
31 pipeline_factory_fn: PipelineFactoryFn<TaggedBytesMut, W>,
32 ) -> &mut Self {
33 self.bootstrap_udp.pipeline(pipeline_factory_fn);
34 self
35 }
36
37 pub async fn bind<A: ToSocketAddrs>(&mut self, addr: A) -> Result<SocketAddr, Error> {
39 self.bootstrap_udp.bind(addr).await
40 }
41
42 pub async fn connect(
44 &mut self,
45 addr: SocketAddr,
46 ) -> Result<Rc<dyn RcOutboundPipeline<W>>, Error> {
47 self.bootstrap_udp.connect(Some(addr)).await
48 }
49
50 pub async fn stop(&self) {
52 self.bootstrap_udp.stop().await
53 }
54
55 pub async fn wait_for_stop(&self) {
57 self.bootstrap_udp.wait_for_stop().await
58 }
59
60 pub async fn graceful_stop(&self) {
62 self.bootstrap_udp.graceful_stop().await
63 }
64}