fidl_fuchsia_posix_socket/
fidl_fuchsia_posix_socket.rs

1// WARNING: This file is machine generated by fidlgen.
2
3#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::client::QueryResponseFut;
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9use fidl::endpoints::{ControlHandle as _, Responder as _};
10pub use fidl_fuchsia_posix_socket__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, PartialEq)]
15pub struct ProviderDatagramSocketWithOptionsRequest {
16    pub domain: Domain,
17    pub proto: DatagramSocketProtocol,
18    pub opts: SocketCreationOptions,
19}
20
21impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
22    for ProviderDatagramSocketWithOptionsRequest
23{
24}
25
26#[derive(Debug, PartialEq)]
27pub struct ProviderStreamSocketWithOptionsRequest {
28    pub domain: Domain,
29    pub proto: StreamSocketProtocol,
30    pub opts: SocketCreationOptions,
31}
32
33impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
34    for ProviderStreamSocketWithOptionsRequest
35{
36}
37
38#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
39pub struct ProviderDatagramSocketDeprecatedResponse {
40    pub s: fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
41}
42
43impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
44    for ProviderDatagramSocketDeprecatedResponse
45{
46}
47
48#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
49pub struct ProviderStreamSocketWithOptionsResponse {
50    pub s: fidl::endpoints::ClientEnd<StreamSocketMarker>,
51}
52
53impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
54    for ProviderStreamSocketWithOptionsResponse
55{
56}
57
58#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
59pub struct ProviderStreamSocketResponse {
60    pub s: fidl::endpoints::ClientEnd<StreamSocketMarker>,
61}
62
63impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
64    for ProviderStreamSocketResponse
65{
66}
67
68#[derive(Debug, PartialEq)]
69pub struct StreamSocketAcceptResponse {
70    pub addr: Option<Box<fidl_fuchsia_net::SocketAddress>>,
71    pub s: fidl::endpoints::ClientEnd<StreamSocketMarker>,
72}
73
74impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
75    for StreamSocketAcceptResponse
76{
77}
78
79#[derive(Debug, Default, PartialEq)]
80pub struct DatagramSocketDescribeResponse {
81    /// `ZX_SOCKET_DATAGRAM` on which data is sent and received.
82    pub socket: Option<fidl::Socket>,
83    /// Size of the buffer used to receive Tx metadata.
84    pub tx_meta_buf_size: Option<u64>,
85    /// Size of the buffer used to receive Rx metadata.
86    pub rx_meta_buf_size: Option<u64>,
87    /// Identifies the version of the protocol used to encode and decode
88    /// metadata sent alongside payloads over the socket.
89    pub metadata_encoding_protocol_version: Option<UdpMetadataEncodingProtocolVersion>,
90    #[doc(hidden)]
91    pub __source_breaking: fidl::marker::SourceBreaking,
92}
93
94impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
95    for DatagramSocketDescribeResponse
96{
97}
98
99#[derive(Debug, Default, PartialEq)]
100pub struct DatagramSocketRecvMsgPostflightResponse {
101    /// Represents the validity of this structure.
102    ///
103    /// The structure is invalid if the peer is closed.
104    pub validity: Option<fidl::EventPair>,
105    /// Identifies whether the `SO_TIMESTAMP` or `SO_TIMESTAMPNS` control messages are
106    /// requested.
107    pub timestamp: Option<TimestampOption>,
108    /// Identifies the status (requested or not) of up to 32 control messages.
109    /// This set size should be large enough to signal the status of all cmsgs supported
110    /// by POSIX systems as of 2022. If that changes, the set can be extended by adding
111    /// additional bits fields.
112    pub requests: Option<CmsgRequests>,
113    #[doc(hidden)]
114    pub __source_breaking: fidl::marker::SourceBreaking,
115}
116
117impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
118    for DatagramSocketRecvMsgPostflightResponse
119{
120}
121
122#[derive(Debug, Default, PartialEq)]
123pub struct DatagramSocketSendMsgPreflightResponse {
124    /// The validated destination address.
125    ///
126    /// Present only in response to an unset `to` addreess.
127    pub to: Option<fidl_fuchsia_net::SocketAddress>,
128    /// Represents the validity of this structure.
129    ///
130    /// The structure is invalid if any of the elements' peer is closed.
131    /// Datagrams sent with the associated metadata after invalidation will be
132    /// silently dropped.
133    pub validity: Option<Vec<fidl::EventPair>>,
134    /// The maximum datagram size that can be sent.
135    ///
136    /// Datagrams exceeding this will be silently dropped.
137    pub maximum_size: Option<u32>,
138    #[doc(hidden)]
139    pub __source_breaking: fidl::marker::SourceBreaking,
140}
141
142impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
143    for DatagramSocketSendMsgPreflightResponse
144{
145}
146
147/// Options that can be provided at socket creation.
148#[derive(Debug, Default, PartialEq)]
149pub struct SocketCreationOptions {
150    /// The marks for the created socket. If a mark is missing from the table,
151    /// it will remain unset for the created socket.
152    pub marks: Option<fidl_fuchsia_net::Marks>,
153    /// A wake group to add the socket to on creation.
154    ///
155    /// If absent, the socket is not added to any wake group. If the token
156    /// provided does not correspond to an existing wake group, socket creation
157    /// succeeds, but the socket is not added to any wake group. This makes it
158    /// easier for clients to avoid a race between shutting down their wake
159    /// group and creating a new socket.
160    pub group: Option<fidl_fuchsia_net_resources::WakeGroupToken>,
161    #[doc(hidden)]
162    pub __source_breaking: fidl::marker::SourceBreaking,
163}
164
165impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for SocketCreationOptions {}
166
167#[derive(Debug, Default, PartialEq)]
168pub struct StreamSocketDescribeResponse {
169    /// `ZX_SOCKET_STREAM` on which data is sent and received.
170    pub socket: Option<fidl::Socket>,
171    #[doc(hidden)]
172    pub __source_breaking: fidl::marker::SourceBreaking,
173}
174
175impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
176    for StreamSocketDescribeResponse
177{
178}
179
180#[derive(Debug, Default, PartialEq)]
181pub struct SynchronousDatagramSocketDescribeResponse {
182    /// Signals additional information about the state of the socket such as
183    /// readiness or shutdown-ness.
184    pub event: Option<fidl::EventPair>,
185    #[doc(hidden)]
186    pub __source_breaking: fidl::marker::SourceBreaking,
187}
188
189impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
190    for SynchronousDatagramSocketDescribeResponse
191{
192}
193
194#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
195pub enum ProviderDatagramSocketWithOptionsResponse {
196    DatagramSocket(fidl::endpoints::ClientEnd<DatagramSocketMarker>),
197    SynchronousDatagramSocket(fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>),
198}
199
200impl ProviderDatagramSocketWithOptionsResponse {
201    #[inline]
202    pub fn ordinal(&self) -> u64 {
203        match *self {
204            Self::DatagramSocket(_) => 1,
205            Self::SynchronousDatagramSocket(_) => 2,
206        }
207    }
208}
209
210impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
211    for ProviderDatagramSocketWithOptionsResponse
212{
213}
214
215#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
216pub enum ProviderDatagramSocketResponse {
217    DatagramSocket(fidl::endpoints::ClientEnd<DatagramSocketMarker>),
218    SynchronousDatagramSocket(fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>),
219}
220
221impl ProviderDatagramSocketResponse {
222    #[inline]
223    pub fn ordinal(&self) -> u64 {
224        match *self {
225            Self::DatagramSocket(_) => 1,
226            Self::SynchronousDatagramSocket(_) => 2,
227        }
228    }
229}
230
231impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
232    for ProviderDatagramSocketResponse
233{
234}
235
236#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
237pub struct BaseDatagramSocketMarker;
238
239impl fidl::endpoints::ProtocolMarker for BaseDatagramSocketMarker {
240    type Proxy = BaseDatagramSocketProxy;
241    type RequestStream = BaseDatagramSocketRequestStream;
242    #[cfg(target_os = "fuchsia")]
243    type SynchronousProxy = BaseDatagramSocketSynchronousProxy;
244
245    const DEBUG_NAME: &'static str = "(anonymous) BaseDatagramSocket";
246}
247pub type BaseDatagramSocketGetInfoResult =
248    Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>;
249
250pub trait BaseDatagramSocketProxyInterface: Send + Sync {
251    fn r#clone(
252        &self,
253        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
254    ) -> Result<(), fidl::Error>;
255    type CloseResponseFut: std::future::Future<
256            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
257        > + Send;
258    fn r#close(&self) -> Self::CloseResponseFut;
259    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
260    fn r#query(&self) -> Self::QueryResponseFut;
261    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
262        + Send;
263    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
264    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
265        + Send;
266    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
267    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
268        + Send;
269    fn r#get_error(&self) -> Self::GetErrorResponseFut;
270    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
271        + Send;
272    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
273    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
274        + Send;
275    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
276    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
277        + Send;
278    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
279    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
280        + Send;
281    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
282    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
283        + Send;
284    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
285    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
286        + Send;
287    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
288    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
289        + Send;
290    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
291    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
292        + Send;
293    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
294    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
295        + Send;
296    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
297    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
298        + Send;
299    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
300    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
301        + Send;
302    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
303    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
304        + Send;
305    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
306    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
307        + Send;
308    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
309    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
310        + Send;
311    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
312    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
313        + Send;
314    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
315    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
316        + Send;
317    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
318    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
319        + Send;
320    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
321    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
322        + Send;
323    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
324    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
325        + Send;
326    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
327    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
328        + Send;
329    fn r#set_bind_to_interface_index(&self, value: u64)
330    -> Self::SetBindToInterfaceIndexResponseFut;
331    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
332        + Send;
333    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
334    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
335        + Send;
336    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
337    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
338        + Send;
339    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
340    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
341        + Send;
342    fn r#set_mark(
343        &self,
344        domain: fidl_fuchsia_net::MarkDomain,
345        mark: &OptionalUint32,
346    ) -> Self::SetMarkResponseFut;
347    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
348        + Send;
349    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
350    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
351        + Send;
352    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
353    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
354        + Send;
355    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
356    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
357        + Send;
358    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
359    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
360        + Send;
361    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
362    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
363        + Send;
364    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
365    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
366        + Send;
367    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
368    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
369        + Send;
370    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
371    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
372        + Send;
373    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
374    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
375        + Send;
376    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
377    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
378        + Send;
379    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
380    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
381        + Send;
382    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
383    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
384        + Send;
385    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
386    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
387        + Send;
388    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
389    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
390            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
391        > + Send;
392    fn r#set_ip_receive_type_of_service(
393        &self,
394        value: bool,
395    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
396    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
397            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
398        > + Send;
399    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
400    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
401        + Send;
402    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
403    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
404        + Send;
405    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
406    type SetIpMulticastInterfaceResponseFut: std::future::Future<
407            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
408        > + Send;
409    fn r#set_ip_multicast_interface(
410        &self,
411        iface: u64,
412        address: &fidl_fuchsia_net::Ipv4Address,
413    ) -> Self::SetIpMulticastInterfaceResponseFut;
414    type GetIpMulticastInterfaceResponseFut: std::future::Future<
415            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
416        > + Send;
417    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
418    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
419        + Send;
420    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
421    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
422        + Send;
423    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
424    type SetIpMulticastLoopbackResponseFut: std::future::Future<
425            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
426        > + Send;
427    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
428    type GetIpMulticastLoopbackResponseFut: std::future::Future<
429            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
430        > + Send;
431    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
432    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
433        + Send;
434    fn r#add_ip_membership(
435        &self,
436        membership: &IpMulticastMembership,
437    ) -> Self::AddIpMembershipResponseFut;
438    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
439        + Send;
440    fn r#drop_ip_membership(
441        &self,
442        membership: &IpMulticastMembership,
443    ) -> Self::DropIpMembershipResponseFut;
444    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
445        + Send;
446    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
447    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
448        + Send;
449    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
450    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
451            Output = Result<
452                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
453                fidl::Error,
454            >,
455        > + Send;
456    fn r#set_ip_receive_original_destination_address(
457        &self,
458        value: bool,
459    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
460    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
461            Output = Result<
462                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
463                fidl::Error,
464            >,
465        > + Send;
466    fn r#get_ip_receive_original_destination_address(
467        &self,
468    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
469    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
470        + Send;
471    fn r#add_ipv6_membership(
472        &self,
473        membership: &Ipv6MulticastMembership,
474    ) -> Self::AddIpv6MembershipResponseFut;
475    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
476        + Send;
477    fn r#drop_ipv6_membership(
478        &self,
479        membership: &Ipv6MulticastMembership,
480    ) -> Self::DropIpv6MembershipResponseFut;
481    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
482            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
483        > + Send;
484    fn r#set_ipv6_multicast_interface(
485        &self,
486        value: u64,
487    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
488    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
489            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
490        > + Send;
491    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
492    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
493        + Send;
494    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
495    -> Self::SetIpv6UnicastHopsResponseFut;
496    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
497        + Send;
498    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
499    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
500            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
501        > + Send;
502    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
503    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
504            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
505        > + Send;
506    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
507    type SetIpv6MulticastHopsResponseFut: std::future::Future<
508            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
509        > + Send;
510    fn r#set_ipv6_multicast_hops(
511        &self,
512        value: &OptionalUint8,
513    ) -> Self::SetIpv6MulticastHopsResponseFut;
514    type GetIpv6MulticastHopsResponseFut: std::future::Future<
515            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
516        > + Send;
517    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
518    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
519            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
520        > + Send;
521    fn r#set_ipv6_multicast_loopback(
522        &self,
523        value: bool,
524    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
525    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
526            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
527        > + Send;
528    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
529    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
530        + Send;
531    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
532    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
533        + Send;
534    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
535    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
536            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
537        > + Send;
538    fn r#set_ipv6_receive_traffic_class(
539        &self,
540        value: bool,
541    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
542    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
543            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
544        > + Send;
545    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
546    type SetIpv6TrafficClassResponseFut: std::future::Future<
547            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
548        > + Send;
549    fn r#set_ipv6_traffic_class(
550        &self,
551        value: &OptionalUint8,
552    ) -> Self::SetIpv6TrafficClassResponseFut;
553    type GetIpv6TrafficClassResponseFut: std::future::Future<
554            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
555        > + Send;
556    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
557    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
558            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
559        > + Send;
560    fn r#set_ipv6_receive_packet_info(
561        &self,
562        value: bool,
563    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
564    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
565            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
566        > + Send;
567    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
568    type GetOriginalDestinationResponseFut: std::future::Future<
569            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
570        > + Send;
571    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
572    type GetInfoResponseFut: std::future::Future<Output = Result<BaseDatagramSocketGetInfoResult, fidl::Error>>
573        + Send;
574    fn r#get_info(&self) -> Self::GetInfoResponseFut;
575}
576#[derive(Debug)]
577#[cfg(target_os = "fuchsia")]
578pub struct BaseDatagramSocketSynchronousProxy {
579    client: fidl::client::sync::Client,
580}
581
582#[cfg(target_os = "fuchsia")]
583impl fidl::endpoints::SynchronousProxy for BaseDatagramSocketSynchronousProxy {
584    type Proxy = BaseDatagramSocketProxy;
585    type Protocol = BaseDatagramSocketMarker;
586
587    fn from_channel(inner: fidl::Channel) -> Self {
588        Self::new(inner)
589    }
590
591    fn into_channel(self) -> fidl::Channel {
592        self.client.into_channel()
593    }
594
595    fn as_channel(&self) -> &fidl::Channel {
596        self.client.as_channel()
597    }
598}
599
600#[cfg(target_os = "fuchsia")]
601impl BaseDatagramSocketSynchronousProxy {
602    pub fn new(channel: fidl::Channel) -> Self {
603        let protocol_name =
604            <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
605        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
606    }
607
608    pub fn into_channel(self) -> fidl::Channel {
609        self.client.into_channel()
610    }
611
612    /// Waits until an event arrives and returns it. It is safe for other
613    /// threads to make concurrent requests while waiting for an event.
614    pub fn wait_for_event(
615        &self,
616        deadline: zx::MonotonicInstant,
617    ) -> Result<BaseDatagramSocketEvent, fidl::Error> {
618        BaseDatagramSocketEvent::decode(self.client.wait_for_event(deadline)?)
619    }
620
621    pub fn r#clone(
622        &self,
623        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
624    ) -> Result<(), fidl::Error> {
625        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
626            (request,),
627            0x20d8a7aba2168a79,
628            fidl::encoding::DynamicFlags::empty(),
629        )
630    }
631
632    /// Terminates the connection.
633    ///
634    /// After calling `Close`, the client must not send any other requests.
635    ///
636    /// Servers, after sending the status response, should close the connection
637    /// regardless of status and without sending an epitaph.
638    ///
639    /// Closing the client end of the channel should be semantically equivalent
640    /// to calling `Close` without knowing when the close has completed or its
641    /// status.
642    pub fn r#close(
643        &self,
644        ___deadline: zx::MonotonicInstant,
645    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
646        let _response = self.client.send_query::<
647            fidl::encoding::EmptyPayload,
648            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
649        >(
650            (),
651            0x5ac5d459ad7f657e,
652            fidl::encoding::DynamicFlags::empty(),
653            ___deadline,
654        )?;
655        Ok(_response.map(|x| x))
656    }
657
658    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
659        let _response = self.client.send_query::<
660            fidl::encoding::EmptyPayload,
661            fidl_fuchsia_unknown::QueryableQueryResponse,
662        >(
663            (),
664            0x2658edee9decfc06,
665            fidl::encoding::DynamicFlags::empty(),
666            ___deadline,
667        )?;
668        Ok(_response.protocol)
669    }
670
671    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
672    pub fn r#set_reuse_address(
673        &self,
674        mut value: bool,
675        ___deadline: zx::MonotonicInstant,
676    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
677        let _response =
678            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
679                fidl::encoding::EmptyStruct,
680                fidl_fuchsia_posix::Errno,
681            >>(
682                (value,),
683                0x1fd74ee8b9a4a876,
684                fidl::encoding::DynamicFlags::empty(),
685                ___deadline,
686            )?;
687        Ok(_response.map(|x| x))
688    }
689
690    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
691    pub fn r#get_reuse_address(
692        &self,
693        ___deadline: zx::MonotonicInstant,
694    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
695        let _response = self
696            .client
697            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
698                BaseSocketGetReuseAddressResponse,
699                fidl_fuchsia_posix::Errno,
700            >>(
701                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
702            )?;
703        Ok(_response.map(|x| x.value))
704    }
705
706    /// Get `SOL_SOCKET` -> `SO_ERROR`.
707    /// Returns the last error if there is an error set on the socket.
708    pub fn r#get_error(
709        &self,
710        ___deadline: zx::MonotonicInstant,
711    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
712        let _response =
713            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
714                fidl::encoding::EmptyStruct,
715                fidl_fuchsia_posix::Errno,
716            >>(
717                (),
718                0x5aad39b33e5f6ebb,
719                fidl::encoding::DynamicFlags::empty(),
720                ___deadline,
721            )?;
722        Ok(_response.map(|x| x))
723    }
724
725    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
726    pub fn r#set_broadcast(
727        &self,
728        mut value: bool,
729        ___deadline: zx::MonotonicInstant,
730    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
731        let _response =
732            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
733                fidl::encoding::EmptyStruct,
734                fidl_fuchsia_posix::Errno,
735            >>(
736                (value,),
737                0x6023e081ce3cd947,
738                fidl::encoding::DynamicFlags::empty(),
739                ___deadline,
740            )?;
741        Ok(_response.map(|x| x))
742    }
743
744    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
745    pub fn r#get_broadcast(
746        &self,
747        ___deadline: zx::MonotonicInstant,
748    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
749        let _response =
750            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
751                BaseSocketGetBroadcastResponse,
752                fidl_fuchsia_posix::Errno,
753            >>(
754                (),
755                0x68796fc556f9780d,
756                fidl::encoding::DynamicFlags::empty(),
757                ___deadline,
758            )?;
759        Ok(_response.map(|x| x.value))
760    }
761
762    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
763    pub fn r#set_send_buffer(
764        &self,
765        mut value_bytes: u64,
766        ___deadline: zx::MonotonicInstant,
767    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
768        let _response =
769            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
770                fidl::encoding::EmptyStruct,
771                fidl_fuchsia_posix::Errno,
772            >>(
773                (value_bytes,),
774                0x756eac32d73a7a70,
775                fidl::encoding::DynamicFlags::empty(),
776                ___deadline,
777            )?;
778        Ok(_response.map(|x| x))
779    }
780
781    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
782    pub fn r#get_send_buffer(
783        &self,
784        ___deadline: zx::MonotonicInstant,
785    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
786        let _response = self
787            .client
788            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
789                BaseSocketGetSendBufferResponse,
790                fidl_fuchsia_posix::Errno,
791            >>(
792                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
793            )?;
794        Ok(_response.map(|x| x.value_bytes))
795    }
796
797    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
798    pub fn r#set_receive_buffer(
799        &self,
800        mut value_bytes: u64,
801        ___deadline: zx::MonotonicInstant,
802    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
803        let _response =
804            self.client
805                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
806                    fidl::encoding::EmptyStruct,
807                    fidl_fuchsia_posix::Errno,
808                >>(
809                    (value_bytes,),
810                    0x6b0cf2f1919c7001,
811                    fidl::encoding::DynamicFlags::empty(),
812                    ___deadline,
813                )?;
814        Ok(_response.map(|x| x))
815    }
816
817    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
818    pub fn r#get_receive_buffer(
819        &self,
820        ___deadline: zx::MonotonicInstant,
821    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
822        let _response = self
823            .client
824            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
825                BaseSocketGetReceiveBufferResponse,
826                fidl_fuchsia_posix::Errno,
827            >>(
828                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
829            )?;
830        Ok(_response.map(|x| x.value_bytes))
831    }
832
833    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
834    pub fn r#set_keep_alive(
835        &self,
836        mut value: bool,
837        ___deadline: zx::MonotonicInstant,
838    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
839        let _response =
840            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
841                fidl::encoding::EmptyStruct,
842                fidl_fuchsia_posix::Errno,
843            >>(
844                (value,),
845                0x572df8f0b920d2c7,
846                fidl::encoding::DynamicFlags::empty(),
847                ___deadline,
848            )?;
849        Ok(_response.map(|x| x))
850    }
851
852    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
853    pub fn r#get_keep_alive(
854        &self,
855        ___deadline: zx::MonotonicInstant,
856    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
857        let _response =
858            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
859                BaseSocketGetKeepAliveResponse,
860                fidl_fuchsia_posix::Errno,
861            >>(
862                (),
863                0x2dd29d3215f2c9d2,
864                fidl::encoding::DynamicFlags::empty(),
865                ___deadline,
866            )?;
867        Ok(_response.map(|x| x.value))
868    }
869
870    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
871    pub fn r#set_out_of_band_inline(
872        &self,
873        mut value: bool,
874        ___deadline: zx::MonotonicInstant,
875    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
876        let _response =
877            self.client
878                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
879                    fidl::encoding::EmptyStruct,
880                    fidl_fuchsia_posix::Errno,
881                >>(
882                    (value,),
883                    0x3ecb49968bee439,
884                    fidl::encoding::DynamicFlags::empty(),
885                    ___deadline,
886                )?;
887        Ok(_response.map(|x| x))
888    }
889
890    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
891    pub fn r#get_out_of_band_inline(
892        &self,
893        ___deadline: zx::MonotonicInstant,
894    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
895        let _response = self
896            .client
897            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
898                BaseSocketGetOutOfBandInlineResponse,
899                fidl_fuchsia_posix::Errno,
900            >>(
901                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
902            )?;
903        Ok(_response.map(|x| x.value))
904    }
905
906    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
907    pub fn r#set_no_check(
908        &self,
909        mut value: bool,
910        ___deadline: zx::MonotonicInstant,
911    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
912        let _response =
913            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
914                fidl::encoding::EmptyStruct,
915                fidl_fuchsia_posix::Errno,
916            >>(
917                (value,),
918                0x6bbf00c53a4c78c2,
919                fidl::encoding::DynamicFlags::empty(),
920                ___deadline,
921            )?;
922        Ok(_response.map(|x| x))
923    }
924
925    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
926    pub fn r#get_no_check(
927        &self,
928        ___deadline: zx::MonotonicInstant,
929    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
930        let _response =
931            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
932                BaseSocketGetNoCheckResponse,
933                fidl_fuchsia_posix::Errno,
934            >>(
935                (),
936                0x2cd4249286417694,
937                fidl::encoding::DynamicFlags::empty(),
938                ___deadline,
939            )?;
940        Ok(_response.map(|x| x.value))
941    }
942
943    /// Set `SOL_SOCKET` -> `SO_LINGER`.
944    pub fn r#set_linger(
945        &self,
946        mut linger: bool,
947        mut length_secs: u32,
948        ___deadline: zx::MonotonicInstant,
949    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
950        let _response =
951            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
952                fidl::encoding::EmptyStruct,
953                fidl_fuchsia_posix::Errno,
954            >>(
955                (linger, length_secs),
956                0x45386351246e998e,
957                fidl::encoding::DynamicFlags::empty(),
958                ___deadline,
959            )?;
960        Ok(_response.map(|x| x))
961    }
962
963    /// Get `SOL_SOCKET` -> `SO_LINGER`.
964    pub fn r#get_linger(
965        &self,
966        ___deadline: zx::MonotonicInstant,
967    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
968        let _response =
969            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
970                BaseSocketGetLingerResponse,
971                fidl_fuchsia_posix::Errno,
972            >>(
973                (),
974                0x48eb20fc5ccb0e45,
975                fidl::encoding::DynamicFlags::empty(),
976                ___deadline,
977            )?;
978        Ok(_response.map(|x| (x.linger, x.length_secs)))
979    }
980
981    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
982    pub fn r#set_reuse_port(
983        &self,
984        mut value: bool,
985        ___deadline: zx::MonotonicInstant,
986    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
987        let _response =
988            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
989                fidl::encoding::EmptyStruct,
990                fidl_fuchsia_posix::Errno,
991            >>(
992                (value,),
993                0x24dd3e5cb36d9ccb,
994                fidl::encoding::DynamicFlags::empty(),
995                ___deadline,
996            )?;
997        Ok(_response.map(|x| x))
998    }
999
1000    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
1001    pub fn r#get_reuse_port(
1002        &self,
1003        ___deadline: zx::MonotonicInstant,
1004    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
1005        let _response =
1006            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1007                BaseSocketGetReusePortResponse,
1008                fidl_fuchsia_posix::Errno,
1009            >>(
1010                (),
1011                0x7a112c1ab54ff828,
1012                fidl::encoding::DynamicFlags::empty(),
1013                ___deadline,
1014            )?;
1015        Ok(_response.map(|x| x.value))
1016    }
1017
1018    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
1019    pub fn r#get_accept_conn(
1020        &self,
1021        ___deadline: zx::MonotonicInstant,
1022    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
1023        let _response = self
1024            .client
1025            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1026                BaseSocketGetAcceptConnResponse,
1027                fidl_fuchsia_posix::Errno,
1028            >>(
1029                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
1030            )?;
1031        Ok(_response.map(|x| x.value))
1032    }
1033
1034    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
1035    pub fn r#set_bind_to_device(
1036        &self,
1037        mut value: &str,
1038        ___deadline: zx::MonotonicInstant,
1039    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
1040        let _response =
1041            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
1042                fidl::encoding::EmptyStruct,
1043                fidl_fuchsia_posix::Errno,
1044            >>(
1045                (value,),
1046                0x2118b483f28aafc4,
1047                fidl::encoding::DynamicFlags::empty(),
1048                ___deadline,
1049            )?;
1050        Ok(_response.map(|x| x))
1051    }
1052
1053    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
1054    pub fn r#get_bind_to_device(
1055        &self,
1056        ___deadline: zx::MonotonicInstant,
1057    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
1058        let _response = self
1059            .client
1060            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1061                BaseSocketGetBindToDeviceResponse,
1062                fidl_fuchsia_posix::Errno,
1063            >>(
1064                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
1065            )?;
1066        Ok(_response.map(|x| x.value))
1067    }
1068
1069    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
1070    /// If `value` is 0, this clears the bound interface.
1071    pub fn r#set_bind_to_interface_index(
1072        &self,
1073        mut value: u64,
1074        ___deadline: zx::MonotonicInstant,
1075    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
1076        let _response =
1077            self.client
1078                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
1079                    fidl::encoding::EmptyStruct,
1080                    fidl_fuchsia_posix::Errno,
1081                >>(
1082                    (value,),
1083                    0x6e387a0def00821,
1084                    fidl::encoding::DynamicFlags::empty(),
1085                    ___deadline,
1086                )?;
1087        Ok(_response.map(|x| x))
1088    }
1089
1090    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
1091    pub fn r#get_bind_to_interface_index(
1092        &self,
1093        ___deadline: zx::MonotonicInstant,
1094    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
1095        let _response = self
1096            .client
1097            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1098                BaseSocketGetBindToInterfaceIndexResponse,
1099                fidl_fuchsia_posix::Errno,
1100            >>(
1101                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
1102            )?;
1103        Ok(_response.map(|x| x.value))
1104    }
1105
1106    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
1107    pub fn r#set_timestamp(
1108        &self,
1109        mut value: TimestampOption,
1110        ___deadline: zx::MonotonicInstant,
1111    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
1112        let _response =
1113            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
1114                fidl::encoding::EmptyStruct,
1115                fidl_fuchsia_posix::Errno,
1116            >>(
1117                (value,),
1118                0x285d6516c263d839,
1119                fidl::encoding::DynamicFlags::empty(),
1120                ___deadline,
1121            )?;
1122        Ok(_response.map(|x| x))
1123    }
1124
1125    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
1126    pub fn r#get_timestamp(
1127        &self,
1128        ___deadline: zx::MonotonicInstant,
1129    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
1130        let _response =
1131            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1132                BaseSocketGetTimestampResponse,
1133                fidl_fuchsia_posix::Errno,
1134            >>(
1135                (),
1136                0x49f2fffbbcc2bd27,
1137                fidl::encoding::DynamicFlags::empty(),
1138                ___deadline,
1139            )?;
1140        Ok(_response.map(|x| x.value))
1141    }
1142
1143    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
1144    /// unlike the standard SO_MARK, this API has multiple mark domains and each
1145    /// mark can be set independently in each domain.
1146    pub fn r#set_mark(
1147        &self,
1148        mut domain: fidl_fuchsia_net::MarkDomain,
1149        mut mark: &OptionalUint32,
1150        ___deadline: zx::MonotonicInstant,
1151    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
1152        let _response =
1153            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
1154                fidl::encoding::EmptyStruct,
1155                fidl_fuchsia_posix::Errno,
1156            >>(
1157                (domain, mark),
1158                0x6ead6de09f653236,
1159                fidl::encoding::DynamicFlags::empty(),
1160                ___deadline,
1161            )?;
1162        Ok(_response.map(|x| x))
1163    }
1164
1165    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
1166    /// unlike the standard SO_MARK, this API has multiple mark domains and each
1167    /// mark can be retrieved independently in each domain.
1168    pub fn r#get_mark(
1169        &self,
1170        mut domain: fidl_fuchsia_net::MarkDomain,
1171        ___deadline: zx::MonotonicInstant,
1172    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
1173        let _response =
1174            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
1175                BaseSocketGetMarkResponse,
1176                fidl_fuchsia_posix::Errno,
1177            >>(
1178                (domain,),
1179                0x57a2752c61d93d47,
1180                fidl::encoding::DynamicFlags::empty(),
1181                ___deadline,
1182            )?;
1183        Ok(_response.map(|x| x.mark))
1184    }
1185
1186    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
1187    pub fn r#get_cookie(
1188        &self,
1189        ___deadline: zx::MonotonicInstant,
1190    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
1191        let _response =
1192            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1193                BaseSocketGetCookieResponse,
1194                fidl_fuchsia_posix::Errno,
1195            >>(
1196                (),
1197                0x2c2f47fd8f924e52,
1198                fidl::encoding::DynamicFlags::empty(),
1199                ___deadline,
1200            )?;
1201        Ok(_response.map(|x| x.value))
1202    }
1203
1204    /// Sets the local address used for the socket.
1205    pub fn r#bind(
1206        &self,
1207        mut addr: &fidl_fuchsia_net::SocketAddress,
1208        ___deadline: zx::MonotonicInstant,
1209    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
1210        let _response =
1211            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
1212                fidl::encoding::EmptyStruct,
1213                fidl_fuchsia_posix::Errno,
1214            >>(
1215                (addr,),
1216                0x4bc6400ae92125d,
1217                fidl::encoding::DynamicFlags::empty(),
1218                ___deadline,
1219            )?;
1220        Ok(_response.map(|x| x))
1221    }
1222
1223    /// Initiates a connection to a remote address.
1224    pub fn r#connect(
1225        &self,
1226        mut addr: &fidl_fuchsia_net::SocketAddress,
1227        ___deadline: zx::MonotonicInstant,
1228    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
1229        let _response =
1230            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
1231                fidl::encoding::EmptyStruct,
1232                fidl_fuchsia_posix::Errno,
1233            >>(
1234                (addr,),
1235                0x5f05f19bfdd38871,
1236                fidl::encoding::DynamicFlags::empty(),
1237                ___deadline,
1238            )?;
1239        Ok(_response.map(|x| x))
1240    }
1241
1242    /// Clears connection information from this socket.
1243    pub fn r#disconnect(
1244        &self,
1245        ___deadline: zx::MonotonicInstant,
1246    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
1247        let _response =
1248            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1249                fidl::encoding::EmptyStruct,
1250                fidl_fuchsia_posix::Errno,
1251            >>(
1252                (),
1253                0x74e63b91f7b29b2,
1254                fidl::encoding::DynamicFlags::empty(),
1255                ___deadline,
1256            )?;
1257        Ok(_response.map(|x| x))
1258    }
1259
1260    /// Retrieves the local socket address.
1261    pub fn r#get_sock_name(
1262        &self,
1263        ___deadline: zx::MonotonicInstant,
1264    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
1265        let _response = self
1266            .client
1267            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1268                BaseNetworkSocketGetSockNameResponse,
1269                fidl_fuchsia_posix::Errno,
1270            >>(
1271                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
1272            )?;
1273        Ok(_response.map(|x| x.addr))
1274    }
1275
1276    /// Retrieves the remote socket address.
1277    pub fn r#get_peer_name(
1278        &self,
1279        ___deadline: zx::MonotonicInstant,
1280    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
1281        let _response = self
1282            .client
1283            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1284                BaseNetworkSocketGetPeerNameResponse,
1285                fidl_fuchsia_posix::Errno,
1286            >>(
1287                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
1288            )?;
1289        Ok(_response.map(|x| x.addr))
1290    }
1291
1292    /// Shuts down part of the socket.
1293    pub fn r#shutdown(
1294        &self,
1295        mut mode: ShutdownMode,
1296        ___deadline: zx::MonotonicInstant,
1297    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
1298        let _response =
1299            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
1300                fidl::encoding::EmptyStruct,
1301                fidl_fuchsia_posix::Errno,
1302            >>(
1303                (mode,),
1304                0x247f38b6db68c336,
1305                fidl::encoding::DynamicFlags::empty(),
1306                ___deadline,
1307            )?;
1308        Ok(_response.map(|x| x))
1309    }
1310
1311    /// Set `SOL_IP` -> `IP_TOS`.
1312    pub fn r#set_ip_type_of_service(
1313        &self,
1314        mut value: u8,
1315        ___deadline: zx::MonotonicInstant,
1316    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
1317        let _response = self.client.send_query::<
1318            BaseNetworkSocketSetIpTypeOfServiceRequest,
1319            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1320        >(
1321            (value,),
1322            0x995c600475b6d46,
1323            fidl::encoding::DynamicFlags::empty(),
1324            ___deadline,
1325        )?;
1326        Ok(_response.map(|x| x))
1327    }
1328
1329    /// Get `SOL_IP` -> `IP_TOS`.
1330    pub fn r#get_ip_type_of_service(
1331        &self,
1332        ___deadline: zx::MonotonicInstant,
1333    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
1334        let _response = self
1335            .client
1336            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1337                BaseNetworkSocketGetIpTypeOfServiceResponse,
1338                fidl_fuchsia_posix::Errno,
1339            >>(
1340                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
1341            )?;
1342        Ok(_response.map(|x| x.value))
1343    }
1344
1345    /// Set `SOL_IP` -> `IP_TTL`.
1346    pub fn r#set_ip_ttl(
1347        &self,
1348        mut value: &OptionalUint8,
1349        ___deadline: zx::MonotonicInstant,
1350    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
1351        let _response =
1352            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
1353                fidl::encoding::EmptyStruct,
1354                fidl_fuchsia_posix::Errno,
1355            >>(
1356                (value,),
1357                0x29e2424b433ae1ef,
1358                fidl::encoding::DynamicFlags::empty(),
1359                ___deadline,
1360            )?;
1361        Ok(_response.map(|x| x))
1362    }
1363
1364    /// Get `SOL_IP` -> `IP_TTL`.
1365    pub fn r#get_ip_ttl(
1366        &self,
1367        ___deadline: zx::MonotonicInstant,
1368    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
1369        let _response = self
1370            .client
1371            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1372                BaseNetworkSocketGetIpTtlResponse,
1373                fidl_fuchsia_posix::Errno,
1374            >>(
1375                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
1376            )?;
1377        Ok(_response.map(|x| x.value))
1378    }
1379
1380    /// Set `SOL_IP` -> `IP_PKTINFO`.
1381    pub fn r#set_ip_packet_info(
1382        &self,
1383        mut value: bool,
1384        ___deadline: zx::MonotonicInstant,
1385    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
1386        let _response =
1387            self.client
1388                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
1389                    fidl::encoding::EmptyStruct,
1390                    fidl_fuchsia_posix::Errno,
1391                >>(
1392                    (value,),
1393                    0x392d16bee20c0e16,
1394                    fidl::encoding::DynamicFlags::empty(),
1395                    ___deadline,
1396                )?;
1397        Ok(_response.map(|x| x))
1398    }
1399
1400    /// Get `SOL_IP` -> `IP_PKTINFO`.
1401    pub fn r#get_ip_packet_info(
1402        &self,
1403        ___deadline: zx::MonotonicInstant,
1404    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
1405        let _response = self
1406            .client
1407            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1408                BaseNetworkSocketGetIpPacketInfoResponse,
1409                fidl_fuchsia_posix::Errno,
1410            >>(
1411                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
1412            )?;
1413        Ok(_response.map(|x| x.value))
1414    }
1415
1416    /// Set `SOL_IP` -> `IP_RECVTOS`.
1417    pub fn r#set_ip_receive_type_of_service(
1418        &self,
1419        mut value: bool,
1420        ___deadline: zx::MonotonicInstant,
1421    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
1422        let _response = self.client.send_query::<
1423            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
1424            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1425        >(
1426            (value,),
1427            0x6c4f6714995f84ef,
1428            fidl::encoding::DynamicFlags::empty(),
1429            ___deadline,
1430        )?;
1431        Ok(_response.map(|x| x))
1432    }
1433
1434    /// Get `SOL_IP` -> `IP_RECVTOS`.
1435    pub fn r#get_ip_receive_type_of_service(
1436        &self,
1437        ___deadline: zx::MonotonicInstant,
1438    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
1439        let _response = self
1440            .client
1441            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1442                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
1443                fidl_fuchsia_posix::Errno,
1444            >>(
1445                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
1446            )?;
1447        Ok(_response.map(|x| x.value))
1448    }
1449
1450    /// Set `SOL_IP` -> `IP_RECVTTL`.
1451    pub fn r#set_ip_receive_ttl(
1452        &self,
1453        mut value: bool,
1454        ___deadline: zx::MonotonicInstant,
1455    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
1456        let _response =
1457            self.client
1458                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
1459                    fidl::encoding::EmptyStruct,
1460                    fidl_fuchsia_posix::Errno,
1461                >>(
1462                    (value,),
1463                    0x46f15be0ce0ab82b,
1464                    fidl::encoding::DynamicFlags::empty(),
1465                    ___deadline,
1466                )?;
1467        Ok(_response.map(|x| x))
1468    }
1469
1470    /// Get `SOL_IP` -> `IP_RECVTTL`.
1471    pub fn r#get_ip_receive_ttl(
1472        &self,
1473        ___deadline: zx::MonotonicInstant,
1474    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
1475        let _response = self
1476            .client
1477            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1478                BaseNetworkSocketGetIpReceiveTtlResponse,
1479                fidl_fuchsia_posix::Errno,
1480            >>(
1481                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
1482            )?;
1483        Ok(_response.map(|x| x.value))
1484    }
1485
1486    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
1487    pub fn r#set_ip_multicast_interface(
1488        &self,
1489        mut iface: u64,
1490        mut address: &fidl_fuchsia_net::Ipv4Address,
1491        ___deadline: zx::MonotonicInstant,
1492    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
1493        let _response = self.client.send_query::<
1494            BaseNetworkSocketSetIpMulticastInterfaceRequest,
1495            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1496        >(
1497            (iface, address,),
1498            0x752fbfa9b12befe,
1499            fidl::encoding::DynamicFlags::empty(),
1500            ___deadline,
1501        )?;
1502        Ok(_response.map(|x| x))
1503    }
1504
1505    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
1506    pub fn r#get_ip_multicast_interface(
1507        &self,
1508        ___deadline: zx::MonotonicInstant,
1509    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
1510        let _response = self
1511            .client
1512            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1513                BaseNetworkSocketGetIpMulticastInterfaceResponse,
1514                fidl_fuchsia_posix::Errno,
1515            >>(
1516                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
1517            )?;
1518        Ok(_response.map(|x| x.value))
1519    }
1520
1521    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
1522    pub fn r#set_ip_multicast_ttl(
1523        &self,
1524        mut value: &OptionalUint8,
1525        ___deadline: zx::MonotonicInstant,
1526    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
1527        let _response =
1528            self.client
1529                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
1530                    fidl::encoding::EmptyStruct,
1531                    fidl_fuchsia_posix::Errno,
1532                >>(
1533                    (value,),
1534                    0x63134d53772916a1,
1535                    fidl::encoding::DynamicFlags::empty(),
1536                    ___deadline,
1537                )?;
1538        Ok(_response.map(|x| x))
1539    }
1540
1541    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
1542    pub fn r#get_ip_multicast_ttl(
1543        &self,
1544        ___deadline: zx::MonotonicInstant,
1545    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
1546        let _response = self
1547            .client
1548            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1549                BaseNetworkSocketGetIpMulticastTtlResponse,
1550                fidl_fuchsia_posix::Errno,
1551            >>(
1552                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
1553            )?;
1554        Ok(_response.map(|x| x.value))
1555    }
1556
1557    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
1558    pub fn r#set_ip_multicast_loopback(
1559        &self,
1560        mut value: bool,
1561        ___deadline: zx::MonotonicInstant,
1562    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
1563        let _response = self.client.send_query::<
1564            BaseNetworkSocketSetIpMulticastLoopbackRequest,
1565            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1566        >(
1567            (value,),
1568            0x20c55c11f00943ea,
1569            fidl::encoding::DynamicFlags::empty(),
1570            ___deadline,
1571        )?;
1572        Ok(_response.map(|x| x))
1573    }
1574
1575    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
1576    pub fn r#get_ip_multicast_loopback(
1577        &self,
1578        ___deadline: zx::MonotonicInstant,
1579    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
1580        let _response = self
1581            .client
1582            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1583                BaseNetworkSocketGetIpMulticastLoopbackResponse,
1584                fidl_fuchsia_posix::Errno,
1585            >>(
1586                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
1587            )?;
1588        Ok(_response.map(|x| x.value))
1589    }
1590
1591    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
1592    pub fn r#add_ip_membership(
1593        &self,
1594        mut membership: &IpMulticastMembership,
1595        ___deadline: zx::MonotonicInstant,
1596    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
1597        let _response =
1598            self.client
1599                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
1600                    fidl::encoding::EmptyStruct,
1601                    fidl_fuchsia_posix::Errno,
1602                >>(
1603                    (membership,),
1604                    0x76bc7df115a3b4d0,
1605                    fidl::encoding::DynamicFlags::empty(),
1606                    ___deadline,
1607                )?;
1608        Ok(_response.map(|x| x))
1609    }
1610
1611    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
1612    pub fn r#drop_ip_membership(
1613        &self,
1614        mut membership: &IpMulticastMembership,
1615        ___deadline: zx::MonotonicInstant,
1616    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
1617        let _response =
1618            self.client
1619                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
1620                    fidl::encoding::EmptyStruct,
1621                    fidl_fuchsia_posix::Errno,
1622                >>(
1623                    (membership,),
1624                    0x2888f3099188d03,
1625                    fidl::encoding::DynamicFlags::empty(),
1626                    ___deadline,
1627                )?;
1628        Ok(_response.map(|x| x))
1629    }
1630
1631    /// Set `SOL_IP` -> `IP_TRANSPARENT`
1632    pub fn r#set_ip_transparent(
1633        &self,
1634        mut value: bool,
1635        ___deadline: zx::MonotonicInstant,
1636    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
1637        let _response =
1638            self.client
1639                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
1640                    fidl::encoding::EmptyStruct,
1641                    fidl_fuchsia_posix::Errno,
1642                >>(
1643                    (value,),
1644                    0x1ae532b0c066e3a0,
1645                    fidl::encoding::DynamicFlags::empty(),
1646                    ___deadline,
1647                )?;
1648        Ok(_response.map(|x| x))
1649    }
1650
1651    /// Get `SOL_IP` -> `IP_TRANSPARENT`
1652    pub fn r#get_ip_transparent(
1653        &self,
1654        ___deadline: zx::MonotonicInstant,
1655    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
1656        let _response = self
1657            .client
1658            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1659                BaseNetworkSocketGetIpTransparentResponse,
1660                fidl_fuchsia_posix::Errno,
1661            >>(
1662                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
1663            )?;
1664        Ok(_response.map(|x| x.value))
1665    }
1666
1667    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
1668    pub fn r#set_ip_receive_original_destination_address(
1669        &self,
1670        mut value: bool,
1671        ___deadline: zx::MonotonicInstant,
1672    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
1673        let _response = self.client.send_query::<
1674            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
1675            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1676        >(
1677            (value,),
1678            0x4722b4ce52f7840,
1679            fidl::encoding::DynamicFlags::empty(),
1680            ___deadline,
1681        )?;
1682        Ok(_response.map(|x| x))
1683    }
1684
1685    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
1686    pub fn r#get_ip_receive_original_destination_address(
1687        &self,
1688        ___deadline: zx::MonotonicInstant,
1689    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
1690        let _response = self
1691            .client
1692            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1693                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
1694                fidl_fuchsia_posix::Errno,
1695            >>(
1696                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
1697            )?;
1698        Ok(_response.map(|x| x.value))
1699    }
1700
1701    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
1702    pub fn r#add_ipv6_membership(
1703        &self,
1704        mut membership: &Ipv6MulticastMembership,
1705        ___deadline: zx::MonotonicInstant,
1706    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
1707        let _response =
1708            self.client
1709                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
1710                    fidl::encoding::EmptyStruct,
1711                    fidl_fuchsia_posix::Errno,
1712                >>(
1713                    (membership,),
1714                    0x7c94727acb4ea4b3,
1715                    fidl::encoding::DynamicFlags::empty(),
1716                    ___deadline,
1717                )?;
1718        Ok(_response.map(|x| x))
1719    }
1720
1721    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
1722    pub fn r#drop_ipv6_membership(
1723        &self,
1724        mut membership: &Ipv6MulticastMembership,
1725        ___deadline: zx::MonotonicInstant,
1726    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
1727        let _response = self.client.send_query::<
1728            BaseNetworkSocketDropIpv6MembershipRequest,
1729            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1730        >(
1731            (membership,),
1732            0x42104c70ccaba304,
1733            fidl::encoding::DynamicFlags::empty(),
1734            ___deadline,
1735        )?;
1736        Ok(_response.map(|x| x))
1737    }
1738
1739    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
1740    pub fn r#set_ipv6_multicast_interface(
1741        &self,
1742        mut value: u64,
1743        ___deadline: zx::MonotonicInstant,
1744    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
1745        let _response = self.client.send_query::<
1746            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
1747            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1748        >(
1749            (value,),
1750            0x135f76db3774ab3b,
1751            fidl::encoding::DynamicFlags::empty(),
1752            ___deadline,
1753        )?;
1754        Ok(_response.map(|x| x))
1755    }
1756
1757    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
1758    pub fn r#get_ipv6_multicast_interface(
1759        &self,
1760        ___deadline: zx::MonotonicInstant,
1761    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
1762        let _response = self
1763            .client
1764            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1765                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
1766                fidl_fuchsia_posix::Errno,
1767            >>(
1768                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
1769            )?;
1770        Ok(_response.map(|x| x.value))
1771    }
1772
1773    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
1774    pub fn r#set_ipv6_unicast_hops(
1775        &self,
1776        mut value: &OptionalUint8,
1777        ___deadline: zx::MonotonicInstant,
1778    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
1779        let _response = self.client.send_query::<
1780            BaseNetworkSocketSetIpv6UnicastHopsRequest,
1781            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1782        >(
1783            (value,),
1784            0x157d51e98f462859,
1785            fidl::encoding::DynamicFlags::empty(),
1786            ___deadline,
1787        )?;
1788        Ok(_response.map(|x| x))
1789    }
1790
1791    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
1792    pub fn r#get_ipv6_unicast_hops(
1793        &self,
1794        ___deadline: zx::MonotonicInstant,
1795    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
1796        let _response = self
1797            .client
1798            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1799                BaseNetworkSocketGetIpv6UnicastHopsResponse,
1800                fidl_fuchsia_posix::Errno,
1801            >>(
1802                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
1803            )?;
1804        Ok(_response.map(|x| x.value))
1805    }
1806
1807    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
1808    pub fn r#set_ipv6_receive_hop_limit(
1809        &self,
1810        mut value: bool,
1811        ___deadline: zx::MonotonicInstant,
1812    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
1813        let _response = self.client.send_query::<
1814            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
1815            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1816        >(
1817            (value,),
1818            0x5c24808ed2e84a1e,
1819            fidl::encoding::DynamicFlags::empty(),
1820            ___deadline,
1821        )?;
1822        Ok(_response.map(|x| x))
1823    }
1824
1825    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
1826    pub fn r#get_ipv6_receive_hop_limit(
1827        &self,
1828        ___deadline: zx::MonotonicInstant,
1829    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
1830        let _response = self
1831            .client
1832            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1833                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
1834                fidl_fuchsia_posix::Errno,
1835            >>(
1836                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
1837            )?;
1838        Ok(_response.map(|x| x.value))
1839    }
1840
1841    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
1842    pub fn r#set_ipv6_multicast_hops(
1843        &self,
1844        mut value: &OptionalUint8,
1845        ___deadline: zx::MonotonicInstant,
1846    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
1847        let _response = self.client.send_query::<
1848            BaseNetworkSocketSetIpv6MulticastHopsRequest,
1849            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1850        >(
1851            (value,),
1852            0x25b9cd4d181f82c1,
1853            fidl::encoding::DynamicFlags::empty(),
1854            ___deadline,
1855        )?;
1856        Ok(_response.map(|x| x))
1857    }
1858
1859    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
1860    pub fn r#get_ipv6_multicast_hops(
1861        &self,
1862        ___deadline: zx::MonotonicInstant,
1863    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
1864        let _response = self
1865            .client
1866            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1867                BaseNetworkSocketGetIpv6MulticastHopsResponse,
1868                fidl_fuchsia_posix::Errno,
1869            >>(
1870                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
1871            )?;
1872        Ok(_response.map(|x| x.value))
1873    }
1874
1875    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
1876    pub fn r#set_ipv6_multicast_loopback(
1877        &self,
1878        mut value: bool,
1879        ___deadline: zx::MonotonicInstant,
1880    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
1881        let _response = self.client.send_query::<
1882            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
1883            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1884        >(
1885            (value,),
1886            0x55701c409ff41b40,
1887            fidl::encoding::DynamicFlags::empty(),
1888            ___deadline,
1889        )?;
1890        Ok(_response.map(|x| x))
1891    }
1892
1893    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
1894    pub fn r#get_ipv6_multicast_loopback(
1895        &self,
1896        ___deadline: zx::MonotonicInstant,
1897    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
1898        let _response = self
1899            .client
1900            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1901                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
1902                fidl_fuchsia_posix::Errno,
1903            >>(
1904                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
1905            )?;
1906        Ok(_response.map(|x| x.value))
1907    }
1908
1909    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
1910    pub fn r#set_ipv6_only(
1911        &self,
1912        mut value: bool,
1913        ___deadline: zx::MonotonicInstant,
1914    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
1915        let _response =
1916            self.client
1917                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
1918                    fidl::encoding::EmptyStruct,
1919                    fidl_fuchsia_posix::Errno,
1920                >>(
1921                    (value,),
1922                    0x4873f1364758cbba,
1923                    fidl::encoding::DynamicFlags::empty(),
1924                    ___deadline,
1925                )?;
1926        Ok(_response.map(|x| x))
1927    }
1928
1929    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
1930    pub fn r#get_ipv6_only(
1931        &self,
1932        ___deadline: zx::MonotonicInstant,
1933    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
1934        let _response = self
1935            .client
1936            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1937                BaseNetworkSocketGetIpv6OnlyResponse,
1938                fidl_fuchsia_posix::Errno,
1939            >>(
1940                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
1941            )?;
1942        Ok(_response.map(|x| x.value))
1943    }
1944
1945    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
1946    pub fn r#set_ipv6_receive_traffic_class(
1947        &self,
1948        mut value: bool,
1949        ___deadline: zx::MonotonicInstant,
1950    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
1951        let _response = self.client.send_query::<
1952            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
1953            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1954        >(
1955            (value,),
1956            0x58f07c8788d099a0,
1957            fidl::encoding::DynamicFlags::empty(),
1958            ___deadline,
1959        )?;
1960        Ok(_response.map(|x| x))
1961    }
1962
1963    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
1964    pub fn r#get_ipv6_receive_traffic_class(
1965        &self,
1966        ___deadline: zx::MonotonicInstant,
1967    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
1968        let _response = self
1969            .client
1970            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
1971                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
1972                fidl_fuchsia_posix::Errno,
1973            >>(
1974                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
1975            )?;
1976        Ok(_response.map(|x| x.value))
1977    }
1978
1979    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
1980    pub fn r#set_ipv6_traffic_class(
1981        &self,
1982        mut value: &OptionalUint8,
1983        ___deadline: zx::MonotonicInstant,
1984    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
1985        let _response = self.client.send_query::<
1986            BaseNetworkSocketSetIpv6TrafficClassRequest,
1987            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
1988        >(
1989            (value,),
1990            0x6af077800c5a0b4f,
1991            fidl::encoding::DynamicFlags::empty(),
1992            ___deadline,
1993        )?;
1994        Ok(_response.map(|x| x))
1995    }
1996
1997    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
1998    pub fn r#get_ipv6_traffic_class(
1999        &self,
2000        ___deadline: zx::MonotonicInstant,
2001    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
2002        let _response = self
2003            .client
2004            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2005                BaseNetworkSocketGetIpv6TrafficClassResponse,
2006                fidl_fuchsia_posix::Errno,
2007            >>(
2008                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
2009            )?;
2010        Ok(_response.map(|x| x.value))
2011    }
2012
2013    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
2014    pub fn r#set_ipv6_receive_packet_info(
2015        &self,
2016        mut value: bool,
2017        ___deadline: zx::MonotonicInstant,
2018    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
2019        let _response = self.client.send_query::<
2020            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
2021            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
2022        >(
2023            (value,),
2024            0x19259775b1a92768,
2025            fidl::encoding::DynamicFlags::empty(),
2026            ___deadline,
2027        )?;
2028        Ok(_response.map(|x| x))
2029    }
2030
2031    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
2032    pub fn r#get_ipv6_receive_packet_info(
2033        &self,
2034        ___deadline: zx::MonotonicInstant,
2035    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
2036        let _response = self
2037            .client
2038            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2039                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
2040                fidl_fuchsia_posix::Errno,
2041            >>(
2042                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
2043            )?;
2044        Ok(_response.map(|x| x.value))
2045    }
2046
2047    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
2048    pub fn r#get_original_destination(
2049        &self,
2050        ___deadline: zx::MonotonicInstant,
2051    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
2052        let _response = self
2053            .client
2054            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2055                BaseNetworkSocketGetOriginalDestinationResponse,
2056                fidl_fuchsia_posix::Errno,
2057            >>(
2058                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
2059            )?;
2060        Ok(_response.map(|x| x.value))
2061    }
2062
2063    /// Retrieves creation information from the socket.
2064    ///
2065    /// - response `domain` the socket's associated domain.
2066    /// - response `proto` the socket's associated protocol.
2067    pub fn r#get_info(
2068        &self,
2069        ___deadline: zx::MonotonicInstant,
2070    ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
2071        let _response = self
2072            .client
2073            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
2074                BaseDatagramSocketGetInfoResponse,
2075                fidl_fuchsia_posix::Errno,
2076            >>(
2077                (), 0x48aa0a1f6a32d2ed, fidl::encoding::DynamicFlags::empty(), ___deadline
2078            )?;
2079        Ok(_response.map(|x| (x.domain, x.proto)))
2080    }
2081}
2082
2083#[cfg(target_os = "fuchsia")]
2084impl From<BaseDatagramSocketSynchronousProxy> for zx::Handle {
2085    fn from(value: BaseDatagramSocketSynchronousProxy) -> Self {
2086        value.into_channel().into()
2087    }
2088}
2089
2090#[cfg(target_os = "fuchsia")]
2091impl From<fidl::Channel> for BaseDatagramSocketSynchronousProxy {
2092    fn from(value: fidl::Channel) -> Self {
2093        Self::new(value)
2094    }
2095}
2096
2097#[cfg(target_os = "fuchsia")]
2098impl fidl::endpoints::FromClient for BaseDatagramSocketSynchronousProxy {
2099    type Protocol = BaseDatagramSocketMarker;
2100
2101    fn from_client(value: fidl::endpoints::ClientEnd<BaseDatagramSocketMarker>) -> Self {
2102        Self::new(value.into_channel())
2103    }
2104}
2105
2106#[derive(Debug, Clone)]
2107pub struct BaseDatagramSocketProxy {
2108    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2109}
2110
2111impl fidl::endpoints::Proxy for BaseDatagramSocketProxy {
2112    type Protocol = BaseDatagramSocketMarker;
2113
2114    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2115        Self::new(inner)
2116    }
2117
2118    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2119        self.client.into_channel().map_err(|client| Self { client })
2120    }
2121
2122    fn as_channel(&self) -> &::fidl::AsyncChannel {
2123        self.client.as_channel()
2124    }
2125}
2126
2127impl BaseDatagramSocketProxy {
2128    /// Create a new Proxy for fuchsia.posix.socket/BaseDatagramSocket.
2129    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2130        let protocol_name =
2131            <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2132        Self { client: fidl::client::Client::new(channel, protocol_name) }
2133    }
2134
2135    /// Get a Stream of events from the remote end of the protocol.
2136    ///
2137    /// # Panics
2138    ///
2139    /// Panics if the event stream was already taken.
2140    pub fn take_event_stream(&self) -> BaseDatagramSocketEventStream {
2141        BaseDatagramSocketEventStream { event_receiver: self.client.take_event_receiver() }
2142    }
2143
2144    pub fn r#clone(
2145        &self,
2146        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
2147    ) -> Result<(), fidl::Error> {
2148        BaseDatagramSocketProxyInterface::r#clone(self, request)
2149    }
2150
2151    /// Terminates the connection.
2152    ///
2153    /// After calling `Close`, the client must not send any other requests.
2154    ///
2155    /// Servers, after sending the status response, should close the connection
2156    /// regardless of status and without sending an epitaph.
2157    ///
2158    /// Closing the client end of the channel should be semantically equivalent
2159    /// to calling `Close` without knowing when the close has completed or its
2160    /// status.
2161    pub fn r#close(
2162        &self,
2163    ) -> fidl::client::QueryResponseFut<
2164        fidl_fuchsia_unknown::CloseableCloseResult,
2165        fidl::encoding::DefaultFuchsiaResourceDialect,
2166    > {
2167        BaseDatagramSocketProxyInterface::r#close(self)
2168    }
2169
2170    pub fn r#query(
2171        &self,
2172    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
2173    {
2174        BaseDatagramSocketProxyInterface::r#query(self)
2175    }
2176
2177    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
2178    pub fn r#set_reuse_address(
2179        &self,
2180        mut value: bool,
2181    ) -> fidl::client::QueryResponseFut<
2182        BaseSocketSetReuseAddressResult,
2183        fidl::encoding::DefaultFuchsiaResourceDialect,
2184    > {
2185        BaseDatagramSocketProxyInterface::r#set_reuse_address(self, value)
2186    }
2187
2188    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
2189    pub fn r#get_reuse_address(
2190        &self,
2191    ) -> fidl::client::QueryResponseFut<
2192        BaseSocketGetReuseAddressResult,
2193        fidl::encoding::DefaultFuchsiaResourceDialect,
2194    > {
2195        BaseDatagramSocketProxyInterface::r#get_reuse_address(self)
2196    }
2197
2198    /// Get `SOL_SOCKET` -> `SO_ERROR`.
2199    /// Returns the last error if there is an error set on the socket.
2200    pub fn r#get_error(
2201        &self,
2202    ) -> fidl::client::QueryResponseFut<
2203        BaseSocketGetErrorResult,
2204        fidl::encoding::DefaultFuchsiaResourceDialect,
2205    > {
2206        BaseDatagramSocketProxyInterface::r#get_error(self)
2207    }
2208
2209    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
2210    pub fn r#set_broadcast(
2211        &self,
2212        mut value: bool,
2213    ) -> fidl::client::QueryResponseFut<
2214        BaseSocketSetBroadcastResult,
2215        fidl::encoding::DefaultFuchsiaResourceDialect,
2216    > {
2217        BaseDatagramSocketProxyInterface::r#set_broadcast(self, value)
2218    }
2219
2220    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
2221    pub fn r#get_broadcast(
2222        &self,
2223    ) -> fidl::client::QueryResponseFut<
2224        BaseSocketGetBroadcastResult,
2225        fidl::encoding::DefaultFuchsiaResourceDialect,
2226    > {
2227        BaseDatagramSocketProxyInterface::r#get_broadcast(self)
2228    }
2229
2230    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
2231    pub fn r#set_send_buffer(
2232        &self,
2233        mut value_bytes: u64,
2234    ) -> fidl::client::QueryResponseFut<
2235        BaseSocketSetSendBufferResult,
2236        fidl::encoding::DefaultFuchsiaResourceDialect,
2237    > {
2238        BaseDatagramSocketProxyInterface::r#set_send_buffer(self, value_bytes)
2239    }
2240
2241    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
2242    pub fn r#get_send_buffer(
2243        &self,
2244    ) -> fidl::client::QueryResponseFut<
2245        BaseSocketGetSendBufferResult,
2246        fidl::encoding::DefaultFuchsiaResourceDialect,
2247    > {
2248        BaseDatagramSocketProxyInterface::r#get_send_buffer(self)
2249    }
2250
2251    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
2252    pub fn r#set_receive_buffer(
2253        &self,
2254        mut value_bytes: u64,
2255    ) -> fidl::client::QueryResponseFut<
2256        BaseSocketSetReceiveBufferResult,
2257        fidl::encoding::DefaultFuchsiaResourceDialect,
2258    > {
2259        BaseDatagramSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
2260    }
2261
2262    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
2263    pub fn r#get_receive_buffer(
2264        &self,
2265    ) -> fidl::client::QueryResponseFut<
2266        BaseSocketGetReceiveBufferResult,
2267        fidl::encoding::DefaultFuchsiaResourceDialect,
2268    > {
2269        BaseDatagramSocketProxyInterface::r#get_receive_buffer(self)
2270    }
2271
2272    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
2273    pub fn r#set_keep_alive(
2274        &self,
2275        mut value: bool,
2276    ) -> fidl::client::QueryResponseFut<
2277        BaseSocketSetKeepAliveResult,
2278        fidl::encoding::DefaultFuchsiaResourceDialect,
2279    > {
2280        BaseDatagramSocketProxyInterface::r#set_keep_alive(self, value)
2281    }
2282
2283    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
2284    pub fn r#get_keep_alive(
2285        &self,
2286    ) -> fidl::client::QueryResponseFut<
2287        BaseSocketGetKeepAliveResult,
2288        fidl::encoding::DefaultFuchsiaResourceDialect,
2289    > {
2290        BaseDatagramSocketProxyInterface::r#get_keep_alive(self)
2291    }
2292
2293    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
2294    pub fn r#set_out_of_band_inline(
2295        &self,
2296        mut value: bool,
2297    ) -> fidl::client::QueryResponseFut<
2298        BaseSocketSetOutOfBandInlineResult,
2299        fidl::encoding::DefaultFuchsiaResourceDialect,
2300    > {
2301        BaseDatagramSocketProxyInterface::r#set_out_of_band_inline(self, value)
2302    }
2303
2304    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
2305    pub fn r#get_out_of_band_inline(
2306        &self,
2307    ) -> fidl::client::QueryResponseFut<
2308        BaseSocketGetOutOfBandInlineResult,
2309        fidl::encoding::DefaultFuchsiaResourceDialect,
2310    > {
2311        BaseDatagramSocketProxyInterface::r#get_out_of_band_inline(self)
2312    }
2313
2314    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
2315    pub fn r#set_no_check(
2316        &self,
2317        mut value: bool,
2318    ) -> fidl::client::QueryResponseFut<
2319        BaseSocketSetNoCheckResult,
2320        fidl::encoding::DefaultFuchsiaResourceDialect,
2321    > {
2322        BaseDatagramSocketProxyInterface::r#set_no_check(self, value)
2323    }
2324
2325    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
2326    pub fn r#get_no_check(
2327        &self,
2328    ) -> fidl::client::QueryResponseFut<
2329        BaseSocketGetNoCheckResult,
2330        fidl::encoding::DefaultFuchsiaResourceDialect,
2331    > {
2332        BaseDatagramSocketProxyInterface::r#get_no_check(self)
2333    }
2334
2335    /// Set `SOL_SOCKET` -> `SO_LINGER`.
2336    pub fn r#set_linger(
2337        &self,
2338        mut linger: bool,
2339        mut length_secs: u32,
2340    ) -> fidl::client::QueryResponseFut<
2341        BaseSocketSetLingerResult,
2342        fidl::encoding::DefaultFuchsiaResourceDialect,
2343    > {
2344        BaseDatagramSocketProxyInterface::r#set_linger(self, linger, length_secs)
2345    }
2346
2347    /// Get `SOL_SOCKET` -> `SO_LINGER`.
2348    pub fn r#get_linger(
2349        &self,
2350    ) -> fidl::client::QueryResponseFut<
2351        BaseSocketGetLingerResult,
2352        fidl::encoding::DefaultFuchsiaResourceDialect,
2353    > {
2354        BaseDatagramSocketProxyInterface::r#get_linger(self)
2355    }
2356
2357    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
2358    pub fn r#set_reuse_port(
2359        &self,
2360        mut value: bool,
2361    ) -> fidl::client::QueryResponseFut<
2362        BaseSocketSetReusePortResult,
2363        fidl::encoding::DefaultFuchsiaResourceDialect,
2364    > {
2365        BaseDatagramSocketProxyInterface::r#set_reuse_port(self, value)
2366    }
2367
2368    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
2369    pub fn r#get_reuse_port(
2370        &self,
2371    ) -> fidl::client::QueryResponseFut<
2372        BaseSocketGetReusePortResult,
2373        fidl::encoding::DefaultFuchsiaResourceDialect,
2374    > {
2375        BaseDatagramSocketProxyInterface::r#get_reuse_port(self)
2376    }
2377
2378    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
2379    pub fn r#get_accept_conn(
2380        &self,
2381    ) -> fidl::client::QueryResponseFut<
2382        BaseSocketGetAcceptConnResult,
2383        fidl::encoding::DefaultFuchsiaResourceDialect,
2384    > {
2385        BaseDatagramSocketProxyInterface::r#get_accept_conn(self)
2386    }
2387
2388    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
2389    pub fn r#set_bind_to_device(
2390        &self,
2391        mut value: &str,
2392    ) -> fidl::client::QueryResponseFut<
2393        BaseSocketSetBindToDeviceResult,
2394        fidl::encoding::DefaultFuchsiaResourceDialect,
2395    > {
2396        BaseDatagramSocketProxyInterface::r#set_bind_to_device(self, value)
2397    }
2398
2399    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
2400    pub fn r#get_bind_to_device(
2401        &self,
2402    ) -> fidl::client::QueryResponseFut<
2403        BaseSocketGetBindToDeviceResult,
2404        fidl::encoding::DefaultFuchsiaResourceDialect,
2405    > {
2406        BaseDatagramSocketProxyInterface::r#get_bind_to_device(self)
2407    }
2408
2409    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
2410    /// If `value` is 0, this clears the bound interface.
2411    pub fn r#set_bind_to_interface_index(
2412        &self,
2413        mut value: u64,
2414    ) -> fidl::client::QueryResponseFut<
2415        BaseSocketSetBindToInterfaceIndexResult,
2416        fidl::encoding::DefaultFuchsiaResourceDialect,
2417    > {
2418        BaseDatagramSocketProxyInterface::r#set_bind_to_interface_index(self, value)
2419    }
2420
2421    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
2422    pub fn r#get_bind_to_interface_index(
2423        &self,
2424    ) -> fidl::client::QueryResponseFut<
2425        BaseSocketGetBindToInterfaceIndexResult,
2426        fidl::encoding::DefaultFuchsiaResourceDialect,
2427    > {
2428        BaseDatagramSocketProxyInterface::r#get_bind_to_interface_index(self)
2429    }
2430
2431    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
2432    pub fn r#set_timestamp(
2433        &self,
2434        mut value: TimestampOption,
2435    ) -> fidl::client::QueryResponseFut<
2436        BaseSocketSetTimestampResult,
2437        fidl::encoding::DefaultFuchsiaResourceDialect,
2438    > {
2439        BaseDatagramSocketProxyInterface::r#set_timestamp(self, value)
2440    }
2441
2442    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
2443    pub fn r#get_timestamp(
2444        &self,
2445    ) -> fidl::client::QueryResponseFut<
2446        BaseSocketGetTimestampResult,
2447        fidl::encoding::DefaultFuchsiaResourceDialect,
2448    > {
2449        BaseDatagramSocketProxyInterface::r#get_timestamp(self)
2450    }
2451
2452    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
2453    /// unlike the standard SO_MARK, this API has multiple mark domains and each
2454    /// mark can be set independently in each domain.
2455    pub fn r#set_mark(
2456        &self,
2457        mut domain: fidl_fuchsia_net::MarkDomain,
2458        mut mark: &OptionalUint32,
2459    ) -> fidl::client::QueryResponseFut<
2460        BaseSocketSetMarkResult,
2461        fidl::encoding::DefaultFuchsiaResourceDialect,
2462    > {
2463        BaseDatagramSocketProxyInterface::r#set_mark(self, domain, mark)
2464    }
2465
2466    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
2467    /// unlike the standard SO_MARK, this API has multiple mark domains and each
2468    /// mark can be retrieved independently in each domain.
2469    pub fn r#get_mark(
2470        &self,
2471        mut domain: fidl_fuchsia_net::MarkDomain,
2472    ) -> fidl::client::QueryResponseFut<
2473        BaseSocketGetMarkResult,
2474        fidl::encoding::DefaultFuchsiaResourceDialect,
2475    > {
2476        BaseDatagramSocketProxyInterface::r#get_mark(self, domain)
2477    }
2478
2479    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
2480    pub fn r#get_cookie(
2481        &self,
2482    ) -> fidl::client::QueryResponseFut<
2483        BaseSocketGetCookieResult,
2484        fidl::encoding::DefaultFuchsiaResourceDialect,
2485    > {
2486        BaseDatagramSocketProxyInterface::r#get_cookie(self)
2487    }
2488
2489    /// Sets the local address used for the socket.
2490    pub fn r#bind(
2491        &self,
2492        mut addr: &fidl_fuchsia_net::SocketAddress,
2493    ) -> fidl::client::QueryResponseFut<
2494        BaseNetworkSocketBindResult,
2495        fidl::encoding::DefaultFuchsiaResourceDialect,
2496    > {
2497        BaseDatagramSocketProxyInterface::r#bind(self, addr)
2498    }
2499
2500    /// Initiates a connection to a remote address.
2501    pub fn r#connect(
2502        &self,
2503        mut addr: &fidl_fuchsia_net::SocketAddress,
2504    ) -> fidl::client::QueryResponseFut<
2505        BaseNetworkSocketConnectResult,
2506        fidl::encoding::DefaultFuchsiaResourceDialect,
2507    > {
2508        BaseDatagramSocketProxyInterface::r#connect(self, addr)
2509    }
2510
2511    /// Clears connection information from this socket.
2512    pub fn r#disconnect(
2513        &self,
2514    ) -> fidl::client::QueryResponseFut<
2515        BaseNetworkSocketDisconnectResult,
2516        fidl::encoding::DefaultFuchsiaResourceDialect,
2517    > {
2518        BaseDatagramSocketProxyInterface::r#disconnect(self)
2519    }
2520
2521    /// Retrieves the local socket address.
2522    pub fn r#get_sock_name(
2523        &self,
2524    ) -> fidl::client::QueryResponseFut<
2525        BaseNetworkSocketGetSockNameResult,
2526        fidl::encoding::DefaultFuchsiaResourceDialect,
2527    > {
2528        BaseDatagramSocketProxyInterface::r#get_sock_name(self)
2529    }
2530
2531    /// Retrieves the remote socket address.
2532    pub fn r#get_peer_name(
2533        &self,
2534    ) -> fidl::client::QueryResponseFut<
2535        BaseNetworkSocketGetPeerNameResult,
2536        fidl::encoding::DefaultFuchsiaResourceDialect,
2537    > {
2538        BaseDatagramSocketProxyInterface::r#get_peer_name(self)
2539    }
2540
2541    /// Shuts down part of the socket.
2542    pub fn r#shutdown(
2543        &self,
2544        mut mode: ShutdownMode,
2545    ) -> fidl::client::QueryResponseFut<
2546        BaseNetworkSocketShutdownResult,
2547        fidl::encoding::DefaultFuchsiaResourceDialect,
2548    > {
2549        BaseDatagramSocketProxyInterface::r#shutdown(self, mode)
2550    }
2551
2552    /// Set `SOL_IP` -> `IP_TOS`.
2553    pub fn r#set_ip_type_of_service(
2554        &self,
2555        mut value: u8,
2556    ) -> fidl::client::QueryResponseFut<
2557        BaseNetworkSocketSetIpTypeOfServiceResult,
2558        fidl::encoding::DefaultFuchsiaResourceDialect,
2559    > {
2560        BaseDatagramSocketProxyInterface::r#set_ip_type_of_service(self, value)
2561    }
2562
2563    /// Get `SOL_IP` -> `IP_TOS`.
2564    pub fn r#get_ip_type_of_service(
2565        &self,
2566    ) -> fidl::client::QueryResponseFut<
2567        BaseNetworkSocketGetIpTypeOfServiceResult,
2568        fidl::encoding::DefaultFuchsiaResourceDialect,
2569    > {
2570        BaseDatagramSocketProxyInterface::r#get_ip_type_of_service(self)
2571    }
2572
2573    /// Set `SOL_IP` -> `IP_TTL`.
2574    pub fn r#set_ip_ttl(
2575        &self,
2576        mut value: &OptionalUint8,
2577    ) -> fidl::client::QueryResponseFut<
2578        BaseNetworkSocketSetIpTtlResult,
2579        fidl::encoding::DefaultFuchsiaResourceDialect,
2580    > {
2581        BaseDatagramSocketProxyInterface::r#set_ip_ttl(self, value)
2582    }
2583
2584    /// Get `SOL_IP` -> `IP_TTL`.
2585    pub fn r#get_ip_ttl(
2586        &self,
2587    ) -> fidl::client::QueryResponseFut<
2588        BaseNetworkSocketGetIpTtlResult,
2589        fidl::encoding::DefaultFuchsiaResourceDialect,
2590    > {
2591        BaseDatagramSocketProxyInterface::r#get_ip_ttl(self)
2592    }
2593
2594    /// Set `SOL_IP` -> `IP_PKTINFO`.
2595    pub fn r#set_ip_packet_info(
2596        &self,
2597        mut value: bool,
2598    ) -> fidl::client::QueryResponseFut<
2599        BaseNetworkSocketSetIpPacketInfoResult,
2600        fidl::encoding::DefaultFuchsiaResourceDialect,
2601    > {
2602        BaseDatagramSocketProxyInterface::r#set_ip_packet_info(self, value)
2603    }
2604
2605    /// Get `SOL_IP` -> `IP_PKTINFO`.
2606    pub fn r#get_ip_packet_info(
2607        &self,
2608    ) -> fidl::client::QueryResponseFut<
2609        BaseNetworkSocketGetIpPacketInfoResult,
2610        fidl::encoding::DefaultFuchsiaResourceDialect,
2611    > {
2612        BaseDatagramSocketProxyInterface::r#get_ip_packet_info(self)
2613    }
2614
2615    /// Set `SOL_IP` -> `IP_RECVTOS`.
2616    pub fn r#set_ip_receive_type_of_service(
2617        &self,
2618        mut value: bool,
2619    ) -> fidl::client::QueryResponseFut<
2620        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
2621        fidl::encoding::DefaultFuchsiaResourceDialect,
2622    > {
2623        BaseDatagramSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
2624    }
2625
2626    /// Get `SOL_IP` -> `IP_RECVTOS`.
2627    pub fn r#get_ip_receive_type_of_service(
2628        &self,
2629    ) -> fidl::client::QueryResponseFut<
2630        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
2631        fidl::encoding::DefaultFuchsiaResourceDialect,
2632    > {
2633        BaseDatagramSocketProxyInterface::r#get_ip_receive_type_of_service(self)
2634    }
2635
2636    /// Set `SOL_IP` -> `IP_RECVTTL`.
2637    pub fn r#set_ip_receive_ttl(
2638        &self,
2639        mut value: bool,
2640    ) -> fidl::client::QueryResponseFut<
2641        BaseNetworkSocketSetIpReceiveTtlResult,
2642        fidl::encoding::DefaultFuchsiaResourceDialect,
2643    > {
2644        BaseDatagramSocketProxyInterface::r#set_ip_receive_ttl(self, value)
2645    }
2646
2647    /// Get `SOL_IP` -> `IP_RECVTTL`.
2648    pub fn r#get_ip_receive_ttl(
2649        &self,
2650    ) -> fidl::client::QueryResponseFut<
2651        BaseNetworkSocketGetIpReceiveTtlResult,
2652        fidl::encoding::DefaultFuchsiaResourceDialect,
2653    > {
2654        BaseDatagramSocketProxyInterface::r#get_ip_receive_ttl(self)
2655    }
2656
2657    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
2658    pub fn r#set_ip_multicast_interface(
2659        &self,
2660        mut iface: u64,
2661        mut address: &fidl_fuchsia_net::Ipv4Address,
2662    ) -> fidl::client::QueryResponseFut<
2663        BaseNetworkSocketSetIpMulticastInterfaceResult,
2664        fidl::encoding::DefaultFuchsiaResourceDialect,
2665    > {
2666        BaseDatagramSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
2667    }
2668
2669    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
2670    pub fn r#get_ip_multicast_interface(
2671        &self,
2672    ) -> fidl::client::QueryResponseFut<
2673        BaseNetworkSocketGetIpMulticastInterfaceResult,
2674        fidl::encoding::DefaultFuchsiaResourceDialect,
2675    > {
2676        BaseDatagramSocketProxyInterface::r#get_ip_multicast_interface(self)
2677    }
2678
2679    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
2680    pub fn r#set_ip_multicast_ttl(
2681        &self,
2682        mut value: &OptionalUint8,
2683    ) -> fidl::client::QueryResponseFut<
2684        BaseNetworkSocketSetIpMulticastTtlResult,
2685        fidl::encoding::DefaultFuchsiaResourceDialect,
2686    > {
2687        BaseDatagramSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
2688    }
2689
2690    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
2691    pub fn r#get_ip_multicast_ttl(
2692        &self,
2693    ) -> fidl::client::QueryResponseFut<
2694        BaseNetworkSocketGetIpMulticastTtlResult,
2695        fidl::encoding::DefaultFuchsiaResourceDialect,
2696    > {
2697        BaseDatagramSocketProxyInterface::r#get_ip_multicast_ttl(self)
2698    }
2699
2700    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
2701    pub fn r#set_ip_multicast_loopback(
2702        &self,
2703        mut value: bool,
2704    ) -> fidl::client::QueryResponseFut<
2705        BaseNetworkSocketSetIpMulticastLoopbackResult,
2706        fidl::encoding::DefaultFuchsiaResourceDialect,
2707    > {
2708        BaseDatagramSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
2709    }
2710
2711    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
2712    pub fn r#get_ip_multicast_loopback(
2713        &self,
2714    ) -> fidl::client::QueryResponseFut<
2715        BaseNetworkSocketGetIpMulticastLoopbackResult,
2716        fidl::encoding::DefaultFuchsiaResourceDialect,
2717    > {
2718        BaseDatagramSocketProxyInterface::r#get_ip_multicast_loopback(self)
2719    }
2720
2721    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
2722    pub fn r#add_ip_membership(
2723        &self,
2724        mut membership: &IpMulticastMembership,
2725    ) -> fidl::client::QueryResponseFut<
2726        BaseNetworkSocketAddIpMembershipResult,
2727        fidl::encoding::DefaultFuchsiaResourceDialect,
2728    > {
2729        BaseDatagramSocketProxyInterface::r#add_ip_membership(self, membership)
2730    }
2731
2732    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
2733    pub fn r#drop_ip_membership(
2734        &self,
2735        mut membership: &IpMulticastMembership,
2736    ) -> fidl::client::QueryResponseFut<
2737        BaseNetworkSocketDropIpMembershipResult,
2738        fidl::encoding::DefaultFuchsiaResourceDialect,
2739    > {
2740        BaseDatagramSocketProxyInterface::r#drop_ip_membership(self, membership)
2741    }
2742
2743    /// Set `SOL_IP` -> `IP_TRANSPARENT`
2744    pub fn r#set_ip_transparent(
2745        &self,
2746        mut value: bool,
2747    ) -> fidl::client::QueryResponseFut<
2748        BaseNetworkSocketSetIpTransparentResult,
2749        fidl::encoding::DefaultFuchsiaResourceDialect,
2750    > {
2751        BaseDatagramSocketProxyInterface::r#set_ip_transparent(self, value)
2752    }
2753
2754    /// Get `SOL_IP` -> `IP_TRANSPARENT`
2755    pub fn r#get_ip_transparent(
2756        &self,
2757    ) -> fidl::client::QueryResponseFut<
2758        BaseNetworkSocketGetIpTransparentResult,
2759        fidl::encoding::DefaultFuchsiaResourceDialect,
2760    > {
2761        BaseDatagramSocketProxyInterface::r#get_ip_transparent(self)
2762    }
2763
2764    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
2765    pub fn r#set_ip_receive_original_destination_address(
2766        &self,
2767        mut value: bool,
2768    ) -> fidl::client::QueryResponseFut<
2769        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
2770        fidl::encoding::DefaultFuchsiaResourceDialect,
2771    > {
2772        BaseDatagramSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
2773    }
2774
2775    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
2776    pub fn r#get_ip_receive_original_destination_address(
2777        &self,
2778    ) -> fidl::client::QueryResponseFut<
2779        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
2780        fidl::encoding::DefaultFuchsiaResourceDialect,
2781    > {
2782        BaseDatagramSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
2783    }
2784
2785    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
2786    pub fn r#add_ipv6_membership(
2787        &self,
2788        mut membership: &Ipv6MulticastMembership,
2789    ) -> fidl::client::QueryResponseFut<
2790        BaseNetworkSocketAddIpv6MembershipResult,
2791        fidl::encoding::DefaultFuchsiaResourceDialect,
2792    > {
2793        BaseDatagramSocketProxyInterface::r#add_ipv6_membership(self, membership)
2794    }
2795
2796    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
2797    pub fn r#drop_ipv6_membership(
2798        &self,
2799        mut membership: &Ipv6MulticastMembership,
2800    ) -> fidl::client::QueryResponseFut<
2801        BaseNetworkSocketDropIpv6MembershipResult,
2802        fidl::encoding::DefaultFuchsiaResourceDialect,
2803    > {
2804        BaseDatagramSocketProxyInterface::r#drop_ipv6_membership(self, membership)
2805    }
2806
2807    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
2808    pub fn r#set_ipv6_multicast_interface(
2809        &self,
2810        mut value: u64,
2811    ) -> fidl::client::QueryResponseFut<
2812        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
2813        fidl::encoding::DefaultFuchsiaResourceDialect,
2814    > {
2815        BaseDatagramSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
2816    }
2817
2818    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
2819    pub fn r#get_ipv6_multicast_interface(
2820        &self,
2821    ) -> fidl::client::QueryResponseFut<
2822        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
2823        fidl::encoding::DefaultFuchsiaResourceDialect,
2824    > {
2825        BaseDatagramSocketProxyInterface::r#get_ipv6_multicast_interface(self)
2826    }
2827
2828    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
2829    pub fn r#set_ipv6_unicast_hops(
2830        &self,
2831        mut value: &OptionalUint8,
2832    ) -> fidl::client::QueryResponseFut<
2833        BaseNetworkSocketSetIpv6UnicastHopsResult,
2834        fidl::encoding::DefaultFuchsiaResourceDialect,
2835    > {
2836        BaseDatagramSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
2837    }
2838
2839    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
2840    pub fn r#get_ipv6_unicast_hops(
2841        &self,
2842    ) -> fidl::client::QueryResponseFut<
2843        BaseNetworkSocketGetIpv6UnicastHopsResult,
2844        fidl::encoding::DefaultFuchsiaResourceDialect,
2845    > {
2846        BaseDatagramSocketProxyInterface::r#get_ipv6_unicast_hops(self)
2847    }
2848
2849    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
2850    pub fn r#set_ipv6_receive_hop_limit(
2851        &self,
2852        mut value: bool,
2853    ) -> fidl::client::QueryResponseFut<
2854        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
2855        fidl::encoding::DefaultFuchsiaResourceDialect,
2856    > {
2857        BaseDatagramSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
2858    }
2859
2860    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
2861    pub fn r#get_ipv6_receive_hop_limit(
2862        &self,
2863    ) -> fidl::client::QueryResponseFut<
2864        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
2865        fidl::encoding::DefaultFuchsiaResourceDialect,
2866    > {
2867        BaseDatagramSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
2868    }
2869
2870    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
2871    pub fn r#set_ipv6_multicast_hops(
2872        &self,
2873        mut value: &OptionalUint8,
2874    ) -> fidl::client::QueryResponseFut<
2875        BaseNetworkSocketSetIpv6MulticastHopsResult,
2876        fidl::encoding::DefaultFuchsiaResourceDialect,
2877    > {
2878        BaseDatagramSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
2879    }
2880
2881    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
2882    pub fn r#get_ipv6_multicast_hops(
2883        &self,
2884    ) -> fidl::client::QueryResponseFut<
2885        BaseNetworkSocketGetIpv6MulticastHopsResult,
2886        fidl::encoding::DefaultFuchsiaResourceDialect,
2887    > {
2888        BaseDatagramSocketProxyInterface::r#get_ipv6_multicast_hops(self)
2889    }
2890
2891    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
2892    pub fn r#set_ipv6_multicast_loopback(
2893        &self,
2894        mut value: bool,
2895    ) -> fidl::client::QueryResponseFut<
2896        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
2897        fidl::encoding::DefaultFuchsiaResourceDialect,
2898    > {
2899        BaseDatagramSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
2900    }
2901
2902    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
2903    pub fn r#get_ipv6_multicast_loopback(
2904        &self,
2905    ) -> fidl::client::QueryResponseFut<
2906        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
2907        fidl::encoding::DefaultFuchsiaResourceDialect,
2908    > {
2909        BaseDatagramSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
2910    }
2911
2912    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
2913    pub fn r#set_ipv6_only(
2914        &self,
2915        mut value: bool,
2916    ) -> fidl::client::QueryResponseFut<
2917        BaseNetworkSocketSetIpv6OnlyResult,
2918        fidl::encoding::DefaultFuchsiaResourceDialect,
2919    > {
2920        BaseDatagramSocketProxyInterface::r#set_ipv6_only(self, value)
2921    }
2922
2923    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
2924    pub fn r#get_ipv6_only(
2925        &self,
2926    ) -> fidl::client::QueryResponseFut<
2927        BaseNetworkSocketGetIpv6OnlyResult,
2928        fidl::encoding::DefaultFuchsiaResourceDialect,
2929    > {
2930        BaseDatagramSocketProxyInterface::r#get_ipv6_only(self)
2931    }
2932
2933    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
2934    pub fn r#set_ipv6_receive_traffic_class(
2935        &self,
2936        mut value: bool,
2937    ) -> fidl::client::QueryResponseFut<
2938        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
2939        fidl::encoding::DefaultFuchsiaResourceDialect,
2940    > {
2941        BaseDatagramSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
2942    }
2943
2944    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
2945    pub fn r#get_ipv6_receive_traffic_class(
2946        &self,
2947    ) -> fidl::client::QueryResponseFut<
2948        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
2949        fidl::encoding::DefaultFuchsiaResourceDialect,
2950    > {
2951        BaseDatagramSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
2952    }
2953
2954    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
2955    pub fn r#set_ipv6_traffic_class(
2956        &self,
2957        mut value: &OptionalUint8,
2958    ) -> fidl::client::QueryResponseFut<
2959        BaseNetworkSocketSetIpv6TrafficClassResult,
2960        fidl::encoding::DefaultFuchsiaResourceDialect,
2961    > {
2962        BaseDatagramSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
2963    }
2964
2965    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
2966    pub fn r#get_ipv6_traffic_class(
2967        &self,
2968    ) -> fidl::client::QueryResponseFut<
2969        BaseNetworkSocketGetIpv6TrafficClassResult,
2970        fidl::encoding::DefaultFuchsiaResourceDialect,
2971    > {
2972        BaseDatagramSocketProxyInterface::r#get_ipv6_traffic_class(self)
2973    }
2974
2975    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
2976    pub fn r#set_ipv6_receive_packet_info(
2977        &self,
2978        mut value: bool,
2979    ) -> fidl::client::QueryResponseFut<
2980        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
2981        fidl::encoding::DefaultFuchsiaResourceDialect,
2982    > {
2983        BaseDatagramSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
2984    }
2985
2986    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
2987    pub fn r#get_ipv6_receive_packet_info(
2988        &self,
2989    ) -> fidl::client::QueryResponseFut<
2990        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
2991        fidl::encoding::DefaultFuchsiaResourceDialect,
2992    > {
2993        BaseDatagramSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
2994    }
2995
2996    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
2997    pub fn r#get_original_destination(
2998        &self,
2999    ) -> fidl::client::QueryResponseFut<
3000        BaseNetworkSocketGetOriginalDestinationResult,
3001        fidl::encoding::DefaultFuchsiaResourceDialect,
3002    > {
3003        BaseDatagramSocketProxyInterface::r#get_original_destination(self)
3004    }
3005
3006    /// Retrieves creation information from the socket.
3007    ///
3008    /// - response `domain` the socket's associated domain.
3009    /// - response `proto` the socket's associated protocol.
3010    pub fn r#get_info(
3011        &self,
3012    ) -> fidl::client::QueryResponseFut<
3013        BaseDatagramSocketGetInfoResult,
3014        fidl::encoding::DefaultFuchsiaResourceDialect,
3015    > {
3016        BaseDatagramSocketProxyInterface::r#get_info(self)
3017    }
3018}
3019
3020impl BaseDatagramSocketProxyInterface for BaseDatagramSocketProxy {
3021    fn r#clone(
3022        &self,
3023        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
3024    ) -> Result<(), fidl::Error> {
3025        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
3026            (request,),
3027            0x20d8a7aba2168a79,
3028            fidl::encoding::DynamicFlags::empty(),
3029        )
3030    }
3031
3032    type CloseResponseFut = fidl::client::QueryResponseFut<
3033        fidl_fuchsia_unknown::CloseableCloseResult,
3034        fidl::encoding::DefaultFuchsiaResourceDialect,
3035    >;
3036    fn r#close(&self) -> Self::CloseResponseFut {
3037        fn _decode(
3038            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3039        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
3040            let _response = fidl::client::decode_transaction_body::<
3041                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3042                fidl::encoding::DefaultFuchsiaResourceDialect,
3043                0x5ac5d459ad7f657e,
3044            >(_buf?)?;
3045            Ok(_response.map(|x| x))
3046        }
3047        self.client.send_query_and_decode::<
3048            fidl::encoding::EmptyPayload,
3049            fidl_fuchsia_unknown::CloseableCloseResult,
3050        >(
3051            (),
3052            0x5ac5d459ad7f657e,
3053            fidl::encoding::DynamicFlags::empty(),
3054            _decode,
3055        )
3056    }
3057
3058    type QueryResponseFut =
3059        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
3060    fn r#query(&self) -> Self::QueryResponseFut {
3061        fn _decode(
3062            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3063        ) -> Result<Vec<u8>, fidl::Error> {
3064            let _response = fidl::client::decode_transaction_body::<
3065                fidl_fuchsia_unknown::QueryableQueryResponse,
3066                fidl::encoding::DefaultFuchsiaResourceDialect,
3067                0x2658edee9decfc06,
3068            >(_buf?)?;
3069            Ok(_response.protocol)
3070        }
3071        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
3072            (),
3073            0x2658edee9decfc06,
3074            fidl::encoding::DynamicFlags::empty(),
3075            _decode,
3076        )
3077    }
3078
3079    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
3080        BaseSocketSetReuseAddressResult,
3081        fidl::encoding::DefaultFuchsiaResourceDialect,
3082    >;
3083    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
3084        fn _decode(
3085            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3086        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
3087            let _response = fidl::client::decode_transaction_body::<
3088                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3089                fidl::encoding::DefaultFuchsiaResourceDialect,
3090                0x1fd74ee8b9a4a876,
3091            >(_buf?)?;
3092            Ok(_response.map(|x| x))
3093        }
3094        self.client.send_query_and_decode::<
3095            BaseSocketSetReuseAddressRequest,
3096            BaseSocketSetReuseAddressResult,
3097        >(
3098            (value,),
3099            0x1fd74ee8b9a4a876,
3100            fidl::encoding::DynamicFlags::empty(),
3101            _decode,
3102        )
3103    }
3104
3105    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
3106        BaseSocketGetReuseAddressResult,
3107        fidl::encoding::DefaultFuchsiaResourceDialect,
3108    >;
3109    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
3110        fn _decode(
3111            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3112        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
3113            let _response = fidl::client::decode_transaction_body::<
3114                fidl::encoding::ResultType<
3115                    BaseSocketGetReuseAddressResponse,
3116                    fidl_fuchsia_posix::Errno,
3117                >,
3118                fidl::encoding::DefaultFuchsiaResourceDialect,
3119                0x67b7206b8d1bc0a5,
3120            >(_buf?)?;
3121            Ok(_response.map(|x| x.value))
3122        }
3123        self.client
3124            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
3125                (),
3126                0x67b7206b8d1bc0a5,
3127                fidl::encoding::DynamicFlags::empty(),
3128                _decode,
3129            )
3130    }
3131
3132    type GetErrorResponseFut = fidl::client::QueryResponseFut<
3133        BaseSocketGetErrorResult,
3134        fidl::encoding::DefaultFuchsiaResourceDialect,
3135    >;
3136    fn r#get_error(&self) -> Self::GetErrorResponseFut {
3137        fn _decode(
3138            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3139        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
3140            let _response = fidl::client::decode_transaction_body::<
3141                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3142                fidl::encoding::DefaultFuchsiaResourceDialect,
3143                0x5aad39b33e5f6ebb,
3144            >(_buf?)?;
3145            Ok(_response.map(|x| x))
3146        }
3147        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
3148            (),
3149            0x5aad39b33e5f6ebb,
3150            fidl::encoding::DynamicFlags::empty(),
3151            _decode,
3152        )
3153    }
3154
3155    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
3156        BaseSocketSetBroadcastResult,
3157        fidl::encoding::DefaultFuchsiaResourceDialect,
3158    >;
3159    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
3160        fn _decode(
3161            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3162        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
3163            let _response = fidl::client::decode_transaction_body::<
3164                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3165                fidl::encoding::DefaultFuchsiaResourceDialect,
3166                0x6023e081ce3cd947,
3167            >(_buf?)?;
3168            Ok(_response.map(|x| x))
3169        }
3170        self.client
3171            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
3172                (value,),
3173                0x6023e081ce3cd947,
3174                fidl::encoding::DynamicFlags::empty(),
3175                _decode,
3176            )
3177    }
3178
3179    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
3180        BaseSocketGetBroadcastResult,
3181        fidl::encoding::DefaultFuchsiaResourceDialect,
3182    >;
3183    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
3184        fn _decode(
3185            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3186        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
3187            let _response = fidl::client::decode_transaction_body::<
3188                fidl::encoding::ResultType<
3189                    BaseSocketGetBroadcastResponse,
3190                    fidl_fuchsia_posix::Errno,
3191                >,
3192                fidl::encoding::DefaultFuchsiaResourceDialect,
3193                0x68796fc556f9780d,
3194            >(_buf?)?;
3195            Ok(_response.map(|x| x.value))
3196        }
3197        self.client
3198            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
3199                (),
3200                0x68796fc556f9780d,
3201                fidl::encoding::DynamicFlags::empty(),
3202                _decode,
3203            )
3204    }
3205
3206    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
3207        BaseSocketSetSendBufferResult,
3208        fidl::encoding::DefaultFuchsiaResourceDialect,
3209    >;
3210    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
3211        fn _decode(
3212            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3213        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
3214            let _response = fidl::client::decode_transaction_body::<
3215                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3216                fidl::encoding::DefaultFuchsiaResourceDialect,
3217                0x756eac32d73a7a70,
3218            >(_buf?)?;
3219            Ok(_response.map(|x| x))
3220        }
3221        self.client
3222            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
3223                (value_bytes,),
3224                0x756eac32d73a7a70,
3225                fidl::encoding::DynamicFlags::empty(),
3226                _decode,
3227            )
3228    }
3229
3230    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
3231        BaseSocketGetSendBufferResult,
3232        fidl::encoding::DefaultFuchsiaResourceDialect,
3233    >;
3234    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
3235        fn _decode(
3236            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3237        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
3238            let _response = fidl::client::decode_transaction_body::<
3239                fidl::encoding::ResultType<
3240                    BaseSocketGetSendBufferResponse,
3241                    fidl_fuchsia_posix::Errno,
3242                >,
3243                fidl::encoding::DefaultFuchsiaResourceDialect,
3244                0x78a52fd9c7b2410b,
3245            >(_buf?)?;
3246            Ok(_response.map(|x| x.value_bytes))
3247        }
3248        self.client
3249            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
3250                (),
3251                0x78a52fd9c7b2410b,
3252                fidl::encoding::DynamicFlags::empty(),
3253                _decode,
3254            )
3255    }
3256
3257    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
3258        BaseSocketSetReceiveBufferResult,
3259        fidl::encoding::DefaultFuchsiaResourceDialect,
3260    >;
3261    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
3262        fn _decode(
3263            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3264        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
3265            let _response = fidl::client::decode_transaction_body::<
3266                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3267                fidl::encoding::DefaultFuchsiaResourceDialect,
3268                0x6b0cf2f1919c7001,
3269            >(_buf?)?;
3270            Ok(_response.map(|x| x))
3271        }
3272        self.client.send_query_and_decode::<
3273            BaseSocketSetReceiveBufferRequest,
3274            BaseSocketSetReceiveBufferResult,
3275        >(
3276            (value_bytes,),
3277            0x6b0cf2f1919c7001,
3278            fidl::encoding::DynamicFlags::empty(),
3279            _decode,
3280        )
3281    }
3282
3283    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
3284        BaseSocketGetReceiveBufferResult,
3285        fidl::encoding::DefaultFuchsiaResourceDialect,
3286    >;
3287    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
3288        fn _decode(
3289            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3290        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
3291            let _response = fidl::client::decode_transaction_body::<
3292                fidl::encoding::ResultType<
3293                    BaseSocketGetReceiveBufferResponse,
3294                    fidl_fuchsia_posix::Errno,
3295                >,
3296                fidl::encoding::DefaultFuchsiaResourceDialect,
3297                0x14c1a4b64f709e5c,
3298            >(_buf?)?;
3299            Ok(_response.map(|x| x.value_bytes))
3300        }
3301        self.client.send_query_and_decode::<
3302            fidl::encoding::EmptyPayload,
3303            BaseSocketGetReceiveBufferResult,
3304        >(
3305            (),
3306            0x14c1a4b64f709e5c,
3307            fidl::encoding::DynamicFlags::empty(),
3308            _decode,
3309        )
3310    }
3311
3312    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
3313        BaseSocketSetKeepAliveResult,
3314        fidl::encoding::DefaultFuchsiaResourceDialect,
3315    >;
3316    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
3317        fn _decode(
3318            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3319        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
3320            let _response = fidl::client::decode_transaction_body::<
3321                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3322                fidl::encoding::DefaultFuchsiaResourceDialect,
3323                0x572df8f0b920d2c7,
3324            >(_buf?)?;
3325            Ok(_response.map(|x| x))
3326        }
3327        self.client
3328            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
3329                (value,),
3330                0x572df8f0b920d2c7,
3331                fidl::encoding::DynamicFlags::empty(),
3332                _decode,
3333            )
3334    }
3335
3336    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
3337        BaseSocketGetKeepAliveResult,
3338        fidl::encoding::DefaultFuchsiaResourceDialect,
3339    >;
3340    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
3341        fn _decode(
3342            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3343        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
3344            let _response = fidl::client::decode_transaction_body::<
3345                fidl::encoding::ResultType<
3346                    BaseSocketGetKeepAliveResponse,
3347                    fidl_fuchsia_posix::Errno,
3348                >,
3349                fidl::encoding::DefaultFuchsiaResourceDialect,
3350                0x2dd29d3215f2c9d2,
3351            >(_buf?)?;
3352            Ok(_response.map(|x| x.value))
3353        }
3354        self.client
3355            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
3356                (),
3357                0x2dd29d3215f2c9d2,
3358                fidl::encoding::DynamicFlags::empty(),
3359                _decode,
3360            )
3361    }
3362
3363    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
3364        BaseSocketSetOutOfBandInlineResult,
3365        fidl::encoding::DefaultFuchsiaResourceDialect,
3366    >;
3367    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
3368        fn _decode(
3369            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3370        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
3371            let _response = fidl::client::decode_transaction_body::<
3372                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3373                fidl::encoding::DefaultFuchsiaResourceDialect,
3374                0x3ecb49968bee439,
3375            >(_buf?)?;
3376            Ok(_response.map(|x| x))
3377        }
3378        self.client.send_query_and_decode::<
3379            BaseSocketSetOutOfBandInlineRequest,
3380            BaseSocketSetOutOfBandInlineResult,
3381        >(
3382            (value,),
3383            0x3ecb49968bee439,
3384            fidl::encoding::DynamicFlags::empty(),
3385            _decode,
3386        )
3387    }
3388
3389    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
3390        BaseSocketGetOutOfBandInlineResult,
3391        fidl::encoding::DefaultFuchsiaResourceDialect,
3392    >;
3393    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
3394        fn _decode(
3395            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3396        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
3397            let _response = fidl::client::decode_transaction_body::<
3398                fidl::encoding::ResultType<
3399                    BaseSocketGetOutOfBandInlineResponse,
3400                    fidl_fuchsia_posix::Errno,
3401                >,
3402                fidl::encoding::DefaultFuchsiaResourceDialect,
3403                0x348c1ab3aeca1745,
3404            >(_buf?)?;
3405            Ok(_response.map(|x| x.value))
3406        }
3407        self.client.send_query_and_decode::<
3408            fidl::encoding::EmptyPayload,
3409            BaseSocketGetOutOfBandInlineResult,
3410        >(
3411            (),
3412            0x348c1ab3aeca1745,
3413            fidl::encoding::DynamicFlags::empty(),
3414            _decode,
3415        )
3416    }
3417
3418    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
3419        BaseSocketSetNoCheckResult,
3420        fidl::encoding::DefaultFuchsiaResourceDialect,
3421    >;
3422    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
3423        fn _decode(
3424            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3425        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
3426            let _response = fidl::client::decode_transaction_body::<
3427                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3428                fidl::encoding::DefaultFuchsiaResourceDialect,
3429                0x6bbf00c53a4c78c2,
3430            >(_buf?)?;
3431            Ok(_response.map(|x| x))
3432        }
3433        self.client
3434            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
3435                (value,),
3436                0x6bbf00c53a4c78c2,
3437                fidl::encoding::DynamicFlags::empty(),
3438                _decode,
3439            )
3440    }
3441
3442    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
3443        BaseSocketGetNoCheckResult,
3444        fidl::encoding::DefaultFuchsiaResourceDialect,
3445    >;
3446    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
3447        fn _decode(
3448            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3449        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
3450            let _response = fidl::client::decode_transaction_body::<
3451                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
3452                fidl::encoding::DefaultFuchsiaResourceDialect,
3453                0x2cd4249286417694,
3454            >(_buf?)?;
3455            Ok(_response.map(|x| x.value))
3456        }
3457        self.client
3458            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
3459                (),
3460                0x2cd4249286417694,
3461                fidl::encoding::DynamicFlags::empty(),
3462                _decode,
3463            )
3464    }
3465
3466    type SetLingerResponseFut = fidl::client::QueryResponseFut<
3467        BaseSocketSetLingerResult,
3468        fidl::encoding::DefaultFuchsiaResourceDialect,
3469    >;
3470    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
3471        fn _decode(
3472            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3473        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
3474            let _response = fidl::client::decode_transaction_body::<
3475                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3476                fidl::encoding::DefaultFuchsiaResourceDialect,
3477                0x45386351246e998e,
3478            >(_buf?)?;
3479            Ok(_response.map(|x| x))
3480        }
3481        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
3482            (linger, length_secs),
3483            0x45386351246e998e,
3484            fidl::encoding::DynamicFlags::empty(),
3485            _decode,
3486        )
3487    }
3488
3489    type GetLingerResponseFut = fidl::client::QueryResponseFut<
3490        BaseSocketGetLingerResult,
3491        fidl::encoding::DefaultFuchsiaResourceDialect,
3492    >;
3493    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
3494        fn _decode(
3495            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3496        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
3497            let _response = fidl::client::decode_transaction_body::<
3498                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
3499                fidl::encoding::DefaultFuchsiaResourceDialect,
3500                0x48eb20fc5ccb0e45,
3501            >(_buf?)?;
3502            Ok(_response.map(|x| (x.linger, x.length_secs)))
3503        }
3504        self.client
3505            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
3506                (),
3507                0x48eb20fc5ccb0e45,
3508                fidl::encoding::DynamicFlags::empty(),
3509                _decode,
3510            )
3511    }
3512
3513    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
3514        BaseSocketSetReusePortResult,
3515        fidl::encoding::DefaultFuchsiaResourceDialect,
3516    >;
3517    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
3518        fn _decode(
3519            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3520        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
3521            let _response = fidl::client::decode_transaction_body::<
3522                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3523                fidl::encoding::DefaultFuchsiaResourceDialect,
3524                0x24dd3e5cb36d9ccb,
3525            >(_buf?)?;
3526            Ok(_response.map(|x| x))
3527        }
3528        self.client
3529            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
3530                (value,),
3531                0x24dd3e5cb36d9ccb,
3532                fidl::encoding::DynamicFlags::empty(),
3533                _decode,
3534            )
3535    }
3536
3537    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
3538        BaseSocketGetReusePortResult,
3539        fidl::encoding::DefaultFuchsiaResourceDialect,
3540    >;
3541    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
3542        fn _decode(
3543            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3544        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
3545            let _response = fidl::client::decode_transaction_body::<
3546                fidl::encoding::ResultType<
3547                    BaseSocketGetReusePortResponse,
3548                    fidl_fuchsia_posix::Errno,
3549                >,
3550                fidl::encoding::DefaultFuchsiaResourceDialect,
3551                0x7a112c1ab54ff828,
3552            >(_buf?)?;
3553            Ok(_response.map(|x| x.value))
3554        }
3555        self.client
3556            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
3557                (),
3558                0x7a112c1ab54ff828,
3559                fidl::encoding::DynamicFlags::empty(),
3560                _decode,
3561            )
3562    }
3563
3564    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
3565        BaseSocketGetAcceptConnResult,
3566        fidl::encoding::DefaultFuchsiaResourceDialect,
3567    >;
3568    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
3569        fn _decode(
3570            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3571        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
3572            let _response = fidl::client::decode_transaction_body::<
3573                fidl::encoding::ResultType<
3574                    BaseSocketGetAcceptConnResponse,
3575                    fidl_fuchsia_posix::Errno,
3576                >,
3577                fidl::encoding::DefaultFuchsiaResourceDialect,
3578                0x67ce6db6c2ec8966,
3579            >(_buf?)?;
3580            Ok(_response.map(|x| x.value))
3581        }
3582        self.client
3583            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
3584                (),
3585                0x67ce6db6c2ec8966,
3586                fidl::encoding::DynamicFlags::empty(),
3587                _decode,
3588            )
3589    }
3590
3591    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
3592        BaseSocketSetBindToDeviceResult,
3593        fidl::encoding::DefaultFuchsiaResourceDialect,
3594    >;
3595    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
3596        fn _decode(
3597            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3598        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
3599            let _response = fidl::client::decode_transaction_body::<
3600                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3601                fidl::encoding::DefaultFuchsiaResourceDialect,
3602                0x2118b483f28aafc4,
3603            >(_buf?)?;
3604            Ok(_response.map(|x| x))
3605        }
3606        self.client.send_query_and_decode::<
3607            BaseSocketSetBindToDeviceRequest,
3608            BaseSocketSetBindToDeviceResult,
3609        >(
3610            (value,),
3611            0x2118b483f28aafc4,
3612            fidl::encoding::DynamicFlags::empty(),
3613            _decode,
3614        )
3615    }
3616
3617    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
3618        BaseSocketGetBindToDeviceResult,
3619        fidl::encoding::DefaultFuchsiaResourceDialect,
3620    >;
3621    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
3622        fn _decode(
3623            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3624        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
3625            let _response = fidl::client::decode_transaction_body::<
3626                fidl::encoding::ResultType<
3627                    BaseSocketGetBindToDeviceResponse,
3628                    fidl_fuchsia_posix::Errno,
3629                >,
3630                fidl::encoding::DefaultFuchsiaResourceDialect,
3631                0x1ab1fbf0ef7906c8,
3632            >(_buf?)?;
3633            Ok(_response.map(|x| x.value))
3634        }
3635        self.client
3636            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
3637                (),
3638                0x1ab1fbf0ef7906c8,
3639                fidl::encoding::DynamicFlags::empty(),
3640                _decode,
3641            )
3642    }
3643
3644    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
3645        BaseSocketSetBindToInterfaceIndexResult,
3646        fidl::encoding::DefaultFuchsiaResourceDialect,
3647    >;
3648    fn r#set_bind_to_interface_index(
3649        &self,
3650        mut value: u64,
3651    ) -> Self::SetBindToInterfaceIndexResponseFut {
3652        fn _decode(
3653            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3654        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
3655            let _response = fidl::client::decode_transaction_body::<
3656                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3657                fidl::encoding::DefaultFuchsiaResourceDialect,
3658                0x6e387a0def00821,
3659            >(_buf?)?;
3660            Ok(_response.map(|x| x))
3661        }
3662        self.client.send_query_and_decode::<
3663            BaseSocketSetBindToInterfaceIndexRequest,
3664            BaseSocketSetBindToInterfaceIndexResult,
3665        >(
3666            (value,),
3667            0x6e387a0def00821,
3668            fidl::encoding::DynamicFlags::empty(),
3669            _decode,
3670        )
3671    }
3672
3673    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
3674        BaseSocketGetBindToInterfaceIndexResult,
3675        fidl::encoding::DefaultFuchsiaResourceDialect,
3676    >;
3677    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
3678        fn _decode(
3679            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3680        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
3681            let _response = fidl::client::decode_transaction_body::<
3682                fidl::encoding::ResultType<
3683                    BaseSocketGetBindToInterfaceIndexResponse,
3684                    fidl_fuchsia_posix::Errno,
3685                >,
3686                fidl::encoding::DefaultFuchsiaResourceDialect,
3687                0x59c31dd3e3078295,
3688            >(_buf?)?;
3689            Ok(_response.map(|x| x.value))
3690        }
3691        self.client.send_query_and_decode::<
3692            fidl::encoding::EmptyPayload,
3693            BaseSocketGetBindToInterfaceIndexResult,
3694        >(
3695            (),
3696            0x59c31dd3e3078295,
3697            fidl::encoding::DynamicFlags::empty(),
3698            _decode,
3699        )
3700    }
3701
3702    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
3703        BaseSocketSetTimestampResult,
3704        fidl::encoding::DefaultFuchsiaResourceDialect,
3705    >;
3706    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
3707        fn _decode(
3708            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3709        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
3710            let _response = fidl::client::decode_transaction_body::<
3711                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3712                fidl::encoding::DefaultFuchsiaResourceDialect,
3713                0x285d6516c263d839,
3714            >(_buf?)?;
3715            Ok(_response.map(|x| x))
3716        }
3717        self.client
3718            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
3719                (value,),
3720                0x285d6516c263d839,
3721                fidl::encoding::DynamicFlags::empty(),
3722                _decode,
3723            )
3724    }
3725
3726    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
3727        BaseSocketGetTimestampResult,
3728        fidl::encoding::DefaultFuchsiaResourceDialect,
3729    >;
3730    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
3731        fn _decode(
3732            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3733        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
3734            let _response = fidl::client::decode_transaction_body::<
3735                fidl::encoding::ResultType<
3736                    BaseSocketGetTimestampResponse,
3737                    fidl_fuchsia_posix::Errno,
3738                >,
3739                fidl::encoding::DefaultFuchsiaResourceDialect,
3740                0x49f2fffbbcc2bd27,
3741            >(_buf?)?;
3742            Ok(_response.map(|x| x.value))
3743        }
3744        self.client
3745            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
3746                (),
3747                0x49f2fffbbcc2bd27,
3748                fidl::encoding::DynamicFlags::empty(),
3749                _decode,
3750            )
3751    }
3752
3753    type SetMarkResponseFut = fidl::client::QueryResponseFut<
3754        BaseSocketSetMarkResult,
3755        fidl::encoding::DefaultFuchsiaResourceDialect,
3756    >;
3757    fn r#set_mark(
3758        &self,
3759        mut domain: fidl_fuchsia_net::MarkDomain,
3760        mut mark: &OptionalUint32,
3761    ) -> Self::SetMarkResponseFut {
3762        fn _decode(
3763            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3764        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
3765            let _response = fidl::client::decode_transaction_body::<
3766                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3767                fidl::encoding::DefaultFuchsiaResourceDialect,
3768                0x6ead6de09f653236,
3769            >(_buf?)?;
3770            Ok(_response.map(|x| x))
3771        }
3772        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
3773            (domain, mark),
3774            0x6ead6de09f653236,
3775            fidl::encoding::DynamicFlags::empty(),
3776            _decode,
3777        )
3778    }
3779
3780    type GetMarkResponseFut = fidl::client::QueryResponseFut<
3781        BaseSocketGetMarkResult,
3782        fidl::encoding::DefaultFuchsiaResourceDialect,
3783    >;
3784    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
3785        fn _decode(
3786            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3787        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
3788            let _response = fidl::client::decode_transaction_body::<
3789                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
3790                fidl::encoding::DefaultFuchsiaResourceDialect,
3791                0x57a2752c61d93d47,
3792            >(_buf?)?;
3793            Ok(_response.map(|x| x.mark))
3794        }
3795        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
3796            (domain,),
3797            0x57a2752c61d93d47,
3798            fidl::encoding::DynamicFlags::empty(),
3799            _decode,
3800        )
3801    }
3802
3803    type GetCookieResponseFut = fidl::client::QueryResponseFut<
3804        BaseSocketGetCookieResult,
3805        fidl::encoding::DefaultFuchsiaResourceDialect,
3806    >;
3807    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
3808        fn _decode(
3809            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3810        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
3811            let _response = fidl::client::decode_transaction_body::<
3812                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
3813                fidl::encoding::DefaultFuchsiaResourceDialect,
3814                0x2c2f47fd8f924e52,
3815            >(_buf?)?;
3816            Ok(_response.map(|x| x.value))
3817        }
3818        self.client
3819            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
3820                (),
3821                0x2c2f47fd8f924e52,
3822                fidl::encoding::DynamicFlags::empty(),
3823                _decode,
3824            )
3825    }
3826
3827    type BindResponseFut = fidl::client::QueryResponseFut<
3828        BaseNetworkSocketBindResult,
3829        fidl::encoding::DefaultFuchsiaResourceDialect,
3830    >;
3831    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
3832        fn _decode(
3833            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3834        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
3835            let _response = fidl::client::decode_transaction_body::<
3836                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3837                fidl::encoding::DefaultFuchsiaResourceDialect,
3838                0x4bc6400ae92125d,
3839            >(_buf?)?;
3840            Ok(_response.map(|x| x))
3841        }
3842        self.client
3843            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
3844                (addr,),
3845                0x4bc6400ae92125d,
3846                fidl::encoding::DynamicFlags::empty(),
3847                _decode,
3848            )
3849    }
3850
3851    type ConnectResponseFut = fidl::client::QueryResponseFut<
3852        BaseNetworkSocketConnectResult,
3853        fidl::encoding::DefaultFuchsiaResourceDialect,
3854    >;
3855    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
3856        fn _decode(
3857            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3858        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
3859            let _response = fidl::client::decode_transaction_body::<
3860                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3861                fidl::encoding::DefaultFuchsiaResourceDialect,
3862                0x5f05f19bfdd38871,
3863            >(_buf?)?;
3864            Ok(_response.map(|x| x))
3865        }
3866        self.client.send_query_and_decode::<
3867            BaseNetworkSocketConnectRequest,
3868            BaseNetworkSocketConnectResult,
3869        >(
3870            (addr,),
3871            0x5f05f19bfdd38871,
3872            fidl::encoding::DynamicFlags::empty(),
3873            _decode,
3874        )
3875    }
3876
3877    type DisconnectResponseFut = fidl::client::QueryResponseFut<
3878        BaseNetworkSocketDisconnectResult,
3879        fidl::encoding::DefaultFuchsiaResourceDialect,
3880    >;
3881    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
3882        fn _decode(
3883            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3884        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
3885            let _response = fidl::client::decode_transaction_body::<
3886                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3887                fidl::encoding::DefaultFuchsiaResourceDialect,
3888                0x74e63b91f7b29b2,
3889            >(_buf?)?;
3890            Ok(_response.map(|x| x))
3891        }
3892        self.client.send_query_and_decode::<
3893            fidl::encoding::EmptyPayload,
3894            BaseNetworkSocketDisconnectResult,
3895        >(
3896            (),
3897            0x74e63b91f7b29b2,
3898            fidl::encoding::DynamicFlags::empty(),
3899            _decode,
3900        )
3901    }
3902
3903    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
3904        BaseNetworkSocketGetSockNameResult,
3905        fidl::encoding::DefaultFuchsiaResourceDialect,
3906    >;
3907    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
3908        fn _decode(
3909            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3910        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
3911            let _response = fidl::client::decode_transaction_body::<
3912                fidl::encoding::ResultType<
3913                    BaseNetworkSocketGetSockNameResponse,
3914                    fidl_fuchsia_posix::Errno,
3915                >,
3916                fidl::encoding::DefaultFuchsiaResourceDialect,
3917                0x475f23f84a1a4f85,
3918            >(_buf?)?;
3919            Ok(_response.map(|x| x.addr))
3920        }
3921        self.client.send_query_and_decode::<
3922            fidl::encoding::EmptyPayload,
3923            BaseNetworkSocketGetSockNameResult,
3924        >(
3925            (),
3926            0x475f23f84a1a4f85,
3927            fidl::encoding::DynamicFlags::empty(),
3928            _decode,
3929        )
3930    }
3931
3932    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
3933        BaseNetworkSocketGetPeerNameResult,
3934        fidl::encoding::DefaultFuchsiaResourceDialect,
3935    >;
3936    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
3937        fn _decode(
3938            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3939        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
3940            let _response = fidl::client::decode_transaction_body::<
3941                fidl::encoding::ResultType<
3942                    BaseNetworkSocketGetPeerNameResponse,
3943                    fidl_fuchsia_posix::Errno,
3944                >,
3945                fidl::encoding::DefaultFuchsiaResourceDialect,
3946                0x1ffecf4bd5b6432e,
3947            >(_buf?)?;
3948            Ok(_response.map(|x| x.addr))
3949        }
3950        self.client.send_query_and_decode::<
3951            fidl::encoding::EmptyPayload,
3952            BaseNetworkSocketGetPeerNameResult,
3953        >(
3954            (),
3955            0x1ffecf4bd5b6432e,
3956            fidl::encoding::DynamicFlags::empty(),
3957            _decode,
3958        )
3959    }
3960
3961    type ShutdownResponseFut = fidl::client::QueryResponseFut<
3962        BaseNetworkSocketShutdownResult,
3963        fidl::encoding::DefaultFuchsiaResourceDialect,
3964    >;
3965    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
3966        fn _decode(
3967            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3968        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
3969            let _response = fidl::client::decode_transaction_body::<
3970                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3971                fidl::encoding::DefaultFuchsiaResourceDialect,
3972                0x247f38b6db68c336,
3973            >(_buf?)?;
3974            Ok(_response.map(|x| x))
3975        }
3976        self.client.send_query_and_decode::<
3977            BaseNetworkSocketShutdownRequest,
3978            BaseNetworkSocketShutdownResult,
3979        >(
3980            (mode,),
3981            0x247f38b6db68c336,
3982            fidl::encoding::DynamicFlags::empty(),
3983            _decode,
3984        )
3985    }
3986
3987    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
3988        BaseNetworkSocketSetIpTypeOfServiceResult,
3989        fidl::encoding::DefaultFuchsiaResourceDialect,
3990    >;
3991    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
3992        fn _decode(
3993            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3994        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
3995            let _response = fidl::client::decode_transaction_body::<
3996                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
3997                fidl::encoding::DefaultFuchsiaResourceDialect,
3998                0x995c600475b6d46,
3999            >(_buf?)?;
4000            Ok(_response.map(|x| x))
4001        }
4002        self.client.send_query_and_decode::<
4003            BaseNetworkSocketSetIpTypeOfServiceRequest,
4004            BaseNetworkSocketSetIpTypeOfServiceResult,
4005        >(
4006            (value,),
4007            0x995c600475b6d46,
4008            fidl::encoding::DynamicFlags::empty(),
4009            _decode,
4010        )
4011    }
4012
4013    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
4014        BaseNetworkSocketGetIpTypeOfServiceResult,
4015        fidl::encoding::DefaultFuchsiaResourceDialect,
4016    >;
4017    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
4018        fn _decode(
4019            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4020        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
4021            let _response = fidl::client::decode_transaction_body::<
4022                fidl::encoding::ResultType<
4023                    BaseNetworkSocketGetIpTypeOfServiceResponse,
4024                    fidl_fuchsia_posix::Errno,
4025                >,
4026                fidl::encoding::DefaultFuchsiaResourceDialect,
4027                0x3814a04259f75fcb,
4028            >(_buf?)?;
4029            Ok(_response.map(|x| x.value))
4030        }
4031        self.client.send_query_and_decode::<
4032            fidl::encoding::EmptyPayload,
4033            BaseNetworkSocketGetIpTypeOfServiceResult,
4034        >(
4035            (),
4036            0x3814a04259f75fcb,
4037            fidl::encoding::DynamicFlags::empty(),
4038            _decode,
4039        )
4040    }
4041
4042    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
4043        BaseNetworkSocketSetIpTtlResult,
4044        fidl::encoding::DefaultFuchsiaResourceDialect,
4045    >;
4046    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
4047        fn _decode(
4048            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4049        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
4050            let _response = fidl::client::decode_transaction_body::<
4051                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4052                fidl::encoding::DefaultFuchsiaResourceDialect,
4053                0x29e2424b433ae1ef,
4054            >(_buf?)?;
4055            Ok(_response.map(|x| x))
4056        }
4057        self.client.send_query_and_decode::<
4058            BaseNetworkSocketSetIpTtlRequest,
4059            BaseNetworkSocketSetIpTtlResult,
4060        >(
4061            (value,),
4062            0x29e2424b433ae1ef,
4063            fidl::encoding::DynamicFlags::empty(),
4064            _decode,
4065        )
4066    }
4067
4068    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
4069        BaseNetworkSocketGetIpTtlResult,
4070        fidl::encoding::DefaultFuchsiaResourceDialect,
4071    >;
4072    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
4073        fn _decode(
4074            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4075        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
4076            let _response = fidl::client::decode_transaction_body::<
4077                fidl::encoding::ResultType<
4078                    BaseNetworkSocketGetIpTtlResponse,
4079                    fidl_fuchsia_posix::Errno,
4080                >,
4081                fidl::encoding::DefaultFuchsiaResourceDialect,
4082                0x47e47fa1f24da471,
4083            >(_buf?)?;
4084            Ok(_response.map(|x| x.value))
4085        }
4086        self.client
4087            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
4088                (),
4089                0x47e47fa1f24da471,
4090                fidl::encoding::DynamicFlags::empty(),
4091                _decode,
4092            )
4093    }
4094
4095    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
4096        BaseNetworkSocketSetIpPacketInfoResult,
4097        fidl::encoding::DefaultFuchsiaResourceDialect,
4098    >;
4099    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
4100        fn _decode(
4101            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4102        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
4103            let _response = fidl::client::decode_transaction_body::<
4104                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4105                fidl::encoding::DefaultFuchsiaResourceDialect,
4106                0x392d16bee20c0e16,
4107            >(_buf?)?;
4108            Ok(_response.map(|x| x))
4109        }
4110        self.client.send_query_and_decode::<
4111            BaseNetworkSocketSetIpPacketInfoRequest,
4112            BaseNetworkSocketSetIpPacketInfoResult,
4113        >(
4114            (value,),
4115            0x392d16bee20c0e16,
4116            fidl::encoding::DynamicFlags::empty(),
4117            _decode,
4118        )
4119    }
4120
4121    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
4122        BaseNetworkSocketGetIpPacketInfoResult,
4123        fidl::encoding::DefaultFuchsiaResourceDialect,
4124    >;
4125    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
4126        fn _decode(
4127            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4128        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
4129            let _response = fidl::client::decode_transaction_body::<
4130                fidl::encoding::ResultType<
4131                    BaseNetworkSocketGetIpPacketInfoResponse,
4132                    fidl_fuchsia_posix::Errno,
4133                >,
4134                fidl::encoding::DefaultFuchsiaResourceDialect,
4135                0x54b505f242280740,
4136            >(_buf?)?;
4137            Ok(_response.map(|x| x.value))
4138        }
4139        self.client.send_query_and_decode::<
4140            fidl::encoding::EmptyPayload,
4141            BaseNetworkSocketGetIpPacketInfoResult,
4142        >(
4143            (),
4144            0x54b505f242280740,
4145            fidl::encoding::DynamicFlags::empty(),
4146            _decode,
4147        )
4148    }
4149
4150    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
4151        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
4152        fidl::encoding::DefaultFuchsiaResourceDialect,
4153    >;
4154    fn r#set_ip_receive_type_of_service(
4155        &self,
4156        mut value: bool,
4157    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
4158        fn _decode(
4159            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4160        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
4161            let _response = fidl::client::decode_transaction_body::<
4162                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4163                fidl::encoding::DefaultFuchsiaResourceDialect,
4164                0x6c4f6714995f84ef,
4165            >(_buf?)?;
4166            Ok(_response.map(|x| x))
4167        }
4168        self.client.send_query_and_decode::<
4169            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
4170            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
4171        >(
4172            (value,),
4173            0x6c4f6714995f84ef,
4174            fidl::encoding::DynamicFlags::empty(),
4175            _decode,
4176        )
4177    }
4178
4179    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
4180        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
4181        fidl::encoding::DefaultFuchsiaResourceDialect,
4182    >;
4183    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
4184        fn _decode(
4185            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4186        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
4187            let _response = fidl::client::decode_transaction_body::<
4188                fidl::encoding::ResultType<
4189                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
4190                    fidl_fuchsia_posix::Errno,
4191                >,
4192                fidl::encoding::DefaultFuchsiaResourceDialect,
4193                0x4158ba7dc2795960,
4194            >(_buf?)?;
4195            Ok(_response.map(|x| x.value))
4196        }
4197        self.client.send_query_and_decode::<
4198            fidl::encoding::EmptyPayload,
4199            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
4200        >(
4201            (),
4202            0x4158ba7dc2795960,
4203            fidl::encoding::DynamicFlags::empty(),
4204            _decode,
4205        )
4206    }
4207
4208    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
4209        BaseNetworkSocketSetIpReceiveTtlResult,
4210        fidl::encoding::DefaultFuchsiaResourceDialect,
4211    >;
4212    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
4213        fn _decode(
4214            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4215        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
4216            let _response = fidl::client::decode_transaction_body::<
4217                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4218                fidl::encoding::DefaultFuchsiaResourceDialect,
4219                0x46f15be0ce0ab82b,
4220            >(_buf?)?;
4221            Ok(_response.map(|x| x))
4222        }
4223        self.client.send_query_and_decode::<
4224            BaseNetworkSocketSetIpReceiveTtlRequest,
4225            BaseNetworkSocketSetIpReceiveTtlResult,
4226        >(
4227            (value,),
4228            0x46f15be0ce0ab82b,
4229            fidl::encoding::DynamicFlags::empty(),
4230            _decode,
4231        )
4232    }
4233
4234    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
4235        BaseNetworkSocketGetIpReceiveTtlResult,
4236        fidl::encoding::DefaultFuchsiaResourceDialect,
4237    >;
4238    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
4239        fn _decode(
4240            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4241        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
4242            let _response = fidl::client::decode_transaction_body::<
4243                fidl::encoding::ResultType<
4244                    BaseNetworkSocketGetIpReceiveTtlResponse,
4245                    fidl_fuchsia_posix::Errno,
4246                >,
4247                fidl::encoding::DefaultFuchsiaResourceDialect,
4248                0x678ddd5a5dfa2eb5,
4249            >(_buf?)?;
4250            Ok(_response.map(|x| x.value))
4251        }
4252        self.client.send_query_and_decode::<
4253            fidl::encoding::EmptyPayload,
4254            BaseNetworkSocketGetIpReceiveTtlResult,
4255        >(
4256            (),
4257            0x678ddd5a5dfa2eb5,
4258            fidl::encoding::DynamicFlags::empty(),
4259            _decode,
4260        )
4261    }
4262
4263    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4264        BaseNetworkSocketSetIpMulticastInterfaceResult,
4265        fidl::encoding::DefaultFuchsiaResourceDialect,
4266    >;
4267    fn r#set_ip_multicast_interface(
4268        &self,
4269        mut iface: u64,
4270        mut address: &fidl_fuchsia_net::Ipv4Address,
4271    ) -> Self::SetIpMulticastInterfaceResponseFut {
4272        fn _decode(
4273            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4274        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
4275            let _response = fidl::client::decode_transaction_body::<
4276                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4277                fidl::encoding::DefaultFuchsiaResourceDialect,
4278                0x752fbfa9b12befe,
4279            >(_buf?)?;
4280            Ok(_response.map(|x| x))
4281        }
4282        self.client.send_query_and_decode::<
4283            BaseNetworkSocketSetIpMulticastInterfaceRequest,
4284            BaseNetworkSocketSetIpMulticastInterfaceResult,
4285        >(
4286            (iface, address,),
4287            0x752fbfa9b12befe,
4288            fidl::encoding::DynamicFlags::empty(),
4289            _decode,
4290        )
4291    }
4292
4293    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4294        BaseNetworkSocketGetIpMulticastInterfaceResult,
4295        fidl::encoding::DefaultFuchsiaResourceDialect,
4296    >;
4297    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
4298        fn _decode(
4299            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4300        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
4301            let _response = fidl::client::decode_transaction_body::<
4302                fidl::encoding::ResultType<
4303                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
4304                    fidl_fuchsia_posix::Errno,
4305                >,
4306                fidl::encoding::DefaultFuchsiaResourceDialect,
4307                0x320bd14c4df046c4,
4308            >(_buf?)?;
4309            Ok(_response.map(|x| x.value))
4310        }
4311        self.client.send_query_and_decode::<
4312            fidl::encoding::EmptyPayload,
4313            BaseNetworkSocketGetIpMulticastInterfaceResult,
4314        >(
4315            (),
4316            0x320bd14c4df046c4,
4317            fidl::encoding::DynamicFlags::empty(),
4318            _decode,
4319        )
4320    }
4321
4322    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
4323        BaseNetworkSocketSetIpMulticastTtlResult,
4324        fidl::encoding::DefaultFuchsiaResourceDialect,
4325    >;
4326    fn r#set_ip_multicast_ttl(
4327        &self,
4328        mut value: &OptionalUint8,
4329    ) -> Self::SetIpMulticastTtlResponseFut {
4330        fn _decode(
4331            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4332        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
4333            let _response = fidl::client::decode_transaction_body::<
4334                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4335                fidl::encoding::DefaultFuchsiaResourceDialect,
4336                0x63134d53772916a1,
4337            >(_buf?)?;
4338            Ok(_response.map(|x| x))
4339        }
4340        self.client.send_query_and_decode::<
4341            BaseNetworkSocketSetIpMulticastTtlRequest,
4342            BaseNetworkSocketSetIpMulticastTtlResult,
4343        >(
4344            (value,),
4345            0x63134d53772916a1,
4346            fidl::encoding::DynamicFlags::empty(),
4347            _decode,
4348        )
4349    }
4350
4351    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
4352        BaseNetworkSocketGetIpMulticastTtlResult,
4353        fidl::encoding::DefaultFuchsiaResourceDialect,
4354    >;
4355    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
4356        fn _decode(
4357            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4358        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
4359            let _response = fidl::client::decode_transaction_body::<
4360                fidl::encoding::ResultType<
4361                    BaseNetworkSocketGetIpMulticastTtlResponse,
4362                    fidl_fuchsia_posix::Errno,
4363                >,
4364                fidl::encoding::DefaultFuchsiaResourceDialect,
4365                0x4665cd378f39e1a,
4366            >(_buf?)?;
4367            Ok(_response.map(|x| x.value))
4368        }
4369        self.client.send_query_and_decode::<
4370            fidl::encoding::EmptyPayload,
4371            BaseNetworkSocketGetIpMulticastTtlResult,
4372        >(
4373            (),
4374            0x4665cd378f39e1a,
4375            fidl::encoding::DynamicFlags::empty(),
4376            _decode,
4377        )
4378    }
4379
4380    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4381        BaseNetworkSocketSetIpMulticastLoopbackResult,
4382        fidl::encoding::DefaultFuchsiaResourceDialect,
4383    >;
4384    fn r#set_ip_multicast_loopback(
4385        &self,
4386        mut value: bool,
4387    ) -> Self::SetIpMulticastLoopbackResponseFut {
4388        fn _decode(
4389            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4390        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
4391            let _response = fidl::client::decode_transaction_body::<
4392                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4393                fidl::encoding::DefaultFuchsiaResourceDialect,
4394                0x20c55c11f00943ea,
4395            >(_buf?)?;
4396            Ok(_response.map(|x| x))
4397        }
4398        self.client.send_query_and_decode::<
4399            BaseNetworkSocketSetIpMulticastLoopbackRequest,
4400            BaseNetworkSocketSetIpMulticastLoopbackResult,
4401        >(
4402            (value,),
4403            0x20c55c11f00943ea,
4404            fidl::encoding::DynamicFlags::empty(),
4405            _decode,
4406        )
4407    }
4408
4409    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4410        BaseNetworkSocketGetIpMulticastLoopbackResult,
4411        fidl::encoding::DefaultFuchsiaResourceDialect,
4412    >;
4413    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
4414        fn _decode(
4415            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4416        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
4417            let _response = fidl::client::decode_transaction_body::<
4418                fidl::encoding::ResultType<
4419                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
4420                    fidl_fuchsia_posix::Errno,
4421                >,
4422                fidl::encoding::DefaultFuchsiaResourceDialect,
4423                0x3b6b26ff558298f2,
4424            >(_buf?)?;
4425            Ok(_response.map(|x| x.value))
4426        }
4427        self.client.send_query_and_decode::<
4428            fidl::encoding::EmptyPayload,
4429            BaseNetworkSocketGetIpMulticastLoopbackResult,
4430        >(
4431            (),
4432            0x3b6b26ff558298f2,
4433            fidl::encoding::DynamicFlags::empty(),
4434            _decode,
4435        )
4436    }
4437
4438    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
4439        BaseNetworkSocketAddIpMembershipResult,
4440        fidl::encoding::DefaultFuchsiaResourceDialect,
4441    >;
4442    fn r#add_ip_membership(
4443        &self,
4444        mut membership: &IpMulticastMembership,
4445    ) -> Self::AddIpMembershipResponseFut {
4446        fn _decode(
4447            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4448        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
4449            let _response = fidl::client::decode_transaction_body::<
4450                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4451                fidl::encoding::DefaultFuchsiaResourceDialect,
4452                0x76bc7df115a3b4d0,
4453            >(_buf?)?;
4454            Ok(_response.map(|x| x))
4455        }
4456        self.client.send_query_and_decode::<
4457            BaseNetworkSocketAddIpMembershipRequest,
4458            BaseNetworkSocketAddIpMembershipResult,
4459        >(
4460            (membership,),
4461            0x76bc7df115a3b4d0,
4462            fidl::encoding::DynamicFlags::empty(),
4463            _decode,
4464        )
4465    }
4466
4467    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
4468        BaseNetworkSocketDropIpMembershipResult,
4469        fidl::encoding::DefaultFuchsiaResourceDialect,
4470    >;
4471    fn r#drop_ip_membership(
4472        &self,
4473        mut membership: &IpMulticastMembership,
4474    ) -> Self::DropIpMembershipResponseFut {
4475        fn _decode(
4476            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4477        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
4478            let _response = fidl::client::decode_transaction_body::<
4479                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4480                fidl::encoding::DefaultFuchsiaResourceDialect,
4481                0x2888f3099188d03,
4482            >(_buf?)?;
4483            Ok(_response.map(|x| x))
4484        }
4485        self.client.send_query_and_decode::<
4486            BaseNetworkSocketDropIpMembershipRequest,
4487            BaseNetworkSocketDropIpMembershipResult,
4488        >(
4489            (membership,),
4490            0x2888f3099188d03,
4491            fidl::encoding::DynamicFlags::empty(),
4492            _decode,
4493        )
4494    }
4495
4496    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
4497        BaseNetworkSocketSetIpTransparentResult,
4498        fidl::encoding::DefaultFuchsiaResourceDialect,
4499    >;
4500    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
4501        fn _decode(
4502            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4503        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
4504            let _response = fidl::client::decode_transaction_body::<
4505                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4506                fidl::encoding::DefaultFuchsiaResourceDialect,
4507                0x1ae532b0c066e3a0,
4508            >(_buf?)?;
4509            Ok(_response.map(|x| x))
4510        }
4511        self.client.send_query_and_decode::<
4512            BaseNetworkSocketSetIpTransparentRequest,
4513            BaseNetworkSocketSetIpTransparentResult,
4514        >(
4515            (value,),
4516            0x1ae532b0c066e3a0,
4517            fidl::encoding::DynamicFlags::empty(),
4518            _decode,
4519        )
4520    }
4521
4522    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
4523        BaseNetworkSocketGetIpTransparentResult,
4524        fidl::encoding::DefaultFuchsiaResourceDialect,
4525    >;
4526    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
4527        fn _decode(
4528            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4529        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
4530            let _response = fidl::client::decode_transaction_body::<
4531                fidl::encoding::ResultType<
4532                    BaseNetworkSocketGetIpTransparentResponse,
4533                    fidl_fuchsia_posix::Errno,
4534                >,
4535                fidl::encoding::DefaultFuchsiaResourceDialect,
4536                0x51d43695962ebfb5,
4537            >(_buf?)?;
4538            Ok(_response.map(|x| x.value))
4539        }
4540        self.client.send_query_and_decode::<
4541            fidl::encoding::EmptyPayload,
4542            BaseNetworkSocketGetIpTransparentResult,
4543        >(
4544            (),
4545            0x51d43695962ebfb5,
4546            fidl::encoding::DynamicFlags::empty(),
4547            _decode,
4548        )
4549    }
4550
4551    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
4552        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
4553        fidl::encoding::DefaultFuchsiaResourceDialect,
4554    >;
4555    fn r#set_ip_receive_original_destination_address(
4556        &self,
4557        mut value: bool,
4558    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
4559        fn _decode(
4560            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4561        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
4562        {
4563            let _response = fidl::client::decode_transaction_body::<
4564                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4565                fidl::encoding::DefaultFuchsiaResourceDialect,
4566                0x4722b4ce52f7840,
4567            >(_buf?)?;
4568            Ok(_response.map(|x| x))
4569        }
4570        self.client.send_query_and_decode::<
4571            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
4572            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
4573        >(
4574            (value,),
4575            0x4722b4ce52f7840,
4576            fidl::encoding::DynamicFlags::empty(),
4577            _decode,
4578        )
4579    }
4580
4581    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
4582        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
4583        fidl::encoding::DefaultFuchsiaResourceDialect,
4584    >;
4585    fn r#get_ip_receive_original_destination_address(
4586        &self,
4587    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
4588        fn _decode(
4589            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4590        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
4591        {
4592            let _response = fidl::client::decode_transaction_body::<
4593                fidl::encoding::ResultType<
4594                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
4595                    fidl_fuchsia_posix::Errno,
4596                >,
4597                fidl::encoding::DefaultFuchsiaResourceDialect,
4598                0x2a0e7dc5d6bfdfe9,
4599            >(_buf?)?;
4600            Ok(_response.map(|x| x.value))
4601        }
4602        self.client.send_query_and_decode::<
4603            fidl::encoding::EmptyPayload,
4604            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
4605        >(
4606            (),
4607            0x2a0e7dc5d6bfdfe9,
4608            fidl::encoding::DynamicFlags::empty(),
4609            _decode,
4610        )
4611    }
4612
4613    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
4614        BaseNetworkSocketAddIpv6MembershipResult,
4615        fidl::encoding::DefaultFuchsiaResourceDialect,
4616    >;
4617    fn r#add_ipv6_membership(
4618        &self,
4619        mut membership: &Ipv6MulticastMembership,
4620    ) -> Self::AddIpv6MembershipResponseFut {
4621        fn _decode(
4622            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4623        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
4624            let _response = fidl::client::decode_transaction_body::<
4625                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4626                fidl::encoding::DefaultFuchsiaResourceDialect,
4627                0x7c94727acb4ea4b3,
4628            >(_buf?)?;
4629            Ok(_response.map(|x| x))
4630        }
4631        self.client.send_query_and_decode::<
4632            BaseNetworkSocketAddIpv6MembershipRequest,
4633            BaseNetworkSocketAddIpv6MembershipResult,
4634        >(
4635            (membership,),
4636            0x7c94727acb4ea4b3,
4637            fidl::encoding::DynamicFlags::empty(),
4638            _decode,
4639        )
4640    }
4641
4642    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
4643        BaseNetworkSocketDropIpv6MembershipResult,
4644        fidl::encoding::DefaultFuchsiaResourceDialect,
4645    >;
4646    fn r#drop_ipv6_membership(
4647        &self,
4648        mut membership: &Ipv6MulticastMembership,
4649    ) -> Self::DropIpv6MembershipResponseFut {
4650        fn _decode(
4651            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4652        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
4653            let _response = fidl::client::decode_transaction_body::<
4654                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4655                fidl::encoding::DefaultFuchsiaResourceDialect,
4656                0x42104c70ccaba304,
4657            >(_buf?)?;
4658            Ok(_response.map(|x| x))
4659        }
4660        self.client.send_query_and_decode::<
4661            BaseNetworkSocketDropIpv6MembershipRequest,
4662            BaseNetworkSocketDropIpv6MembershipResult,
4663        >(
4664            (membership,),
4665            0x42104c70ccaba304,
4666            fidl::encoding::DynamicFlags::empty(),
4667            _decode,
4668        )
4669    }
4670
4671    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4672        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
4673        fidl::encoding::DefaultFuchsiaResourceDialect,
4674    >;
4675    fn r#set_ipv6_multicast_interface(
4676        &self,
4677        mut value: u64,
4678    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
4679        fn _decode(
4680            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4681        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
4682            let _response = fidl::client::decode_transaction_body::<
4683                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4684                fidl::encoding::DefaultFuchsiaResourceDialect,
4685                0x135f76db3774ab3b,
4686            >(_buf?)?;
4687            Ok(_response.map(|x| x))
4688        }
4689        self.client.send_query_and_decode::<
4690            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
4691            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
4692        >(
4693            (value,),
4694            0x135f76db3774ab3b,
4695            fidl::encoding::DynamicFlags::empty(),
4696            _decode,
4697        )
4698    }
4699
4700    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
4701        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
4702        fidl::encoding::DefaultFuchsiaResourceDialect,
4703    >;
4704    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
4705        fn _decode(
4706            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4707        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
4708            let _response = fidl::client::decode_transaction_body::<
4709                fidl::encoding::ResultType<
4710                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
4711                    fidl_fuchsia_posix::Errno,
4712                >,
4713                fidl::encoding::DefaultFuchsiaResourceDialect,
4714                0x1f26fcdd348f1882,
4715            >(_buf?)?;
4716            Ok(_response.map(|x| x.value))
4717        }
4718        self.client.send_query_and_decode::<
4719            fidl::encoding::EmptyPayload,
4720            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
4721        >(
4722            (),
4723            0x1f26fcdd348f1882,
4724            fidl::encoding::DynamicFlags::empty(),
4725            _decode,
4726        )
4727    }
4728
4729    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
4730        BaseNetworkSocketSetIpv6UnicastHopsResult,
4731        fidl::encoding::DefaultFuchsiaResourceDialect,
4732    >;
4733    fn r#set_ipv6_unicast_hops(
4734        &self,
4735        mut value: &OptionalUint8,
4736    ) -> Self::SetIpv6UnicastHopsResponseFut {
4737        fn _decode(
4738            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4739        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
4740            let _response = fidl::client::decode_transaction_body::<
4741                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4742                fidl::encoding::DefaultFuchsiaResourceDialect,
4743                0x157d51e98f462859,
4744            >(_buf?)?;
4745            Ok(_response.map(|x| x))
4746        }
4747        self.client.send_query_and_decode::<
4748            BaseNetworkSocketSetIpv6UnicastHopsRequest,
4749            BaseNetworkSocketSetIpv6UnicastHopsResult,
4750        >(
4751            (value,),
4752            0x157d51e98f462859,
4753            fidl::encoding::DynamicFlags::empty(),
4754            _decode,
4755        )
4756    }
4757
4758    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
4759        BaseNetworkSocketGetIpv6UnicastHopsResult,
4760        fidl::encoding::DefaultFuchsiaResourceDialect,
4761    >;
4762    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
4763        fn _decode(
4764            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4765        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
4766            let _response = fidl::client::decode_transaction_body::<
4767                fidl::encoding::ResultType<
4768                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
4769                    fidl_fuchsia_posix::Errno,
4770                >,
4771                fidl::encoding::DefaultFuchsiaResourceDialect,
4772                0x21f4641cad8bd8d2,
4773            >(_buf?)?;
4774            Ok(_response.map(|x| x.value))
4775        }
4776        self.client.send_query_and_decode::<
4777            fidl::encoding::EmptyPayload,
4778            BaseNetworkSocketGetIpv6UnicastHopsResult,
4779        >(
4780            (),
4781            0x21f4641cad8bd8d2,
4782            fidl::encoding::DynamicFlags::empty(),
4783            _decode,
4784        )
4785    }
4786
4787    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
4788        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
4789        fidl::encoding::DefaultFuchsiaResourceDialect,
4790    >;
4791    fn r#set_ipv6_receive_hop_limit(
4792        &self,
4793        mut value: bool,
4794    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
4795        fn _decode(
4796            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4797        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
4798            let _response = fidl::client::decode_transaction_body::<
4799                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4800                fidl::encoding::DefaultFuchsiaResourceDialect,
4801                0x5c24808ed2e84a1e,
4802            >(_buf?)?;
4803            Ok(_response.map(|x| x))
4804        }
4805        self.client.send_query_and_decode::<
4806            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
4807            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
4808        >(
4809            (value,),
4810            0x5c24808ed2e84a1e,
4811            fidl::encoding::DynamicFlags::empty(),
4812            _decode,
4813        )
4814    }
4815
4816    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
4817        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
4818        fidl::encoding::DefaultFuchsiaResourceDialect,
4819    >;
4820    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
4821        fn _decode(
4822            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4823        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
4824            let _response = fidl::client::decode_transaction_body::<
4825                fidl::encoding::ResultType<
4826                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
4827                    fidl_fuchsia_posix::Errno,
4828                >,
4829                fidl::encoding::DefaultFuchsiaResourceDialect,
4830                0x341e06689885b4c0,
4831            >(_buf?)?;
4832            Ok(_response.map(|x| x.value))
4833        }
4834        self.client.send_query_and_decode::<
4835            fidl::encoding::EmptyPayload,
4836            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
4837        >(
4838            (),
4839            0x341e06689885b4c0,
4840            fidl::encoding::DynamicFlags::empty(),
4841            _decode,
4842        )
4843    }
4844
4845    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
4846        BaseNetworkSocketSetIpv6MulticastHopsResult,
4847        fidl::encoding::DefaultFuchsiaResourceDialect,
4848    >;
4849    fn r#set_ipv6_multicast_hops(
4850        &self,
4851        mut value: &OptionalUint8,
4852    ) -> Self::SetIpv6MulticastHopsResponseFut {
4853        fn _decode(
4854            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4855        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
4856            let _response = fidl::client::decode_transaction_body::<
4857                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4858                fidl::encoding::DefaultFuchsiaResourceDialect,
4859                0x25b9cd4d181f82c1,
4860            >(_buf?)?;
4861            Ok(_response.map(|x| x))
4862        }
4863        self.client.send_query_and_decode::<
4864            BaseNetworkSocketSetIpv6MulticastHopsRequest,
4865            BaseNetworkSocketSetIpv6MulticastHopsResult,
4866        >(
4867            (value,),
4868            0x25b9cd4d181f82c1,
4869            fidl::encoding::DynamicFlags::empty(),
4870            _decode,
4871        )
4872    }
4873
4874    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
4875        BaseNetworkSocketGetIpv6MulticastHopsResult,
4876        fidl::encoding::DefaultFuchsiaResourceDialect,
4877    >;
4878    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
4879        fn _decode(
4880            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4881        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
4882            let _response = fidl::client::decode_transaction_body::<
4883                fidl::encoding::ResultType<
4884                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
4885                    fidl_fuchsia_posix::Errno,
4886                >,
4887                fidl::encoding::DefaultFuchsiaResourceDialect,
4888                0x52916948a365012a,
4889            >(_buf?)?;
4890            Ok(_response.map(|x| x.value))
4891        }
4892        self.client.send_query_and_decode::<
4893            fidl::encoding::EmptyPayload,
4894            BaseNetworkSocketGetIpv6MulticastHopsResult,
4895        >(
4896            (),
4897            0x52916948a365012a,
4898            fidl::encoding::DynamicFlags::empty(),
4899            _decode,
4900        )
4901    }
4902
4903    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4904        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
4905        fidl::encoding::DefaultFuchsiaResourceDialect,
4906    >;
4907    fn r#set_ipv6_multicast_loopback(
4908        &self,
4909        mut value: bool,
4910    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
4911        fn _decode(
4912            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4913        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
4914            let _response = fidl::client::decode_transaction_body::<
4915                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4916                fidl::encoding::DefaultFuchsiaResourceDialect,
4917                0x55701c409ff41b40,
4918            >(_buf?)?;
4919            Ok(_response.map(|x| x))
4920        }
4921        self.client.send_query_and_decode::<
4922            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
4923            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
4924        >(
4925            (value,),
4926            0x55701c409ff41b40,
4927            fidl::encoding::DynamicFlags::empty(),
4928            _decode,
4929        )
4930    }
4931
4932    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
4933        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
4934        fidl::encoding::DefaultFuchsiaResourceDialect,
4935    >;
4936    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
4937        fn _decode(
4938            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4939        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
4940            let _response = fidl::client::decode_transaction_body::<
4941                fidl::encoding::ResultType<
4942                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
4943                    fidl_fuchsia_posix::Errno,
4944                >,
4945                fidl::encoding::DefaultFuchsiaResourceDialect,
4946                0x4415b701fde319c3,
4947            >(_buf?)?;
4948            Ok(_response.map(|x| x.value))
4949        }
4950        self.client.send_query_and_decode::<
4951            fidl::encoding::EmptyPayload,
4952            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
4953        >(
4954            (),
4955            0x4415b701fde319c3,
4956            fidl::encoding::DynamicFlags::empty(),
4957            _decode,
4958        )
4959    }
4960
4961    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
4962        BaseNetworkSocketSetIpv6OnlyResult,
4963        fidl::encoding::DefaultFuchsiaResourceDialect,
4964    >;
4965    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
4966        fn _decode(
4967            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4968        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
4969            let _response = fidl::client::decode_transaction_body::<
4970                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
4971                fidl::encoding::DefaultFuchsiaResourceDialect,
4972                0x4873f1364758cbba,
4973            >(_buf?)?;
4974            Ok(_response.map(|x| x))
4975        }
4976        self.client.send_query_and_decode::<
4977            BaseNetworkSocketSetIpv6OnlyRequest,
4978            BaseNetworkSocketSetIpv6OnlyResult,
4979        >(
4980            (value,),
4981            0x4873f1364758cbba,
4982            fidl::encoding::DynamicFlags::empty(),
4983            _decode,
4984        )
4985    }
4986
4987    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
4988        BaseNetworkSocketGetIpv6OnlyResult,
4989        fidl::encoding::DefaultFuchsiaResourceDialect,
4990    >;
4991    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
4992        fn _decode(
4993            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4994        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
4995            let _response = fidl::client::decode_transaction_body::<
4996                fidl::encoding::ResultType<
4997                    BaseNetworkSocketGetIpv6OnlyResponse,
4998                    fidl_fuchsia_posix::Errno,
4999                >,
5000                fidl::encoding::DefaultFuchsiaResourceDialect,
5001                0x4aa3340a1a26b89c,
5002            >(_buf?)?;
5003            Ok(_response.map(|x| x.value))
5004        }
5005        self.client.send_query_and_decode::<
5006            fidl::encoding::EmptyPayload,
5007            BaseNetworkSocketGetIpv6OnlyResult,
5008        >(
5009            (),
5010            0x4aa3340a1a26b89c,
5011            fidl::encoding::DynamicFlags::empty(),
5012            _decode,
5013        )
5014    }
5015
5016    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
5017        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
5018        fidl::encoding::DefaultFuchsiaResourceDialect,
5019    >;
5020    fn r#set_ipv6_receive_traffic_class(
5021        &self,
5022        mut value: bool,
5023    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
5024        fn _decode(
5025            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5026        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
5027            let _response = fidl::client::decode_transaction_body::<
5028                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5029                fidl::encoding::DefaultFuchsiaResourceDialect,
5030                0x58f07c8788d099a0,
5031            >(_buf?)?;
5032            Ok(_response.map(|x| x))
5033        }
5034        self.client.send_query_and_decode::<
5035            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
5036            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
5037        >(
5038            (value,),
5039            0x58f07c8788d099a0,
5040            fidl::encoding::DynamicFlags::empty(),
5041            _decode,
5042        )
5043    }
5044
5045    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
5046        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
5047        fidl::encoding::DefaultFuchsiaResourceDialect,
5048    >;
5049    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
5050        fn _decode(
5051            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5052        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
5053            let _response = fidl::client::decode_transaction_body::<
5054                fidl::encoding::ResultType<
5055                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
5056                    fidl_fuchsia_posix::Errno,
5057                >,
5058                fidl::encoding::DefaultFuchsiaResourceDialect,
5059                0x2e334df1da553ffa,
5060            >(_buf?)?;
5061            Ok(_response.map(|x| x.value))
5062        }
5063        self.client.send_query_and_decode::<
5064            fidl::encoding::EmptyPayload,
5065            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
5066        >(
5067            (),
5068            0x2e334df1da553ffa,
5069            fidl::encoding::DynamicFlags::empty(),
5070            _decode,
5071        )
5072    }
5073
5074    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
5075        BaseNetworkSocketSetIpv6TrafficClassResult,
5076        fidl::encoding::DefaultFuchsiaResourceDialect,
5077    >;
5078    fn r#set_ipv6_traffic_class(
5079        &self,
5080        mut value: &OptionalUint8,
5081    ) -> Self::SetIpv6TrafficClassResponseFut {
5082        fn _decode(
5083            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5084        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
5085            let _response = fidl::client::decode_transaction_body::<
5086                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5087                fidl::encoding::DefaultFuchsiaResourceDialect,
5088                0x6af077800c5a0b4f,
5089            >(_buf?)?;
5090            Ok(_response.map(|x| x))
5091        }
5092        self.client.send_query_and_decode::<
5093            BaseNetworkSocketSetIpv6TrafficClassRequest,
5094            BaseNetworkSocketSetIpv6TrafficClassResult,
5095        >(
5096            (value,),
5097            0x6af077800c5a0b4f,
5098            fidl::encoding::DynamicFlags::empty(),
5099            _decode,
5100        )
5101    }
5102
5103    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
5104        BaseNetworkSocketGetIpv6TrafficClassResult,
5105        fidl::encoding::DefaultFuchsiaResourceDialect,
5106    >;
5107    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
5108        fn _decode(
5109            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5110        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
5111            let _response = fidl::client::decode_transaction_body::<
5112                fidl::encoding::ResultType<
5113                    BaseNetworkSocketGetIpv6TrafficClassResponse,
5114                    fidl_fuchsia_posix::Errno,
5115                >,
5116                fidl::encoding::DefaultFuchsiaResourceDialect,
5117                0x6baf6eed8fc2f04,
5118            >(_buf?)?;
5119            Ok(_response.map(|x| x.value))
5120        }
5121        self.client.send_query_and_decode::<
5122            fidl::encoding::EmptyPayload,
5123            BaseNetworkSocketGetIpv6TrafficClassResult,
5124        >(
5125            (),
5126            0x6baf6eed8fc2f04,
5127            fidl::encoding::DynamicFlags::empty(),
5128            _decode,
5129        )
5130    }
5131
5132    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
5133        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
5134        fidl::encoding::DefaultFuchsiaResourceDialect,
5135    >;
5136    fn r#set_ipv6_receive_packet_info(
5137        &self,
5138        mut value: bool,
5139    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
5140        fn _decode(
5141            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5142        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
5143            let _response = fidl::client::decode_transaction_body::<
5144                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
5145                fidl::encoding::DefaultFuchsiaResourceDialect,
5146                0x19259775b1a92768,
5147            >(_buf?)?;
5148            Ok(_response.map(|x| x))
5149        }
5150        self.client.send_query_and_decode::<
5151            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
5152            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
5153        >(
5154            (value,),
5155            0x19259775b1a92768,
5156            fidl::encoding::DynamicFlags::empty(),
5157            _decode,
5158        )
5159    }
5160
5161    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
5162        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
5163        fidl::encoding::DefaultFuchsiaResourceDialect,
5164    >;
5165    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
5166        fn _decode(
5167            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5168        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
5169            let _response = fidl::client::decode_transaction_body::<
5170                fidl::encoding::ResultType<
5171                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
5172                    fidl_fuchsia_posix::Errno,
5173                >,
5174                fidl::encoding::DefaultFuchsiaResourceDialect,
5175                0x7acd4a2775baec75,
5176            >(_buf?)?;
5177            Ok(_response.map(|x| x.value))
5178        }
5179        self.client.send_query_and_decode::<
5180            fidl::encoding::EmptyPayload,
5181            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
5182        >(
5183            (),
5184            0x7acd4a2775baec75,
5185            fidl::encoding::DynamicFlags::empty(),
5186            _decode,
5187        )
5188    }
5189
5190    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
5191        BaseNetworkSocketGetOriginalDestinationResult,
5192        fidl::encoding::DefaultFuchsiaResourceDialect,
5193    >;
5194    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
5195        fn _decode(
5196            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5197        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
5198            let _response = fidl::client::decode_transaction_body::<
5199                fidl::encoding::ResultType<
5200                    BaseNetworkSocketGetOriginalDestinationResponse,
5201                    fidl_fuchsia_posix::Errno,
5202                >,
5203                fidl::encoding::DefaultFuchsiaResourceDialect,
5204                0x38bf28f0dafdbac0,
5205            >(_buf?)?;
5206            Ok(_response.map(|x| x.value))
5207        }
5208        self.client.send_query_and_decode::<
5209            fidl::encoding::EmptyPayload,
5210            BaseNetworkSocketGetOriginalDestinationResult,
5211        >(
5212            (),
5213            0x38bf28f0dafdbac0,
5214            fidl::encoding::DynamicFlags::empty(),
5215            _decode,
5216        )
5217    }
5218
5219    type GetInfoResponseFut = fidl::client::QueryResponseFut<
5220        BaseDatagramSocketGetInfoResult,
5221        fidl::encoding::DefaultFuchsiaResourceDialect,
5222    >;
5223    fn r#get_info(&self) -> Self::GetInfoResponseFut {
5224        fn _decode(
5225            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5226        ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
5227            let _response = fidl::client::decode_transaction_body::<
5228                fidl::encoding::ResultType<
5229                    BaseDatagramSocketGetInfoResponse,
5230                    fidl_fuchsia_posix::Errno,
5231                >,
5232                fidl::encoding::DefaultFuchsiaResourceDialect,
5233                0x48aa0a1f6a32d2ed,
5234            >(_buf?)?;
5235            Ok(_response.map(|x| (x.domain, x.proto)))
5236        }
5237        self.client
5238            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseDatagramSocketGetInfoResult>(
5239                (),
5240                0x48aa0a1f6a32d2ed,
5241                fidl::encoding::DynamicFlags::empty(),
5242                _decode,
5243            )
5244    }
5245}
5246
5247pub struct BaseDatagramSocketEventStream {
5248    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
5249}
5250
5251impl std::marker::Unpin for BaseDatagramSocketEventStream {}
5252
5253impl futures::stream::FusedStream for BaseDatagramSocketEventStream {
5254    fn is_terminated(&self) -> bool {
5255        self.event_receiver.is_terminated()
5256    }
5257}
5258
5259impl futures::Stream for BaseDatagramSocketEventStream {
5260    type Item = Result<BaseDatagramSocketEvent, fidl::Error>;
5261
5262    fn poll_next(
5263        mut self: std::pin::Pin<&mut Self>,
5264        cx: &mut std::task::Context<'_>,
5265    ) -> std::task::Poll<Option<Self::Item>> {
5266        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
5267            &mut self.event_receiver,
5268            cx
5269        )?) {
5270            Some(buf) => std::task::Poll::Ready(Some(BaseDatagramSocketEvent::decode(buf))),
5271            None => std::task::Poll::Ready(None),
5272        }
5273    }
5274}
5275
5276#[derive(Debug)]
5277pub enum BaseDatagramSocketEvent {}
5278
5279impl BaseDatagramSocketEvent {
5280    /// Decodes a message buffer as a [`BaseDatagramSocketEvent`].
5281    fn decode(
5282        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
5283    ) -> Result<BaseDatagramSocketEvent, fidl::Error> {
5284        let (bytes, _handles) = buf.split_mut();
5285        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5286        debug_assert_eq!(tx_header.tx_id, 0);
5287        match tx_header.ordinal {
5288            _ => Err(fidl::Error::UnknownOrdinal {
5289                ordinal: tx_header.ordinal,
5290                protocol_name:
5291                    <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
5292            }),
5293        }
5294    }
5295}
5296
5297/// A Stream of incoming requests for fuchsia.posix.socket/BaseDatagramSocket.
5298pub struct BaseDatagramSocketRequestStream {
5299    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5300    is_terminated: bool,
5301}
5302
5303impl std::marker::Unpin for BaseDatagramSocketRequestStream {}
5304
5305impl futures::stream::FusedStream for BaseDatagramSocketRequestStream {
5306    fn is_terminated(&self) -> bool {
5307        self.is_terminated
5308    }
5309}
5310
5311impl fidl::endpoints::RequestStream for BaseDatagramSocketRequestStream {
5312    type Protocol = BaseDatagramSocketMarker;
5313    type ControlHandle = BaseDatagramSocketControlHandle;
5314
5315    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
5316        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
5317    }
5318
5319    fn control_handle(&self) -> Self::ControlHandle {
5320        BaseDatagramSocketControlHandle { inner: self.inner.clone() }
5321    }
5322
5323    fn into_inner(
5324        self,
5325    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
5326    {
5327        (self.inner, self.is_terminated)
5328    }
5329
5330    fn from_inner(
5331        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5332        is_terminated: bool,
5333    ) -> Self {
5334        Self { inner, is_terminated }
5335    }
5336}
5337
5338impl futures::Stream for BaseDatagramSocketRequestStream {
5339    type Item = Result<BaseDatagramSocketRequest, fidl::Error>;
5340
5341    fn poll_next(
5342        mut self: std::pin::Pin<&mut Self>,
5343        cx: &mut std::task::Context<'_>,
5344    ) -> std::task::Poll<Option<Self::Item>> {
5345        let this = &mut *self;
5346        if this.inner.check_shutdown(cx) {
5347            this.is_terminated = true;
5348            return std::task::Poll::Ready(None);
5349        }
5350        if this.is_terminated {
5351            panic!("polled BaseDatagramSocketRequestStream after completion");
5352        }
5353        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
5354            |bytes, handles| {
5355                match this.inner.channel().read_etc(cx, bytes, handles) {
5356                    std::task::Poll::Ready(Ok(())) => {}
5357                    std::task::Poll::Pending => return std::task::Poll::Pending,
5358                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
5359                        this.is_terminated = true;
5360                        return std::task::Poll::Ready(None);
5361                    }
5362                    std::task::Poll::Ready(Err(e)) => {
5363                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
5364                            e.into(),
5365                        ))));
5366                    }
5367                }
5368
5369                // A message has been received from the channel
5370                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5371
5372                std::task::Poll::Ready(Some(match header.ordinal {
5373                0x20d8a7aba2168a79 => {
5374                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
5375                    let mut req = fidl::new_empty!(fidl_fuchsia_unknown::CloneableCloneRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5376                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
5377                    let control_handle = BaseDatagramSocketControlHandle {
5378                        inner: this.inner.clone(),
5379                    };
5380                    Ok(BaseDatagramSocketRequest::Clone {request: req.request,
5381
5382                        control_handle,
5383                    })
5384                }
5385                0x5ac5d459ad7f657e => {
5386                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5387                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5388                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5389                    let control_handle = BaseDatagramSocketControlHandle {
5390                        inner: this.inner.clone(),
5391                    };
5392                    Ok(BaseDatagramSocketRequest::Close {
5393                        responder: BaseDatagramSocketCloseResponder {
5394                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5395                            tx_id: header.tx_id,
5396                        },
5397                    })
5398                }
5399                0x2658edee9decfc06 => {
5400                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5401                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5402                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5403                    let control_handle = BaseDatagramSocketControlHandle {
5404                        inner: this.inner.clone(),
5405                    };
5406                    Ok(BaseDatagramSocketRequest::Query {
5407                        responder: BaseDatagramSocketQueryResponder {
5408                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5409                            tx_id: header.tx_id,
5410                        },
5411                    })
5412                }
5413                0x1fd74ee8b9a4a876 => {
5414                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5415                    let mut req = fidl::new_empty!(BaseSocketSetReuseAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5416                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
5417                    let control_handle = BaseDatagramSocketControlHandle {
5418                        inner: this.inner.clone(),
5419                    };
5420                    Ok(BaseDatagramSocketRequest::SetReuseAddress {value: req.value,
5421
5422                        responder: BaseDatagramSocketSetReuseAddressResponder {
5423                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5424                            tx_id: header.tx_id,
5425                        },
5426                    })
5427                }
5428                0x67b7206b8d1bc0a5 => {
5429                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5430                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5431                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5432                    let control_handle = BaseDatagramSocketControlHandle {
5433                        inner: this.inner.clone(),
5434                    };
5435                    Ok(BaseDatagramSocketRequest::GetReuseAddress {
5436                        responder: BaseDatagramSocketGetReuseAddressResponder {
5437                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5438                            tx_id: header.tx_id,
5439                        },
5440                    })
5441                }
5442                0x5aad39b33e5f6ebb => {
5443                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5444                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5445                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5446                    let control_handle = BaseDatagramSocketControlHandle {
5447                        inner: this.inner.clone(),
5448                    };
5449                    Ok(BaseDatagramSocketRequest::GetError {
5450                        responder: BaseDatagramSocketGetErrorResponder {
5451                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5452                            tx_id: header.tx_id,
5453                        },
5454                    })
5455                }
5456                0x6023e081ce3cd947 => {
5457                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5458                    let mut req = fidl::new_empty!(BaseSocketSetBroadcastRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5459                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
5460                    let control_handle = BaseDatagramSocketControlHandle {
5461                        inner: this.inner.clone(),
5462                    };
5463                    Ok(BaseDatagramSocketRequest::SetBroadcast {value: req.value,
5464
5465                        responder: BaseDatagramSocketSetBroadcastResponder {
5466                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5467                            tx_id: header.tx_id,
5468                        },
5469                    })
5470                }
5471                0x68796fc556f9780d => {
5472                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5473                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5474                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5475                    let control_handle = BaseDatagramSocketControlHandle {
5476                        inner: this.inner.clone(),
5477                    };
5478                    Ok(BaseDatagramSocketRequest::GetBroadcast {
5479                        responder: BaseDatagramSocketGetBroadcastResponder {
5480                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5481                            tx_id: header.tx_id,
5482                        },
5483                    })
5484                }
5485                0x756eac32d73a7a70 => {
5486                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5487                    let mut req = fidl::new_empty!(BaseSocketSetSendBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5488                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
5489                    let control_handle = BaseDatagramSocketControlHandle {
5490                        inner: this.inner.clone(),
5491                    };
5492                    Ok(BaseDatagramSocketRequest::SetSendBuffer {value_bytes: req.value_bytes,
5493
5494                        responder: BaseDatagramSocketSetSendBufferResponder {
5495                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5496                            tx_id: header.tx_id,
5497                        },
5498                    })
5499                }
5500                0x78a52fd9c7b2410b => {
5501                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5502                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5503                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5504                    let control_handle = BaseDatagramSocketControlHandle {
5505                        inner: this.inner.clone(),
5506                    };
5507                    Ok(BaseDatagramSocketRequest::GetSendBuffer {
5508                        responder: BaseDatagramSocketGetSendBufferResponder {
5509                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5510                            tx_id: header.tx_id,
5511                        },
5512                    })
5513                }
5514                0x6b0cf2f1919c7001 => {
5515                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5516                    let mut req = fidl::new_empty!(BaseSocketSetReceiveBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5517                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
5518                    let control_handle = BaseDatagramSocketControlHandle {
5519                        inner: this.inner.clone(),
5520                    };
5521                    Ok(BaseDatagramSocketRequest::SetReceiveBuffer {value_bytes: req.value_bytes,
5522
5523                        responder: BaseDatagramSocketSetReceiveBufferResponder {
5524                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5525                            tx_id: header.tx_id,
5526                        },
5527                    })
5528                }
5529                0x14c1a4b64f709e5c => {
5530                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5531                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5532                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5533                    let control_handle = BaseDatagramSocketControlHandle {
5534                        inner: this.inner.clone(),
5535                    };
5536                    Ok(BaseDatagramSocketRequest::GetReceiveBuffer {
5537                        responder: BaseDatagramSocketGetReceiveBufferResponder {
5538                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5539                            tx_id: header.tx_id,
5540                        },
5541                    })
5542                }
5543                0x572df8f0b920d2c7 => {
5544                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5545                    let mut req = fidl::new_empty!(BaseSocketSetKeepAliveRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5546                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
5547                    let control_handle = BaseDatagramSocketControlHandle {
5548                        inner: this.inner.clone(),
5549                    };
5550                    Ok(BaseDatagramSocketRequest::SetKeepAlive {value: req.value,
5551
5552                        responder: BaseDatagramSocketSetKeepAliveResponder {
5553                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5554                            tx_id: header.tx_id,
5555                        },
5556                    })
5557                }
5558                0x2dd29d3215f2c9d2 => {
5559                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5560                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5561                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5562                    let control_handle = BaseDatagramSocketControlHandle {
5563                        inner: this.inner.clone(),
5564                    };
5565                    Ok(BaseDatagramSocketRequest::GetKeepAlive {
5566                        responder: BaseDatagramSocketGetKeepAliveResponder {
5567                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5568                            tx_id: header.tx_id,
5569                        },
5570                    })
5571                }
5572                0x3ecb49968bee439 => {
5573                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5574                    let mut req = fidl::new_empty!(BaseSocketSetOutOfBandInlineRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5575                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
5576                    let control_handle = BaseDatagramSocketControlHandle {
5577                        inner: this.inner.clone(),
5578                    };
5579                    Ok(BaseDatagramSocketRequest::SetOutOfBandInline {value: req.value,
5580
5581                        responder: BaseDatagramSocketSetOutOfBandInlineResponder {
5582                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5583                            tx_id: header.tx_id,
5584                        },
5585                    })
5586                }
5587                0x348c1ab3aeca1745 => {
5588                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5589                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5590                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5591                    let control_handle = BaseDatagramSocketControlHandle {
5592                        inner: this.inner.clone(),
5593                    };
5594                    Ok(BaseDatagramSocketRequest::GetOutOfBandInline {
5595                        responder: BaseDatagramSocketGetOutOfBandInlineResponder {
5596                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5597                            tx_id: header.tx_id,
5598                        },
5599                    })
5600                }
5601                0x6bbf00c53a4c78c2 => {
5602                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5603                    let mut req = fidl::new_empty!(BaseSocketSetNoCheckRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5604                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
5605                    let control_handle = BaseDatagramSocketControlHandle {
5606                        inner: this.inner.clone(),
5607                    };
5608                    Ok(BaseDatagramSocketRequest::SetNoCheck {value: req.value,
5609
5610                        responder: BaseDatagramSocketSetNoCheckResponder {
5611                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5612                            tx_id: header.tx_id,
5613                        },
5614                    })
5615                }
5616                0x2cd4249286417694 => {
5617                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5618                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5619                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5620                    let control_handle = BaseDatagramSocketControlHandle {
5621                        inner: this.inner.clone(),
5622                    };
5623                    Ok(BaseDatagramSocketRequest::GetNoCheck {
5624                        responder: BaseDatagramSocketGetNoCheckResponder {
5625                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5626                            tx_id: header.tx_id,
5627                        },
5628                    })
5629                }
5630                0x45386351246e998e => {
5631                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5632                    let mut req = fidl::new_empty!(BaseSocketSetLingerRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5633                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
5634                    let control_handle = BaseDatagramSocketControlHandle {
5635                        inner: this.inner.clone(),
5636                    };
5637                    Ok(BaseDatagramSocketRequest::SetLinger {linger: req.linger,
5638length_secs: req.length_secs,
5639
5640                        responder: BaseDatagramSocketSetLingerResponder {
5641                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5642                            tx_id: header.tx_id,
5643                        },
5644                    })
5645                }
5646                0x48eb20fc5ccb0e45 => {
5647                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5648                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5649                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5650                    let control_handle = BaseDatagramSocketControlHandle {
5651                        inner: this.inner.clone(),
5652                    };
5653                    Ok(BaseDatagramSocketRequest::GetLinger {
5654                        responder: BaseDatagramSocketGetLingerResponder {
5655                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5656                            tx_id: header.tx_id,
5657                        },
5658                    })
5659                }
5660                0x24dd3e5cb36d9ccb => {
5661                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5662                    let mut req = fidl::new_empty!(BaseSocketSetReusePortRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5663                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
5664                    let control_handle = BaseDatagramSocketControlHandle {
5665                        inner: this.inner.clone(),
5666                    };
5667                    Ok(BaseDatagramSocketRequest::SetReusePort {value: req.value,
5668
5669                        responder: BaseDatagramSocketSetReusePortResponder {
5670                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5671                            tx_id: header.tx_id,
5672                        },
5673                    })
5674                }
5675                0x7a112c1ab54ff828 => {
5676                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5677                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5678                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5679                    let control_handle = BaseDatagramSocketControlHandle {
5680                        inner: this.inner.clone(),
5681                    };
5682                    Ok(BaseDatagramSocketRequest::GetReusePort {
5683                        responder: BaseDatagramSocketGetReusePortResponder {
5684                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5685                            tx_id: header.tx_id,
5686                        },
5687                    })
5688                }
5689                0x67ce6db6c2ec8966 => {
5690                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5691                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5692                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5693                    let control_handle = BaseDatagramSocketControlHandle {
5694                        inner: this.inner.clone(),
5695                    };
5696                    Ok(BaseDatagramSocketRequest::GetAcceptConn {
5697                        responder: BaseDatagramSocketGetAcceptConnResponder {
5698                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5699                            tx_id: header.tx_id,
5700                        },
5701                    })
5702                }
5703                0x2118b483f28aafc4 => {
5704                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5705                    let mut req = fidl::new_empty!(BaseSocketSetBindToDeviceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5706                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
5707                    let control_handle = BaseDatagramSocketControlHandle {
5708                        inner: this.inner.clone(),
5709                    };
5710                    Ok(BaseDatagramSocketRequest::SetBindToDevice {value: req.value,
5711
5712                        responder: BaseDatagramSocketSetBindToDeviceResponder {
5713                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5714                            tx_id: header.tx_id,
5715                        },
5716                    })
5717                }
5718                0x1ab1fbf0ef7906c8 => {
5719                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5720                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5721                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5722                    let control_handle = BaseDatagramSocketControlHandle {
5723                        inner: this.inner.clone(),
5724                    };
5725                    Ok(BaseDatagramSocketRequest::GetBindToDevice {
5726                        responder: BaseDatagramSocketGetBindToDeviceResponder {
5727                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5728                            tx_id: header.tx_id,
5729                        },
5730                    })
5731                }
5732                0x6e387a0def00821 => {
5733                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5734                    let mut req = fidl::new_empty!(BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5735                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
5736                    let control_handle = BaseDatagramSocketControlHandle {
5737                        inner: this.inner.clone(),
5738                    };
5739                    Ok(BaseDatagramSocketRequest::SetBindToInterfaceIndex {value: req.value,
5740
5741                        responder: BaseDatagramSocketSetBindToInterfaceIndexResponder {
5742                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5743                            tx_id: header.tx_id,
5744                        },
5745                    })
5746                }
5747                0x59c31dd3e3078295 => {
5748                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5749                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5750                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5751                    let control_handle = BaseDatagramSocketControlHandle {
5752                        inner: this.inner.clone(),
5753                    };
5754                    Ok(BaseDatagramSocketRequest::GetBindToInterfaceIndex {
5755                        responder: BaseDatagramSocketGetBindToInterfaceIndexResponder {
5756                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5757                            tx_id: header.tx_id,
5758                        },
5759                    })
5760                }
5761                0x285d6516c263d839 => {
5762                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5763                    let mut req = fidl::new_empty!(BaseSocketSetTimestampRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5764                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
5765                    let control_handle = BaseDatagramSocketControlHandle {
5766                        inner: this.inner.clone(),
5767                    };
5768                    Ok(BaseDatagramSocketRequest::SetTimestamp {value: req.value,
5769
5770                        responder: BaseDatagramSocketSetTimestampResponder {
5771                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5772                            tx_id: header.tx_id,
5773                        },
5774                    })
5775                }
5776                0x49f2fffbbcc2bd27 => {
5777                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5778                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5779                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5780                    let control_handle = BaseDatagramSocketControlHandle {
5781                        inner: this.inner.clone(),
5782                    };
5783                    Ok(BaseDatagramSocketRequest::GetTimestamp {
5784                        responder: BaseDatagramSocketGetTimestampResponder {
5785                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5786                            tx_id: header.tx_id,
5787                        },
5788                    })
5789                }
5790                0x6ead6de09f653236 => {
5791                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5792                    let mut req = fidl::new_empty!(BaseSocketSetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5793                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
5794                    let control_handle = BaseDatagramSocketControlHandle {
5795                        inner: this.inner.clone(),
5796                    };
5797                    Ok(BaseDatagramSocketRequest::SetMark {domain: req.domain,
5798mark: req.mark,
5799
5800                        responder: BaseDatagramSocketSetMarkResponder {
5801                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5802                            tx_id: header.tx_id,
5803                        },
5804                    })
5805                }
5806                0x57a2752c61d93d47 => {
5807                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5808                    let mut req = fidl::new_empty!(BaseSocketGetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5809                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
5810                    let control_handle = BaseDatagramSocketControlHandle {
5811                        inner: this.inner.clone(),
5812                    };
5813                    Ok(BaseDatagramSocketRequest::GetMark {domain: req.domain,
5814
5815                        responder: BaseDatagramSocketGetMarkResponder {
5816                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5817                            tx_id: header.tx_id,
5818                        },
5819                    })
5820                }
5821                0x2c2f47fd8f924e52 => {
5822                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5823                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5824                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5825                    let control_handle = BaseDatagramSocketControlHandle {
5826                        inner: this.inner.clone(),
5827                    };
5828                    Ok(BaseDatagramSocketRequest::GetCookie {
5829                        responder: BaseDatagramSocketGetCookieResponder {
5830                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5831                            tx_id: header.tx_id,
5832                        },
5833                    })
5834                }
5835                0x4bc6400ae92125d => {
5836                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5837                    let mut req = fidl::new_empty!(BaseNetworkSocketBindRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5838                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
5839                    let control_handle = BaseDatagramSocketControlHandle {
5840                        inner: this.inner.clone(),
5841                    };
5842                    Ok(BaseDatagramSocketRequest::Bind {addr: req.addr,
5843
5844                        responder: BaseDatagramSocketBindResponder {
5845                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5846                            tx_id: header.tx_id,
5847                        },
5848                    })
5849                }
5850                0x5f05f19bfdd38871 => {
5851                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5852                    let mut req = fidl::new_empty!(BaseNetworkSocketConnectRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5853                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
5854                    let control_handle = BaseDatagramSocketControlHandle {
5855                        inner: this.inner.clone(),
5856                    };
5857                    Ok(BaseDatagramSocketRequest::Connect {addr: req.addr,
5858
5859                        responder: BaseDatagramSocketConnectResponder {
5860                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5861                            tx_id: header.tx_id,
5862                        },
5863                    })
5864                }
5865                0x74e63b91f7b29b2 => {
5866                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5867                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5868                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5869                    let control_handle = BaseDatagramSocketControlHandle {
5870                        inner: this.inner.clone(),
5871                    };
5872                    Ok(BaseDatagramSocketRequest::Disconnect {
5873                        responder: BaseDatagramSocketDisconnectResponder {
5874                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5875                            tx_id: header.tx_id,
5876                        },
5877                    })
5878                }
5879                0x475f23f84a1a4f85 => {
5880                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5881                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5882                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5883                    let control_handle = BaseDatagramSocketControlHandle {
5884                        inner: this.inner.clone(),
5885                    };
5886                    Ok(BaseDatagramSocketRequest::GetSockName {
5887                        responder: BaseDatagramSocketGetSockNameResponder {
5888                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5889                            tx_id: header.tx_id,
5890                        },
5891                    })
5892                }
5893                0x1ffecf4bd5b6432e => {
5894                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5895                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5896                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5897                    let control_handle = BaseDatagramSocketControlHandle {
5898                        inner: this.inner.clone(),
5899                    };
5900                    Ok(BaseDatagramSocketRequest::GetPeerName {
5901                        responder: BaseDatagramSocketGetPeerNameResponder {
5902                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5903                            tx_id: header.tx_id,
5904                        },
5905                    })
5906                }
5907                0x247f38b6db68c336 => {
5908                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5909                    let mut req = fidl::new_empty!(BaseNetworkSocketShutdownRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5910                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
5911                    let control_handle = BaseDatagramSocketControlHandle {
5912                        inner: this.inner.clone(),
5913                    };
5914                    Ok(BaseDatagramSocketRequest::Shutdown {mode: req.mode,
5915
5916                        responder: BaseDatagramSocketShutdownResponder {
5917                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5918                            tx_id: header.tx_id,
5919                        },
5920                    })
5921                }
5922                0x995c600475b6d46 => {
5923                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5924                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5925                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
5926                    let control_handle = BaseDatagramSocketControlHandle {
5927                        inner: this.inner.clone(),
5928                    };
5929                    Ok(BaseDatagramSocketRequest::SetIpTypeOfService {value: req.value,
5930
5931                        responder: BaseDatagramSocketSetIpTypeOfServiceResponder {
5932                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5933                            tx_id: header.tx_id,
5934                        },
5935                    })
5936                }
5937                0x3814a04259f75fcb => {
5938                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5939                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5940                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5941                    let control_handle = BaseDatagramSocketControlHandle {
5942                        inner: this.inner.clone(),
5943                    };
5944                    Ok(BaseDatagramSocketRequest::GetIpTypeOfService {
5945                        responder: BaseDatagramSocketGetIpTypeOfServiceResponder {
5946                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5947                            tx_id: header.tx_id,
5948                        },
5949                    })
5950                }
5951                0x29e2424b433ae1ef => {
5952                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5953                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5954                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
5955                    let control_handle = BaseDatagramSocketControlHandle {
5956                        inner: this.inner.clone(),
5957                    };
5958                    Ok(BaseDatagramSocketRequest::SetIpTtl {value: req.value,
5959
5960                        responder: BaseDatagramSocketSetIpTtlResponder {
5961                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5962                            tx_id: header.tx_id,
5963                        },
5964                    })
5965                }
5966                0x47e47fa1f24da471 => {
5967                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5968                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5969                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5970                    let control_handle = BaseDatagramSocketControlHandle {
5971                        inner: this.inner.clone(),
5972                    };
5973                    Ok(BaseDatagramSocketRequest::GetIpTtl {
5974                        responder: BaseDatagramSocketGetIpTtlResponder {
5975                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5976                            tx_id: header.tx_id,
5977                        },
5978                    })
5979                }
5980                0x392d16bee20c0e16 => {
5981                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5982                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
5983                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
5984                    let control_handle = BaseDatagramSocketControlHandle {
5985                        inner: this.inner.clone(),
5986                    };
5987                    Ok(BaseDatagramSocketRequest::SetIpPacketInfo {value: req.value,
5988
5989                        responder: BaseDatagramSocketSetIpPacketInfoResponder {
5990                            control_handle: std::mem::ManuallyDrop::new(control_handle),
5991                            tx_id: header.tx_id,
5992                        },
5993                    })
5994                }
5995                0x54b505f242280740 => {
5996                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5997                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
5998                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5999                    let control_handle = BaseDatagramSocketControlHandle {
6000                        inner: this.inner.clone(),
6001                    };
6002                    Ok(BaseDatagramSocketRequest::GetIpPacketInfo {
6003                        responder: BaseDatagramSocketGetIpPacketInfoResponder {
6004                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6005                            tx_id: header.tx_id,
6006                        },
6007                    })
6008                }
6009                0x6c4f6714995f84ef => {
6010                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6011                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6012                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
6013                    let control_handle = BaseDatagramSocketControlHandle {
6014                        inner: this.inner.clone(),
6015                    };
6016                    Ok(BaseDatagramSocketRequest::SetIpReceiveTypeOfService {value: req.value,
6017
6018                        responder: BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
6019                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6020                            tx_id: header.tx_id,
6021                        },
6022                    })
6023                }
6024                0x4158ba7dc2795960 => {
6025                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6026                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6027                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6028                    let control_handle = BaseDatagramSocketControlHandle {
6029                        inner: this.inner.clone(),
6030                    };
6031                    Ok(BaseDatagramSocketRequest::GetIpReceiveTypeOfService {
6032                        responder: BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
6033                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6034                            tx_id: header.tx_id,
6035                        },
6036                    })
6037                }
6038                0x46f15be0ce0ab82b => {
6039                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6040                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6041                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
6042                    let control_handle = BaseDatagramSocketControlHandle {
6043                        inner: this.inner.clone(),
6044                    };
6045                    Ok(BaseDatagramSocketRequest::SetIpReceiveTtl {value: req.value,
6046
6047                        responder: BaseDatagramSocketSetIpReceiveTtlResponder {
6048                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6049                            tx_id: header.tx_id,
6050                        },
6051                    })
6052                }
6053                0x678ddd5a5dfa2eb5 => {
6054                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6055                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6056                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6057                    let control_handle = BaseDatagramSocketControlHandle {
6058                        inner: this.inner.clone(),
6059                    };
6060                    Ok(BaseDatagramSocketRequest::GetIpReceiveTtl {
6061                        responder: BaseDatagramSocketGetIpReceiveTtlResponder {
6062                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6063                            tx_id: header.tx_id,
6064                        },
6065                    })
6066                }
6067                0x752fbfa9b12befe => {
6068                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6069                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6070                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
6071                    let control_handle = BaseDatagramSocketControlHandle {
6072                        inner: this.inner.clone(),
6073                    };
6074                    Ok(BaseDatagramSocketRequest::SetIpMulticastInterface {iface: req.iface,
6075address: req.address,
6076
6077                        responder: BaseDatagramSocketSetIpMulticastInterfaceResponder {
6078                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6079                            tx_id: header.tx_id,
6080                        },
6081                    })
6082                }
6083                0x320bd14c4df046c4 => {
6084                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6085                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6086                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6087                    let control_handle = BaseDatagramSocketControlHandle {
6088                        inner: this.inner.clone(),
6089                    };
6090                    Ok(BaseDatagramSocketRequest::GetIpMulticastInterface {
6091                        responder: BaseDatagramSocketGetIpMulticastInterfaceResponder {
6092                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6093                            tx_id: header.tx_id,
6094                        },
6095                    })
6096                }
6097                0x63134d53772916a1 => {
6098                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6099                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6100                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
6101                    let control_handle = BaseDatagramSocketControlHandle {
6102                        inner: this.inner.clone(),
6103                    };
6104                    Ok(BaseDatagramSocketRequest::SetIpMulticastTtl {value: req.value,
6105
6106                        responder: BaseDatagramSocketSetIpMulticastTtlResponder {
6107                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6108                            tx_id: header.tx_id,
6109                        },
6110                    })
6111                }
6112                0x4665cd378f39e1a => {
6113                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6114                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6115                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6116                    let control_handle = BaseDatagramSocketControlHandle {
6117                        inner: this.inner.clone(),
6118                    };
6119                    Ok(BaseDatagramSocketRequest::GetIpMulticastTtl {
6120                        responder: BaseDatagramSocketGetIpMulticastTtlResponder {
6121                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6122                            tx_id: header.tx_id,
6123                        },
6124                    })
6125                }
6126                0x20c55c11f00943ea => {
6127                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6128                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6129                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
6130                    let control_handle = BaseDatagramSocketControlHandle {
6131                        inner: this.inner.clone(),
6132                    };
6133                    Ok(BaseDatagramSocketRequest::SetIpMulticastLoopback {value: req.value,
6134
6135                        responder: BaseDatagramSocketSetIpMulticastLoopbackResponder {
6136                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6137                            tx_id: header.tx_id,
6138                        },
6139                    })
6140                }
6141                0x3b6b26ff558298f2 => {
6142                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6143                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6144                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6145                    let control_handle = BaseDatagramSocketControlHandle {
6146                        inner: this.inner.clone(),
6147                    };
6148                    Ok(BaseDatagramSocketRequest::GetIpMulticastLoopback {
6149                        responder: BaseDatagramSocketGetIpMulticastLoopbackResponder {
6150                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6151                            tx_id: header.tx_id,
6152                        },
6153                    })
6154                }
6155                0x76bc7df115a3b4d0 => {
6156                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6157                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6158                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6159                    let control_handle = BaseDatagramSocketControlHandle {
6160                        inner: this.inner.clone(),
6161                    };
6162                    Ok(BaseDatagramSocketRequest::AddIpMembership {membership: req.membership,
6163
6164                        responder: BaseDatagramSocketAddIpMembershipResponder {
6165                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6166                            tx_id: header.tx_id,
6167                        },
6168                    })
6169                }
6170                0x2888f3099188d03 => {
6171                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6172                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6173                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6174                    let control_handle = BaseDatagramSocketControlHandle {
6175                        inner: this.inner.clone(),
6176                    };
6177                    Ok(BaseDatagramSocketRequest::DropIpMembership {membership: req.membership,
6178
6179                        responder: BaseDatagramSocketDropIpMembershipResponder {
6180                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6181                            tx_id: header.tx_id,
6182                        },
6183                    })
6184                }
6185                0x1ae532b0c066e3a0 => {
6186                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6187                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6188                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
6189                    let control_handle = BaseDatagramSocketControlHandle {
6190                        inner: this.inner.clone(),
6191                    };
6192                    Ok(BaseDatagramSocketRequest::SetIpTransparent {value: req.value,
6193
6194                        responder: BaseDatagramSocketSetIpTransparentResponder {
6195                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6196                            tx_id: header.tx_id,
6197                        },
6198                    })
6199                }
6200                0x51d43695962ebfb5 => {
6201                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6202                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6203                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6204                    let control_handle = BaseDatagramSocketControlHandle {
6205                        inner: this.inner.clone(),
6206                    };
6207                    Ok(BaseDatagramSocketRequest::GetIpTransparent {
6208                        responder: BaseDatagramSocketGetIpTransparentResponder {
6209                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6210                            tx_id: header.tx_id,
6211                        },
6212                    })
6213                }
6214                0x4722b4ce52f7840 => {
6215                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6216                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6217                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
6218                    let control_handle = BaseDatagramSocketControlHandle {
6219                        inner: this.inner.clone(),
6220                    };
6221                    Ok(BaseDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {value: req.value,
6222
6223                        responder: BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
6224                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6225                            tx_id: header.tx_id,
6226                        },
6227                    })
6228                }
6229                0x2a0e7dc5d6bfdfe9 => {
6230                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6231                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6232                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6233                    let control_handle = BaseDatagramSocketControlHandle {
6234                        inner: this.inner.clone(),
6235                    };
6236                    Ok(BaseDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
6237                        responder: BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
6238                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6239                            tx_id: header.tx_id,
6240                        },
6241                    })
6242                }
6243                0x7c94727acb4ea4b3 => {
6244                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6245                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6246                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6247                    let control_handle = BaseDatagramSocketControlHandle {
6248                        inner: this.inner.clone(),
6249                    };
6250                    Ok(BaseDatagramSocketRequest::AddIpv6Membership {membership: req.membership,
6251
6252                        responder: BaseDatagramSocketAddIpv6MembershipResponder {
6253                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6254                            tx_id: header.tx_id,
6255                        },
6256                    })
6257                }
6258                0x42104c70ccaba304 => {
6259                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6260                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6261                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
6262                    let control_handle = BaseDatagramSocketControlHandle {
6263                        inner: this.inner.clone(),
6264                    };
6265                    Ok(BaseDatagramSocketRequest::DropIpv6Membership {membership: req.membership,
6266
6267                        responder: BaseDatagramSocketDropIpv6MembershipResponder {
6268                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6269                            tx_id: header.tx_id,
6270                        },
6271                    })
6272                }
6273                0x135f76db3774ab3b => {
6274                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6275                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6276                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
6277                    let control_handle = BaseDatagramSocketControlHandle {
6278                        inner: this.inner.clone(),
6279                    };
6280                    Ok(BaseDatagramSocketRequest::SetIpv6MulticastInterface {value: req.value,
6281
6282                        responder: BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
6283                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6284                            tx_id: header.tx_id,
6285                        },
6286                    })
6287                }
6288                0x1f26fcdd348f1882 => {
6289                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6290                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6291                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6292                    let control_handle = BaseDatagramSocketControlHandle {
6293                        inner: this.inner.clone(),
6294                    };
6295                    Ok(BaseDatagramSocketRequest::GetIpv6MulticastInterface {
6296                        responder: BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
6297                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6298                            tx_id: header.tx_id,
6299                        },
6300                    })
6301                }
6302                0x157d51e98f462859 => {
6303                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6304                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6UnicastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6305                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
6306                    let control_handle = BaseDatagramSocketControlHandle {
6307                        inner: this.inner.clone(),
6308                    };
6309                    Ok(BaseDatagramSocketRequest::SetIpv6UnicastHops {value: req.value,
6310
6311                        responder: BaseDatagramSocketSetIpv6UnicastHopsResponder {
6312                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6313                            tx_id: header.tx_id,
6314                        },
6315                    })
6316                }
6317                0x21f4641cad8bd8d2 => {
6318                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6319                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6320                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6321                    let control_handle = BaseDatagramSocketControlHandle {
6322                        inner: this.inner.clone(),
6323                    };
6324                    Ok(BaseDatagramSocketRequest::GetIpv6UnicastHops {
6325                        responder: BaseDatagramSocketGetIpv6UnicastHopsResponder {
6326                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6327                            tx_id: header.tx_id,
6328                        },
6329                    })
6330                }
6331                0x5c24808ed2e84a1e => {
6332                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6333                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveHopLimitRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6334                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
6335                    let control_handle = BaseDatagramSocketControlHandle {
6336                        inner: this.inner.clone(),
6337                    };
6338                    Ok(BaseDatagramSocketRequest::SetIpv6ReceiveHopLimit {value: req.value,
6339
6340                        responder: BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
6341                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6342                            tx_id: header.tx_id,
6343                        },
6344                    })
6345                }
6346                0x341e06689885b4c0 => {
6347                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6348                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6349                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6350                    let control_handle = BaseDatagramSocketControlHandle {
6351                        inner: this.inner.clone(),
6352                    };
6353                    Ok(BaseDatagramSocketRequest::GetIpv6ReceiveHopLimit {
6354                        responder: BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
6355                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6356                            tx_id: header.tx_id,
6357                        },
6358                    })
6359                }
6360                0x25b9cd4d181f82c1 => {
6361                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6362                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6363                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
6364                    let control_handle = BaseDatagramSocketControlHandle {
6365                        inner: this.inner.clone(),
6366                    };
6367                    Ok(BaseDatagramSocketRequest::SetIpv6MulticastHops {value: req.value,
6368
6369                        responder: BaseDatagramSocketSetIpv6MulticastHopsResponder {
6370                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6371                            tx_id: header.tx_id,
6372                        },
6373                    })
6374                }
6375                0x52916948a365012a => {
6376                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6377                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6378                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6379                    let control_handle = BaseDatagramSocketControlHandle {
6380                        inner: this.inner.clone(),
6381                    };
6382                    Ok(BaseDatagramSocketRequest::GetIpv6MulticastHops {
6383                        responder: BaseDatagramSocketGetIpv6MulticastHopsResponder {
6384                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6385                            tx_id: header.tx_id,
6386                        },
6387                    })
6388                }
6389                0x55701c409ff41b40 => {
6390                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6391                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6392                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
6393                    let control_handle = BaseDatagramSocketControlHandle {
6394                        inner: this.inner.clone(),
6395                    };
6396                    Ok(BaseDatagramSocketRequest::SetIpv6MulticastLoopback {value: req.value,
6397
6398                        responder: BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
6399                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6400                            tx_id: header.tx_id,
6401                        },
6402                    })
6403                }
6404                0x4415b701fde319c3 => {
6405                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6406                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6407                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6408                    let control_handle = BaseDatagramSocketControlHandle {
6409                        inner: this.inner.clone(),
6410                    };
6411                    Ok(BaseDatagramSocketRequest::GetIpv6MulticastLoopback {
6412                        responder: BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
6413                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6414                            tx_id: header.tx_id,
6415                        },
6416                    })
6417                }
6418                0x4873f1364758cbba => {
6419                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6420                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6421                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
6422                    let control_handle = BaseDatagramSocketControlHandle {
6423                        inner: this.inner.clone(),
6424                    };
6425                    Ok(BaseDatagramSocketRequest::SetIpv6Only {value: req.value,
6426
6427                        responder: BaseDatagramSocketSetIpv6OnlyResponder {
6428                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6429                            tx_id: header.tx_id,
6430                        },
6431                    })
6432                }
6433                0x4aa3340a1a26b89c => {
6434                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6435                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6436                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6437                    let control_handle = BaseDatagramSocketControlHandle {
6438                        inner: this.inner.clone(),
6439                    };
6440                    Ok(BaseDatagramSocketRequest::GetIpv6Only {
6441                        responder: BaseDatagramSocketGetIpv6OnlyResponder {
6442                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6443                            tx_id: header.tx_id,
6444                        },
6445                    })
6446                }
6447                0x58f07c8788d099a0 => {
6448                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6449                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6450                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
6451                    let control_handle = BaseDatagramSocketControlHandle {
6452                        inner: this.inner.clone(),
6453                    };
6454                    Ok(BaseDatagramSocketRequest::SetIpv6ReceiveTrafficClass {value: req.value,
6455
6456                        responder: BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
6457                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6458                            tx_id: header.tx_id,
6459                        },
6460                    })
6461                }
6462                0x2e334df1da553ffa => {
6463                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6464                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6465                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6466                    let control_handle = BaseDatagramSocketControlHandle {
6467                        inner: this.inner.clone(),
6468                    };
6469                    Ok(BaseDatagramSocketRequest::GetIpv6ReceiveTrafficClass {
6470                        responder: BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
6471                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6472                            tx_id: header.tx_id,
6473                        },
6474                    })
6475                }
6476                0x6af077800c5a0b4f => {
6477                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6478                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6TrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6479                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
6480                    let control_handle = BaseDatagramSocketControlHandle {
6481                        inner: this.inner.clone(),
6482                    };
6483                    Ok(BaseDatagramSocketRequest::SetIpv6TrafficClass {value: req.value,
6484
6485                        responder: BaseDatagramSocketSetIpv6TrafficClassResponder {
6486                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6487                            tx_id: header.tx_id,
6488                        },
6489                    })
6490                }
6491                0x6baf6eed8fc2f04 => {
6492                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6493                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6494                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6495                    let control_handle = BaseDatagramSocketControlHandle {
6496                        inner: this.inner.clone(),
6497                    };
6498                    Ok(BaseDatagramSocketRequest::GetIpv6TrafficClass {
6499                        responder: BaseDatagramSocketGetIpv6TrafficClassResponder {
6500                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6501                            tx_id: header.tx_id,
6502                        },
6503                    })
6504                }
6505                0x19259775b1a92768 => {
6506                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6507                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceivePacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
6508                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
6509                    let control_handle = BaseDatagramSocketControlHandle {
6510                        inner: this.inner.clone(),
6511                    };
6512                    Ok(BaseDatagramSocketRequest::SetIpv6ReceivePacketInfo {value: req.value,
6513
6514                        responder: BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
6515                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6516                            tx_id: header.tx_id,
6517                        },
6518                    })
6519                }
6520                0x7acd4a2775baec75 => {
6521                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6522                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6523                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6524                    let control_handle = BaseDatagramSocketControlHandle {
6525                        inner: this.inner.clone(),
6526                    };
6527                    Ok(BaseDatagramSocketRequest::GetIpv6ReceivePacketInfo {
6528                        responder: BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
6529                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6530                            tx_id: header.tx_id,
6531                        },
6532                    })
6533                }
6534                0x38bf28f0dafdbac0 => {
6535                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6536                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6537                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6538                    let control_handle = BaseDatagramSocketControlHandle {
6539                        inner: this.inner.clone(),
6540                    };
6541                    Ok(BaseDatagramSocketRequest::GetOriginalDestination {
6542                        responder: BaseDatagramSocketGetOriginalDestinationResponder {
6543                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6544                            tx_id: header.tx_id,
6545                        },
6546                    })
6547                }
6548                0x48aa0a1f6a32d2ed => {
6549                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6550                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
6551                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6552                    let control_handle = BaseDatagramSocketControlHandle {
6553                        inner: this.inner.clone(),
6554                    };
6555                    Ok(BaseDatagramSocketRequest::GetInfo {
6556                        responder: BaseDatagramSocketGetInfoResponder {
6557                            control_handle: std::mem::ManuallyDrop::new(control_handle),
6558                            tx_id: header.tx_id,
6559                        },
6560                    })
6561                }
6562                _ => Err(fidl::Error::UnknownOrdinal {
6563                    ordinal: header.ordinal,
6564                    protocol_name: <BaseDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
6565                }),
6566            }))
6567            },
6568        )
6569    }
6570}
6571
6572/// Base protocol shared by all datagram sockets.
6573///
6574/// Complete implementations of a datagram socket should compose this protocol.
6575#[derive(Debug)]
6576pub enum BaseDatagramSocketRequest {
6577    Clone {
6578        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
6579        control_handle: BaseDatagramSocketControlHandle,
6580    },
6581    /// Terminates the connection.
6582    ///
6583    /// After calling `Close`, the client must not send any other requests.
6584    ///
6585    /// Servers, after sending the status response, should close the connection
6586    /// regardless of status and without sending an epitaph.
6587    ///
6588    /// Closing the client end of the channel should be semantically equivalent
6589    /// to calling `Close` without knowing when the close has completed or its
6590    /// status.
6591    Close {
6592        responder: BaseDatagramSocketCloseResponder,
6593    },
6594    Query {
6595        responder: BaseDatagramSocketQueryResponder,
6596    },
6597    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
6598    SetReuseAddress {
6599        value: bool,
6600        responder: BaseDatagramSocketSetReuseAddressResponder,
6601    },
6602    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
6603    GetReuseAddress {
6604        responder: BaseDatagramSocketGetReuseAddressResponder,
6605    },
6606    /// Get `SOL_SOCKET` -> `SO_ERROR`.
6607    /// Returns the last error if there is an error set on the socket.
6608    GetError {
6609        responder: BaseDatagramSocketGetErrorResponder,
6610    },
6611    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
6612    SetBroadcast {
6613        value: bool,
6614        responder: BaseDatagramSocketSetBroadcastResponder,
6615    },
6616    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
6617    GetBroadcast {
6618        responder: BaseDatagramSocketGetBroadcastResponder,
6619    },
6620    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
6621    SetSendBuffer {
6622        value_bytes: u64,
6623        responder: BaseDatagramSocketSetSendBufferResponder,
6624    },
6625    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
6626    GetSendBuffer {
6627        responder: BaseDatagramSocketGetSendBufferResponder,
6628    },
6629    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
6630    SetReceiveBuffer {
6631        value_bytes: u64,
6632        responder: BaseDatagramSocketSetReceiveBufferResponder,
6633    },
6634    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
6635    GetReceiveBuffer {
6636        responder: BaseDatagramSocketGetReceiveBufferResponder,
6637    },
6638    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
6639    SetKeepAlive {
6640        value: bool,
6641        responder: BaseDatagramSocketSetKeepAliveResponder,
6642    },
6643    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
6644    GetKeepAlive {
6645        responder: BaseDatagramSocketGetKeepAliveResponder,
6646    },
6647    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
6648    SetOutOfBandInline {
6649        value: bool,
6650        responder: BaseDatagramSocketSetOutOfBandInlineResponder,
6651    },
6652    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
6653    GetOutOfBandInline {
6654        responder: BaseDatagramSocketGetOutOfBandInlineResponder,
6655    },
6656    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
6657    SetNoCheck {
6658        value: bool,
6659        responder: BaseDatagramSocketSetNoCheckResponder,
6660    },
6661    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
6662    GetNoCheck {
6663        responder: BaseDatagramSocketGetNoCheckResponder,
6664    },
6665    /// Set `SOL_SOCKET` -> `SO_LINGER`.
6666    SetLinger {
6667        linger: bool,
6668        length_secs: u32,
6669        responder: BaseDatagramSocketSetLingerResponder,
6670    },
6671    /// Get `SOL_SOCKET` -> `SO_LINGER`.
6672    GetLinger {
6673        responder: BaseDatagramSocketGetLingerResponder,
6674    },
6675    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
6676    SetReusePort {
6677        value: bool,
6678        responder: BaseDatagramSocketSetReusePortResponder,
6679    },
6680    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
6681    GetReusePort {
6682        responder: BaseDatagramSocketGetReusePortResponder,
6683    },
6684    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
6685    GetAcceptConn {
6686        responder: BaseDatagramSocketGetAcceptConnResponder,
6687    },
6688    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
6689    SetBindToDevice {
6690        value: String,
6691        responder: BaseDatagramSocketSetBindToDeviceResponder,
6692    },
6693    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
6694    GetBindToDevice {
6695        responder: BaseDatagramSocketGetBindToDeviceResponder,
6696    },
6697    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
6698    /// If `value` is 0, this clears the bound interface.
6699    SetBindToInterfaceIndex {
6700        value: u64,
6701        responder: BaseDatagramSocketSetBindToInterfaceIndexResponder,
6702    },
6703    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
6704    GetBindToInterfaceIndex {
6705        responder: BaseDatagramSocketGetBindToInterfaceIndexResponder,
6706    },
6707    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
6708    SetTimestamp {
6709        value: TimestampOption,
6710        responder: BaseDatagramSocketSetTimestampResponder,
6711    },
6712    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
6713    GetTimestamp {
6714        responder: BaseDatagramSocketGetTimestampResponder,
6715    },
6716    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
6717    /// unlike the standard SO_MARK, this API has multiple mark domains and each
6718    /// mark can be set independently in each domain.
6719    SetMark {
6720        domain: fidl_fuchsia_net::MarkDomain,
6721        mark: OptionalUint32,
6722        responder: BaseDatagramSocketSetMarkResponder,
6723    },
6724    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
6725    /// unlike the standard SO_MARK, this API has multiple mark domains and each
6726    /// mark can be retrieved independently in each domain.
6727    GetMark {
6728        domain: fidl_fuchsia_net::MarkDomain,
6729        responder: BaseDatagramSocketGetMarkResponder,
6730    },
6731    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
6732    GetCookie {
6733        responder: BaseDatagramSocketGetCookieResponder,
6734    },
6735    /// Sets the local address used for the socket.
6736    Bind {
6737        addr: fidl_fuchsia_net::SocketAddress,
6738        responder: BaseDatagramSocketBindResponder,
6739    },
6740    /// Initiates a connection to a remote address.
6741    Connect {
6742        addr: fidl_fuchsia_net::SocketAddress,
6743        responder: BaseDatagramSocketConnectResponder,
6744    },
6745    /// Clears connection information from this socket.
6746    Disconnect {
6747        responder: BaseDatagramSocketDisconnectResponder,
6748    },
6749    /// Retrieves the local socket address.
6750    GetSockName {
6751        responder: BaseDatagramSocketGetSockNameResponder,
6752    },
6753    /// Retrieves the remote socket address.
6754    GetPeerName {
6755        responder: BaseDatagramSocketGetPeerNameResponder,
6756    },
6757    /// Shuts down part of the socket.
6758    Shutdown {
6759        mode: ShutdownMode,
6760        responder: BaseDatagramSocketShutdownResponder,
6761    },
6762    /// Set `SOL_IP` -> `IP_TOS`.
6763    SetIpTypeOfService {
6764        value: u8,
6765        responder: BaseDatagramSocketSetIpTypeOfServiceResponder,
6766    },
6767    /// Get `SOL_IP` -> `IP_TOS`.
6768    GetIpTypeOfService {
6769        responder: BaseDatagramSocketGetIpTypeOfServiceResponder,
6770    },
6771    /// Set `SOL_IP` -> `IP_TTL`.
6772    SetIpTtl {
6773        value: OptionalUint8,
6774        responder: BaseDatagramSocketSetIpTtlResponder,
6775    },
6776    /// Get `SOL_IP` -> `IP_TTL`.
6777    GetIpTtl {
6778        responder: BaseDatagramSocketGetIpTtlResponder,
6779    },
6780    /// Set `SOL_IP` -> `IP_PKTINFO`.
6781    SetIpPacketInfo {
6782        value: bool,
6783        responder: BaseDatagramSocketSetIpPacketInfoResponder,
6784    },
6785    /// Get `SOL_IP` -> `IP_PKTINFO`.
6786    GetIpPacketInfo {
6787        responder: BaseDatagramSocketGetIpPacketInfoResponder,
6788    },
6789    /// Set `SOL_IP` -> `IP_RECVTOS`.
6790    SetIpReceiveTypeOfService {
6791        value: bool,
6792        responder: BaseDatagramSocketSetIpReceiveTypeOfServiceResponder,
6793    },
6794    /// Get `SOL_IP` -> `IP_RECVTOS`.
6795    GetIpReceiveTypeOfService {
6796        responder: BaseDatagramSocketGetIpReceiveTypeOfServiceResponder,
6797    },
6798    /// Set `SOL_IP` -> `IP_RECVTTL`.
6799    SetIpReceiveTtl {
6800        value: bool,
6801        responder: BaseDatagramSocketSetIpReceiveTtlResponder,
6802    },
6803    /// Get `SOL_IP` -> `IP_RECVTTL`.
6804    GetIpReceiveTtl {
6805        responder: BaseDatagramSocketGetIpReceiveTtlResponder,
6806    },
6807    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
6808    SetIpMulticastInterface {
6809        iface: u64,
6810        address: fidl_fuchsia_net::Ipv4Address,
6811        responder: BaseDatagramSocketSetIpMulticastInterfaceResponder,
6812    },
6813    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
6814    GetIpMulticastInterface {
6815        responder: BaseDatagramSocketGetIpMulticastInterfaceResponder,
6816    },
6817    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
6818    SetIpMulticastTtl {
6819        value: OptionalUint8,
6820        responder: BaseDatagramSocketSetIpMulticastTtlResponder,
6821    },
6822    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
6823    GetIpMulticastTtl {
6824        responder: BaseDatagramSocketGetIpMulticastTtlResponder,
6825    },
6826    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
6827    SetIpMulticastLoopback {
6828        value: bool,
6829        responder: BaseDatagramSocketSetIpMulticastLoopbackResponder,
6830    },
6831    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
6832    GetIpMulticastLoopback {
6833        responder: BaseDatagramSocketGetIpMulticastLoopbackResponder,
6834    },
6835    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
6836    AddIpMembership {
6837        membership: IpMulticastMembership,
6838        responder: BaseDatagramSocketAddIpMembershipResponder,
6839    },
6840    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
6841    DropIpMembership {
6842        membership: IpMulticastMembership,
6843        responder: BaseDatagramSocketDropIpMembershipResponder,
6844    },
6845    /// Set `SOL_IP` -> `IP_TRANSPARENT`
6846    SetIpTransparent {
6847        value: bool,
6848        responder: BaseDatagramSocketSetIpTransparentResponder,
6849    },
6850    /// Get `SOL_IP` -> `IP_TRANSPARENT`
6851    GetIpTransparent {
6852        responder: BaseDatagramSocketGetIpTransparentResponder,
6853    },
6854    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
6855    SetIpReceiveOriginalDestinationAddress {
6856        value: bool,
6857        responder: BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder,
6858    },
6859    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
6860    GetIpReceiveOriginalDestinationAddress {
6861        responder: BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder,
6862    },
6863    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
6864    AddIpv6Membership {
6865        membership: Ipv6MulticastMembership,
6866        responder: BaseDatagramSocketAddIpv6MembershipResponder,
6867    },
6868    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
6869    DropIpv6Membership {
6870        membership: Ipv6MulticastMembership,
6871        responder: BaseDatagramSocketDropIpv6MembershipResponder,
6872    },
6873    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
6874    SetIpv6MulticastInterface {
6875        value: u64,
6876        responder: BaseDatagramSocketSetIpv6MulticastInterfaceResponder,
6877    },
6878    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
6879    GetIpv6MulticastInterface {
6880        responder: BaseDatagramSocketGetIpv6MulticastInterfaceResponder,
6881    },
6882    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
6883    SetIpv6UnicastHops {
6884        value: OptionalUint8,
6885        responder: BaseDatagramSocketSetIpv6UnicastHopsResponder,
6886    },
6887    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
6888    GetIpv6UnicastHops {
6889        responder: BaseDatagramSocketGetIpv6UnicastHopsResponder,
6890    },
6891    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
6892    SetIpv6ReceiveHopLimit {
6893        value: bool,
6894        responder: BaseDatagramSocketSetIpv6ReceiveHopLimitResponder,
6895    },
6896    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
6897    GetIpv6ReceiveHopLimit {
6898        responder: BaseDatagramSocketGetIpv6ReceiveHopLimitResponder,
6899    },
6900    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
6901    SetIpv6MulticastHops {
6902        value: OptionalUint8,
6903        responder: BaseDatagramSocketSetIpv6MulticastHopsResponder,
6904    },
6905    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
6906    GetIpv6MulticastHops {
6907        responder: BaseDatagramSocketGetIpv6MulticastHopsResponder,
6908    },
6909    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
6910    SetIpv6MulticastLoopback {
6911        value: bool,
6912        responder: BaseDatagramSocketSetIpv6MulticastLoopbackResponder,
6913    },
6914    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
6915    GetIpv6MulticastLoopback {
6916        responder: BaseDatagramSocketGetIpv6MulticastLoopbackResponder,
6917    },
6918    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
6919    SetIpv6Only {
6920        value: bool,
6921        responder: BaseDatagramSocketSetIpv6OnlyResponder,
6922    },
6923    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
6924    GetIpv6Only {
6925        responder: BaseDatagramSocketGetIpv6OnlyResponder,
6926    },
6927    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
6928    SetIpv6ReceiveTrafficClass {
6929        value: bool,
6930        responder: BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder,
6931    },
6932    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
6933    GetIpv6ReceiveTrafficClass {
6934        responder: BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder,
6935    },
6936    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
6937    SetIpv6TrafficClass {
6938        value: OptionalUint8,
6939        responder: BaseDatagramSocketSetIpv6TrafficClassResponder,
6940    },
6941    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
6942    GetIpv6TrafficClass {
6943        responder: BaseDatagramSocketGetIpv6TrafficClassResponder,
6944    },
6945    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
6946    SetIpv6ReceivePacketInfo {
6947        value: bool,
6948        responder: BaseDatagramSocketSetIpv6ReceivePacketInfoResponder,
6949    },
6950    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
6951    GetIpv6ReceivePacketInfo {
6952        responder: BaseDatagramSocketGetIpv6ReceivePacketInfoResponder,
6953    },
6954    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
6955    GetOriginalDestination {
6956        responder: BaseDatagramSocketGetOriginalDestinationResponder,
6957    },
6958    /// Retrieves creation information from the socket.
6959    ///
6960    /// - response `domain` the socket's associated domain.
6961    /// - response `proto` the socket's associated protocol.
6962    GetInfo {
6963        responder: BaseDatagramSocketGetInfoResponder,
6964    },
6965}
6966
6967impl BaseDatagramSocketRequest {
6968    #[allow(irrefutable_let_patterns)]
6969    pub fn into_clone(
6970        self,
6971    ) -> Option<(
6972        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
6973        BaseDatagramSocketControlHandle,
6974    )> {
6975        if let BaseDatagramSocketRequest::Clone { request, control_handle } = self {
6976            Some((request, control_handle))
6977        } else {
6978            None
6979        }
6980    }
6981
6982    #[allow(irrefutable_let_patterns)]
6983    pub fn into_close(self) -> Option<(BaseDatagramSocketCloseResponder)> {
6984        if let BaseDatagramSocketRequest::Close { responder } = self {
6985            Some((responder))
6986        } else {
6987            None
6988        }
6989    }
6990
6991    #[allow(irrefutable_let_patterns)]
6992    pub fn into_query(self) -> Option<(BaseDatagramSocketQueryResponder)> {
6993        if let BaseDatagramSocketRequest::Query { responder } = self {
6994            Some((responder))
6995        } else {
6996            None
6997        }
6998    }
6999
7000    #[allow(irrefutable_let_patterns)]
7001    pub fn into_set_reuse_address(
7002        self,
7003    ) -> Option<(bool, BaseDatagramSocketSetReuseAddressResponder)> {
7004        if let BaseDatagramSocketRequest::SetReuseAddress { value, responder } = self {
7005            Some((value, responder))
7006        } else {
7007            None
7008        }
7009    }
7010
7011    #[allow(irrefutable_let_patterns)]
7012    pub fn into_get_reuse_address(self) -> Option<(BaseDatagramSocketGetReuseAddressResponder)> {
7013        if let BaseDatagramSocketRequest::GetReuseAddress { responder } = self {
7014            Some((responder))
7015        } else {
7016            None
7017        }
7018    }
7019
7020    #[allow(irrefutable_let_patterns)]
7021    pub fn into_get_error(self) -> Option<(BaseDatagramSocketGetErrorResponder)> {
7022        if let BaseDatagramSocketRequest::GetError { responder } = self {
7023            Some((responder))
7024        } else {
7025            None
7026        }
7027    }
7028
7029    #[allow(irrefutable_let_patterns)]
7030    pub fn into_set_broadcast(self) -> Option<(bool, BaseDatagramSocketSetBroadcastResponder)> {
7031        if let BaseDatagramSocketRequest::SetBroadcast { value, responder } = self {
7032            Some((value, responder))
7033        } else {
7034            None
7035        }
7036    }
7037
7038    #[allow(irrefutable_let_patterns)]
7039    pub fn into_get_broadcast(self) -> Option<(BaseDatagramSocketGetBroadcastResponder)> {
7040        if let BaseDatagramSocketRequest::GetBroadcast { responder } = self {
7041            Some((responder))
7042        } else {
7043            None
7044        }
7045    }
7046
7047    #[allow(irrefutable_let_patterns)]
7048    pub fn into_set_send_buffer(self) -> Option<(u64, BaseDatagramSocketSetSendBufferResponder)> {
7049        if let BaseDatagramSocketRequest::SetSendBuffer { value_bytes, responder } = self {
7050            Some((value_bytes, responder))
7051        } else {
7052            None
7053        }
7054    }
7055
7056    #[allow(irrefutable_let_patterns)]
7057    pub fn into_get_send_buffer(self) -> Option<(BaseDatagramSocketGetSendBufferResponder)> {
7058        if let BaseDatagramSocketRequest::GetSendBuffer { responder } = self {
7059            Some((responder))
7060        } else {
7061            None
7062        }
7063    }
7064
7065    #[allow(irrefutable_let_patterns)]
7066    pub fn into_set_receive_buffer(
7067        self,
7068    ) -> Option<(u64, BaseDatagramSocketSetReceiveBufferResponder)> {
7069        if let BaseDatagramSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
7070            Some((value_bytes, responder))
7071        } else {
7072            None
7073        }
7074    }
7075
7076    #[allow(irrefutable_let_patterns)]
7077    pub fn into_get_receive_buffer(self) -> Option<(BaseDatagramSocketGetReceiveBufferResponder)> {
7078        if let BaseDatagramSocketRequest::GetReceiveBuffer { responder } = self {
7079            Some((responder))
7080        } else {
7081            None
7082        }
7083    }
7084
7085    #[allow(irrefutable_let_patterns)]
7086    pub fn into_set_keep_alive(self) -> Option<(bool, BaseDatagramSocketSetKeepAliveResponder)> {
7087        if let BaseDatagramSocketRequest::SetKeepAlive { value, responder } = self {
7088            Some((value, responder))
7089        } else {
7090            None
7091        }
7092    }
7093
7094    #[allow(irrefutable_let_patterns)]
7095    pub fn into_get_keep_alive(self) -> Option<(BaseDatagramSocketGetKeepAliveResponder)> {
7096        if let BaseDatagramSocketRequest::GetKeepAlive { responder } = self {
7097            Some((responder))
7098        } else {
7099            None
7100        }
7101    }
7102
7103    #[allow(irrefutable_let_patterns)]
7104    pub fn into_set_out_of_band_inline(
7105        self,
7106    ) -> Option<(bool, BaseDatagramSocketSetOutOfBandInlineResponder)> {
7107        if let BaseDatagramSocketRequest::SetOutOfBandInline { value, responder } = self {
7108            Some((value, responder))
7109        } else {
7110            None
7111        }
7112    }
7113
7114    #[allow(irrefutable_let_patterns)]
7115    pub fn into_get_out_of_band_inline(
7116        self,
7117    ) -> Option<(BaseDatagramSocketGetOutOfBandInlineResponder)> {
7118        if let BaseDatagramSocketRequest::GetOutOfBandInline { responder } = self {
7119            Some((responder))
7120        } else {
7121            None
7122        }
7123    }
7124
7125    #[allow(irrefutable_let_patterns)]
7126    pub fn into_set_no_check(self) -> Option<(bool, BaseDatagramSocketSetNoCheckResponder)> {
7127        if let BaseDatagramSocketRequest::SetNoCheck { value, responder } = self {
7128            Some((value, responder))
7129        } else {
7130            None
7131        }
7132    }
7133
7134    #[allow(irrefutable_let_patterns)]
7135    pub fn into_get_no_check(self) -> Option<(BaseDatagramSocketGetNoCheckResponder)> {
7136        if let BaseDatagramSocketRequest::GetNoCheck { responder } = self {
7137            Some((responder))
7138        } else {
7139            None
7140        }
7141    }
7142
7143    #[allow(irrefutable_let_patterns)]
7144    pub fn into_set_linger(self) -> Option<(bool, u32, BaseDatagramSocketSetLingerResponder)> {
7145        if let BaseDatagramSocketRequest::SetLinger { linger, length_secs, responder } = self {
7146            Some((linger, length_secs, responder))
7147        } else {
7148            None
7149        }
7150    }
7151
7152    #[allow(irrefutable_let_patterns)]
7153    pub fn into_get_linger(self) -> Option<(BaseDatagramSocketGetLingerResponder)> {
7154        if let BaseDatagramSocketRequest::GetLinger { responder } = self {
7155            Some((responder))
7156        } else {
7157            None
7158        }
7159    }
7160
7161    #[allow(irrefutable_let_patterns)]
7162    pub fn into_set_reuse_port(self) -> Option<(bool, BaseDatagramSocketSetReusePortResponder)> {
7163        if let BaseDatagramSocketRequest::SetReusePort { value, responder } = self {
7164            Some((value, responder))
7165        } else {
7166            None
7167        }
7168    }
7169
7170    #[allow(irrefutable_let_patterns)]
7171    pub fn into_get_reuse_port(self) -> Option<(BaseDatagramSocketGetReusePortResponder)> {
7172        if let BaseDatagramSocketRequest::GetReusePort { responder } = self {
7173            Some((responder))
7174        } else {
7175            None
7176        }
7177    }
7178
7179    #[allow(irrefutable_let_patterns)]
7180    pub fn into_get_accept_conn(self) -> Option<(BaseDatagramSocketGetAcceptConnResponder)> {
7181        if let BaseDatagramSocketRequest::GetAcceptConn { responder } = self {
7182            Some((responder))
7183        } else {
7184            None
7185        }
7186    }
7187
7188    #[allow(irrefutable_let_patterns)]
7189    pub fn into_set_bind_to_device(
7190        self,
7191    ) -> Option<(String, BaseDatagramSocketSetBindToDeviceResponder)> {
7192        if let BaseDatagramSocketRequest::SetBindToDevice { value, responder } = self {
7193            Some((value, responder))
7194        } else {
7195            None
7196        }
7197    }
7198
7199    #[allow(irrefutable_let_patterns)]
7200    pub fn into_get_bind_to_device(self) -> Option<(BaseDatagramSocketGetBindToDeviceResponder)> {
7201        if let BaseDatagramSocketRequest::GetBindToDevice { responder } = self {
7202            Some((responder))
7203        } else {
7204            None
7205        }
7206    }
7207
7208    #[allow(irrefutable_let_patterns)]
7209    pub fn into_set_bind_to_interface_index(
7210        self,
7211    ) -> Option<(u64, BaseDatagramSocketSetBindToInterfaceIndexResponder)> {
7212        if let BaseDatagramSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
7213            Some((value, responder))
7214        } else {
7215            None
7216        }
7217    }
7218
7219    #[allow(irrefutable_let_patterns)]
7220    pub fn into_get_bind_to_interface_index(
7221        self,
7222    ) -> Option<(BaseDatagramSocketGetBindToInterfaceIndexResponder)> {
7223        if let BaseDatagramSocketRequest::GetBindToInterfaceIndex { responder } = self {
7224            Some((responder))
7225        } else {
7226            None
7227        }
7228    }
7229
7230    #[allow(irrefutable_let_patterns)]
7231    pub fn into_set_timestamp(
7232        self,
7233    ) -> Option<(TimestampOption, BaseDatagramSocketSetTimestampResponder)> {
7234        if let BaseDatagramSocketRequest::SetTimestamp { value, responder } = self {
7235            Some((value, responder))
7236        } else {
7237            None
7238        }
7239    }
7240
7241    #[allow(irrefutable_let_patterns)]
7242    pub fn into_get_timestamp(self) -> Option<(BaseDatagramSocketGetTimestampResponder)> {
7243        if let BaseDatagramSocketRequest::GetTimestamp { responder } = self {
7244            Some((responder))
7245        } else {
7246            None
7247        }
7248    }
7249
7250    #[allow(irrefutable_let_patterns)]
7251    pub fn into_set_mark(
7252        self,
7253    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, BaseDatagramSocketSetMarkResponder)>
7254    {
7255        if let BaseDatagramSocketRequest::SetMark { domain, mark, responder } = self {
7256            Some((domain, mark, responder))
7257        } else {
7258            None
7259        }
7260    }
7261
7262    #[allow(irrefutable_let_patterns)]
7263    pub fn into_get_mark(
7264        self,
7265    ) -> Option<(fidl_fuchsia_net::MarkDomain, BaseDatagramSocketGetMarkResponder)> {
7266        if let BaseDatagramSocketRequest::GetMark { domain, responder } = self {
7267            Some((domain, responder))
7268        } else {
7269            None
7270        }
7271    }
7272
7273    #[allow(irrefutable_let_patterns)]
7274    pub fn into_get_cookie(self) -> Option<(BaseDatagramSocketGetCookieResponder)> {
7275        if let BaseDatagramSocketRequest::GetCookie { responder } = self {
7276            Some((responder))
7277        } else {
7278            None
7279        }
7280    }
7281
7282    #[allow(irrefutable_let_patterns)]
7283    pub fn into_bind(
7284        self,
7285    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseDatagramSocketBindResponder)> {
7286        if let BaseDatagramSocketRequest::Bind { addr, responder } = self {
7287            Some((addr, responder))
7288        } else {
7289            None
7290        }
7291    }
7292
7293    #[allow(irrefutable_let_patterns)]
7294    pub fn into_connect(
7295        self,
7296    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseDatagramSocketConnectResponder)> {
7297        if let BaseDatagramSocketRequest::Connect { addr, responder } = self {
7298            Some((addr, responder))
7299        } else {
7300            None
7301        }
7302    }
7303
7304    #[allow(irrefutable_let_patterns)]
7305    pub fn into_disconnect(self) -> Option<(BaseDatagramSocketDisconnectResponder)> {
7306        if let BaseDatagramSocketRequest::Disconnect { responder } = self {
7307            Some((responder))
7308        } else {
7309            None
7310        }
7311    }
7312
7313    #[allow(irrefutable_let_patterns)]
7314    pub fn into_get_sock_name(self) -> Option<(BaseDatagramSocketGetSockNameResponder)> {
7315        if let BaseDatagramSocketRequest::GetSockName { responder } = self {
7316            Some((responder))
7317        } else {
7318            None
7319        }
7320    }
7321
7322    #[allow(irrefutable_let_patterns)]
7323    pub fn into_get_peer_name(self) -> Option<(BaseDatagramSocketGetPeerNameResponder)> {
7324        if let BaseDatagramSocketRequest::GetPeerName { responder } = self {
7325            Some((responder))
7326        } else {
7327            None
7328        }
7329    }
7330
7331    #[allow(irrefutable_let_patterns)]
7332    pub fn into_shutdown(self) -> Option<(ShutdownMode, BaseDatagramSocketShutdownResponder)> {
7333        if let BaseDatagramSocketRequest::Shutdown { mode, responder } = self {
7334            Some((mode, responder))
7335        } else {
7336            None
7337        }
7338    }
7339
7340    #[allow(irrefutable_let_patterns)]
7341    pub fn into_set_ip_type_of_service(
7342        self,
7343    ) -> Option<(u8, BaseDatagramSocketSetIpTypeOfServiceResponder)> {
7344        if let BaseDatagramSocketRequest::SetIpTypeOfService { value, responder } = self {
7345            Some((value, responder))
7346        } else {
7347            None
7348        }
7349    }
7350
7351    #[allow(irrefutable_let_patterns)]
7352    pub fn into_get_ip_type_of_service(
7353        self,
7354    ) -> Option<(BaseDatagramSocketGetIpTypeOfServiceResponder)> {
7355        if let BaseDatagramSocketRequest::GetIpTypeOfService { responder } = self {
7356            Some((responder))
7357        } else {
7358            None
7359        }
7360    }
7361
7362    #[allow(irrefutable_let_patterns)]
7363    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, BaseDatagramSocketSetIpTtlResponder)> {
7364        if let BaseDatagramSocketRequest::SetIpTtl { value, responder } = self {
7365            Some((value, responder))
7366        } else {
7367            None
7368        }
7369    }
7370
7371    #[allow(irrefutable_let_patterns)]
7372    pub fn into_get_ip_ttl(self) -> Option<(BaseDatagramSocketGetIpTtlResponder)> {
7373        if let BaseDatagramSocketRequest::GetIpTtl { responder } = self {
7374            Some((responder))
7375        } else {
7376            None
7377        }
7378    }
7379
7380    #[allow(irrefutable_let_patterns)]
7381    pub fn into_set_ip_packet_info(
7382        self,
7383    ) -> Option<(bool, BaseDatagramSocketSetIpPacketInfoResponder)> {
7384        if let BaseDatagramSocketRequest::SetIpPacketInfo { value, responder } = self {
7385            Some((value, responder))
7386        } else {
7387            None
7388        }
7389    }
7390
7391    #[allow(irrefutable_let_patterns)]
7392    pub fn into_get_ip_packet_info(self) -> Option<(BaseDatagramSocketGetIpPacketInfoResponder)> {
7393        if let BaseDatagramSocketRequest::GetIpPacketInfo { responder } = self {
7394            Some((responder))
7395        } else {
7396            None
7397        }
7398    }
7399
7400    #[allow(irrefutable_let_patterns)]
7401    pub fn into_set_ip_receive_type_of_service(
7402        self,
7403    ) -> Option<(bool, BaseDatagramSocketSetIpReceiveTypeOfServiceResponder)> {
7404        if let BaseDatagramSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
7405            Some((value, responder))
7406        } else {
7407            None
7408        }
7409    }
7410
7411    #[allow(irrefutable_let_patterns)]
7412    pub fn into_get_ip_receive_type_of_service(
7413        self,
7414    ) -> Option<(BaseDatagramSocketGetIpReceiveTypeOfServiceResponder)> {
7415        if let BaseDatagramSocketRequest::GetIpReceiveTypeOfService { responder } = self {
7416            Some((responder))
7417        } else {
7418            None
7419        }
7420    }
7421
7422    #[allow(irrefutable_let_patterns)]
7423    pub fn into_set_ip_receive_ttl(
7424        self,
7425    ) -> Option<(bool, BaseDatagramSocketSetIpReceiveTtlResponder)> {
7426        if let BaseDatagramSocketRequest::SetIpReceiveTtl { value, responder } = self {
7427            Some((value, responder))
7428        } else {
7429            None
7430        }
7431    }
7432
7433    #[allow(irrefutable_let_patterns)]
7434    pub fn into_get_ip_receive_ttl(self) -> Option<(BaseDatagramSocketGetIpReceiveTtlResponder)> {
7435        if let BaseDatagramSocketRequest::GetIpReceiveTtl { responder } = self {
7436            Some((responder))
7437        } else {
7438            None
7439        }
7440    }
7441
7442    #[allow(irrefutable_let_patterns)]
7443    pub fn into_set_ip_multicast_interface(
7444        self,
7445    ) -> Option<(
7446        u64,
7447        fidl_fuchsia_net::Ipv4Address,
7448        BaseDatagramSocketSetIpMulticastInterfaceResponder,
7449    )> {
7450        if let BaseDatagramSocketRequest::SetIpMulticastInterface { iface, address, responder } =
7451            self
7452        {
7453            Some((iface, address, responder))
7454        } else {
7455            None
7456        }
7457    }
7458
7459    #[allow(irrefutable_let_patterns)]
7460    pub fn into_get_ip_multicast_interface(
7461        self,
7462    ) -> Option<(BaseDatagramSocketGetIpMulticastInterfaceResponder)> {
7463        if let BaseDatagramSocketRequest::GetIpMulticastInterface { responder } = self {
7464            Some((responder))
7465        } else {
7466            None
7467        }
7468    }
7469
7470    #[allow(irrefutable_let_patterns)]
7471    pub fn into_set_ip_multicast_ttl(
7472        self,
7473    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpMulticastTtlResponder)> {
7474        if let BaseDatagramSocketRequest::SetIpMulticastTtl { value, responder } = self {
7475            Some((value, responder))
7476        } else {
7477            None
7478        }
7479    }
7480
7481    #[allow(irrefutable_let_patterns)]
7482    pub fn into_get_ip_multicast_ttl(
7483        self,
7484    ) -> Option<(BaseDatagramSocketGetIpMulticastTtlResponder)> {
7485        if let BaseDatagramSocketRequest::GetIpMulticastTtl { responder } = self {
7486            Some((responder))
7487        } else {
7488            None
7489        }
7490    }
7491
7492    #[allow(irrefutable_let_patterns)]
7493    pub fn into_set_ip_multicast_loopback(
7494        self,
7495    ) -> Option<(bool, BaseDatagramSocketSetIpMulticastLoopbackResponder)> {
7496        if let BaseDatagramSocketRequest::SetIpMulticastLoopback { value, responder } = self {
7497            Some((value, responder))
7498        } else {
7499            None
7500        }
7501    }
7502
7503    #[allow(irrefutable_let_patterns)]
7504    pub fn into_get_ip_multicast_loopback(
7505        self,
7506    ) -> Option<(BaseDatagramSocketGetIpMulticastLoopbackResponder)> {
7507        if let BaseDatagramSocketRequest::GetIpMulticastLoopback { responder } = self {
7508            Some((responder))
7509        } else {
7510            None
7511        }
7512    }
7513
7514    #[allow(irrefutable_let_patterns)]
7515    pub fn into_add_ip_membership(
7516        self,
7517    ) -> Option<(IpMulticastMembership, BaseDatagramSocketAddIpMembershipResponder)> {
7518        if let BaseDatagramSocketRequest::AddIpMembership { membership, responder } = self {
7519            Some((membership, responder))
7520        } else {
7521            None
7522        }
7523    }
7524
7525    #[allow(irrefutable_let_patterns)]
7526    pub fn into_drop_ip_membership(
7527        self,
7528    ) -> Option<(IpMulticastMembership, BaseDatagramSocketDropIpMembershipResponder)> {
7529        if let BaseDatagramSocketRequest::DropIpMembership { membership, responder } = self {
7530            Some((membership, responder))
7531        } else {
7532            None
7533        }
7534    }
7535
7536    #[allow(irrefutable_let_patterns)]
7537    pub fn into_set_ip_transparent(
7538        self,
7539    ) -> Option<(bool, BaseDatagramSocketSetIpTransparentResponder)> {
7540        if let BaseDatagramSocketRequest::SetIpTransparent { value, responder } = self {
7541            Some((value, responder))
7542        } else {
7543            None
7544        }
7545    }
7546
7547    #[allow(irrefutable_let_patterns)]
7548    pub fn into_get_ip_transparent(self) -> Option<(BaseDatagramSocketGetIpTransparentResponder)> {
7549        if let BaseDatagramSocketRequest::GetIpTransparent { responder } = self {
7550            Some((responder))
7551        } else {
7552            None
7553        }
7554    }
7555
7556    #[allow(irrefutable_let_patterns)]
7557    pub fn into_set_ip_receive_original_destination_address(
7558        self,
7559    ) -> Option<(bool, BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder)> {
7560        if let BaseDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {
7561            value,
7562            responder,
7563        } = self
7564        {
7565            Some((value, responder))
7566        } else {
7567            None
7568        }
7569    }
7570
7571    #[allow(irrefutable_let_patterns)]
7572    pub fn into_get_ip_receive_original_destination_address(
7573        self,
7574    ) -> Option<(BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder)> {
7575        if let BaseDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } =
7576            self
7577        {
7578            Some((responder))
7579        } else {
7580            None
7581        }
7582    }
7583
7584    #[allow(irrefutable_let_patterns)]
7585    pub fn into_add_ipv6_membership(
7586        self,
7587    ) -> Option<(Ipv6MulticastMembership, BaseDatagramSocketAddIpv6MembershipResponder)> {
7588        if let BaseDatagramSocketRequest::AddIpv6Membership { membership, responder } = self {
7589            Some((membership, responder))
7590        } else {
7591            None
7592        }
7593    }
7594
7595    #[allow(irrefutable_let_patterns)]
7596    pub fn into_drop_ipv6_membership(
7597        self,
7598    ) -> Option<(Ipv6MulticastMembership, BaseDatagramSocketDropIpv6MembershipResponder)> {
7599        if let BaseDatagramSocketRequest::DropIpv6Membership { membership, responder } = self {
7600            Some((membership, responder))
7601        } else {
7602            None
7603        }
7604    }
7605
7606    #[allow(irrefutable_let_patterns)]
7607    pub fn into_set_ipv6_multicast_interface(
7608        self,
7609    ) -> Option<(u64, BaseDatagramSocketSetIpv6MulticastInterfaceResponder)> {
7610        if let BaseDatagramSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
7611            Some((value, responder))
7612        } else {
7613            None
7614        }
7615    }
7616
7617    #[allow(irrefutable_let_patterns)]
7618    pub fn into_get_ipv6_multicast_interface(
7619        self,
7620    ) -> Option<(BaseDatagramSocketGetIpv6MulticastInterfaceResponder)> {
7621        if let BaseDatagramSocketRequest::GetIpv6MulticastInterface { responder } = self {
7622            Some((responder))
7623        } else {
7624            None
7625        }
7626    }
7627
7628    #[allow(irrefutable_let_patterns)]
7629    pub fn into_set_ipv6_unicast_hops(
7630        self,
7631    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpv6UnicastHopsResponder)> {
7632        if let BaseDatagramSocketRequest::SetIpv6UnicastHops { value, responder } = self {
7633            Some((value, responder))
7634        } else {
7635            None
7636        }
7637    }
7638
7639    #[allow(irrefutable_let_patterns)]
7640    pub fn into_get_ipv6_unicast_hops(
7641        self,
7642    ) -> Option<(BaseDatagramSocketGetIpv6UnicastHopsResponder)> {
7643        if let BaseDatagramSocketRequest::GetIpv6UnicastHops { responder } = self {
7644            Some((responder))
7645        } else {
7646            None
7647        }
7648    }
7649
7650    #[allow(irrefutable_let_patterns)]
7651    pub fn into_set_ipv6_receive_hop_limit(
7652        self,
7653    ) -> Option<(bool, BaseDatagramSocketSetIpv6ReceiveHopLimitResponder)> {
7654        if let BaseDatagramSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
7655            Some((value, responder))
7656        } else {
7657            None
7658        }
7659    }
7660
7661    #[allow(irrefutable_let_patterns)]
7662    pub fn into_get_ipv6_receive_hop_limit(
7663        self,
7664    ) -> Option<(BaseDatagramSocketGetIpv6ReceiveHopLimitResponder)> {
7665        if let BaseDatagramSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
7666            Some((responder))
7667        } else {
7668            None
7669        }
7670    }
7671
7672    #[allow(irrefutable_let_patterns)]
7673    pub fn into_set_ipv6_multicast_hops(
7674        self,
7675    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpv6MulticastHopsResponder)> {
7676        if let BaseDatagramSocketRequest::SetIpv6MulticastHops { value, responder } = self {
7677            Some((value, responder))
7678        } else {
7679            None
7680        }
7681    }
7682
7683    #[allow(irrefutable_let_patterns)]
7684    pub fn into_get_ipv6_multicast_hops(
7685        self,
7686    ) -> Option<(BaseDatagramSocketGetIpv6MulticastHopsResponder)> {
7687        if let BaseDatagramSocketRequest::GetIpv6MulticastHops { responder } = self {
7688            Some((responder))
7689        } else {
7690            None
7691        }
7692    }
7693
7694    #[allow(irrefutable_let_patterns)]
7695    pub fn into_set_ipv6_multicast_loopback(
7696        self,
7697    ) -> Option<(bool, BaseDatagramSocketSetIpv6MulticastLoopbackResponder)> {
7698        if let BaseDatagramSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
7699            Some((value, responder))
7700        } else {
7701            None
7702        }
7703    }
7704
7705    #[allow(irrefutable_let_patterns)]
7706    pub fn into_get_ipv6_multicast_loopback(
7707        self,
7708    ) -> Option<(BaseDatagramSocketGetIpv6MulticastLoopbackResponder)> {
7709        if let BaseDatagramSocketRequest::GetIpv6MulticastLoopback { responder } = self {
7710            Some((responder))
7711        } else {
7712            None
7713        }
7714    }
7715
7716    #[allow(irrefutable_let_patterns)]
7717    pub fn into_set_ipv6_only(self) -> Option<(bool, BaseDatagramSocketSetIpv6OnlyResponder)> {
7718        if let BaseDatagramSocketRequest::SetIpv6Only { value, responder } = self {
7719            Some((value, responder))
7720        } else {
7721            None
7722        }
7723    }
7724
7725    #[allow(irrefutable_let_patterns)]
7726    pub fn into_get_ipv6_only(self) -> Option<(BaseDatagramSocketGetIpv6OnlyResponder)> {
7727        if let BaseDatagramSocketRequest::GetIpv6Only { responder } = self {
7728            Some((responder))
7729        } else {
7730            None
7731        }
7732    }
7733
7734    #[allow(irrefutable_let_patterns)]
7735    pub fn into_set_ipv6_receive_traffic_class(
7736        self,
7737    ) -> Option<(bool, BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder)> {
7738        if let BaseDatagramSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
7739            Some((value, responder))
7740        } else {
7741            None
7742        }
7743    }
7744
7745    #[allow(irrefutable_let_patterns)]
7746    pub fn into_get_ipv6_receive_traffic_class(
7747        self,
7748    ) -> Option<(BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder)> {
7749        if let BaseDatagramSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
7750            Some((responder))
7751        } else {
7752            None
7753        }
7754    }
7755
7756    #[allow(irrefutable_let_patterns)]
7757    pub fn into_set_ipv6_traffic_class(
7758        self,
7759    ) -> Option<(OptionalUint8, BaseDatagramSocketSetIpv6TrafficClassResponder)> {
7760        if let BaseDatagramSocketRequest::SetIpv6TrafficClass { value, responder } = self {
7761            Some((value, responder))
7762        } else {
7763            None
7764        }
7765    }
7766
7767    #[allow(irrefutable_let_patterns)]
7768    pub fn into_get_ipv6_traffic_class(
7769        self,
7770    ) -> Option<(BaseDatagramSocketGetIpv6TrafficClassResponder)> {
7771        if let BaseDatagramSocketRequest::GetIpv6TrafficClass { responder } = self {
7772            Some((responder))
7773        } else {
7774            None
7775        }
7776    }
7777
7778    #[allow(irrefutable_let_patterns)]
7779    pub fn into_set_ipv6_receive_packet_info(
7780        self,
7781    ) -> Option<(bool, BaseDatagramSocketSetIpv6ReceivePacketInfoResponder)> {
7782        if let BaseDatagramSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
7783            Some((value, responder))
7784        } else {
7785            None
7786        }
7787    }
7788
7789    #[allow(irrefutable_let_patterns)]
7790    pub fn into_get_ipv6_receive_packet_info(
7791        self,
7792    ) -> Option<(BaseDatagramSocketGetIpv6ReceivePacketInfoResponder)> {
7793        if let BaseDatagramSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
7794            Some((responder))
7795        } else {
7796            None
7797        }
7798    }
7799
7800    #[allow(irrefutable_let_patterns)]
7801    pub fn into_get_original_destination(
7802        self,
7803    ) -> Option<(BaseDatagramSocketGetOriginalDestinationResponder)> {
7804        if let BaseDatagramSocketRequest::GetOriginalDestination { responder } = self {
7805            Some((responder))
7806        } else {
7807            None
7808        }
7809    }
7810
7811    #[allow(irrefutable_let_patterns)]
7812    pub fn into_get_info(self) -> Option<(BaseDatagramSocketGetInfoResponder)> {
7813        if let BaseDatagramSocketRequest::GetInfo { responder } = self {
7814            Some((responder))
7815        } else {
7816            None
7817        }
7818    }
7819
7820    /// Name of the method defined in FIDL
7821    pub fn method_name(&self) -> &'static str {
7822        match *self {
7823            BaseDatagramSocketRequest::Clone { .. } => "clone",
7824            BaseDatagramSocketRequest::Close { .. } => "close",
7825            BaseDatagramSocketRequest::Query { .. } => "query",
7826            BaseDatagramSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
7827            BaseDatagramSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
7828            BaseDatagramSocketRequest::GetError { .. } => "get_error",
7829            BaseDatagramSocketRequest::SetBroadcast { .. } => "set_broadcast",
7830            BaseDatagramSocketRequest::GetBroadcast { .. } => "get_broadcast",
7831            BaseDatagramSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
7832            BaseDatagramSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
7833            BaseDatagramSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
7834            BaseDatagramSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
7835            BaseDatagramSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
7836            BaseDatagramSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
7837            BaseDatagramSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
7838            BaseDatagramSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
7839            BaseDatagramSocketRequest::SetNoCheck { .. } => "set_no_check",
7840            BaseDatagramSocketRequest::GetNoCheck { .. } => "get_no_check",
7841            BaseDatagramSocketRequest::SetLinger { .. } => "set_linger",
7842            BaseDatagramSocketRequest::GetLinger { .. } => "get_linger",
7843            BaseDatagramSocketRequest::SetReusePort { .. } => "set_reuse_port",
7844            BaseDatagramSocketRequest::GetReusePort { .. } => "get_reuse_port",
7845            BaseDatagramSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
7846            BaseDatagramSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
7847            BaseDatagramSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
7848            BaseDatagramSocketRequest::SetBindToInterfaceIndex { .. } => {
7849                "set_bind_to_interface_index"
7850            }
7851            BaseDatagramSocketRequest::GetBindToInterfaceIndex { .. } => {
7852                "get_bind_to_interface_index"
7853            }
7854            BaseDatagramSocketRequest::SetTimestamp { .. } => "set_timestamp",
7855            BaseDatagramSocketRequest::GetTimestamp { .. } => "get_timestamp",
7856            BaseDatagramSocketRequest::SetMark { .. } => "set_mark",
7857            BaseDatagramSocketRequest::GetMark { .. } => "get_mark",
7858            BaseDatagramSocketRequest::GetCookie { .. } => "get_cookie",
7859            BaseDatagramSocketRequest::Bind { .. } => "bind",
7860            BaseDatagramSocketRequest::Connect { .. } => "connect",
7861            BaseDatagramSocketRequest::Disconnect { .. } => "disconnect",
7862            BaseDatagramSocketRequest::GetSockName { .. } => "get_sock_name",
7863            BaseDatagramSocketRequest::GetPeerName { .. } => "get_peer_name",
7864            BaseDatagramSocketRequest::Shutdown { .. } => "shutdown",
7865            BaseDatagramSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
7866            BaseDatagramSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
7867            BaseDatagramSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
7868            BaseDatagramSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
7869            BaseDatagramSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
7870            BaseDatagramSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
7871            BaseDatagramSocketRequest::SetIpReceiveTypeOfService { .. } => {
7872                "set_ip_receive_type_of_service"
7873            }
7874            BaseDatagramSocketRequest::GetIpReceiveTypeOfService { .. } => {
7875                "get_ip_receive_type_of_service"
7876            }
7877            BaseDatagramSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
7878            BaseDatagramSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
7879            BaseDatagramSocketRequest::SetIpMulticastInterface { .. } => {
7880                "set_ip_multicast_interface"
7881            }
7882            BaseDatagramSocketRequest::GetIpMulticastInterface { .. } => {
7883                "get_ip_multicast_interface"
7884            }
7885            BaseDatagramSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
7886            BaseDatagramSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
7887            BaseDatagramSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
7888            BaseDatagramSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
7889            BaseDatagramSocketRequest::AddIpMembership { .. } => "add_ip_membership",
7890            BaseDatagramSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
7891            BaseDatagramSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
7892            BaseDatagramSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
7893            BaseDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
7894                "set_ip_receive_original_destination_address"
7895            }
7896            BaseDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
7897                "get_ip_receive_original_destination_address"
7898            }
7899            BaseDatagramSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
7900            BaseDatagramSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
7901            BaseDatagramSocketRequest::SetIpv6MulticastInterface { .. } => {
7902                "set_ipv6_multicast_interface"
7903            }
7904            BaseDatagramSocketRequest::GetIpv6MulticastInterface { .. } => {
7905                "get_ipv6_multicast_interface"
7906            }
7907            BaseDatagramSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
7908            BaseDatagramSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
7909            BaseDatagramSocketRequest::SetIpv6ReceiveHopLimit { .. } => {
7910                "set_ipv6_receive_hop_limit"
7911            }
7912            BaseDatagramSocketRequest::GetIpv6ReceiveHopLimit { .. } => {
7913                "get_ipv6_receive_hop_limit"
7914            }
7915            BaseDatagramSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
7916            BaseDatagramSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
7917            BaseDatagramSocketRequest::SetIpv6MulticastLoopback { .. } => {
7918                "set_ipv6_multicast_loopback"
7919            }
7920            BaseDatagramSocketRequest::GetIpv6MulticastLoopback { .. } => {
7921                "get_ipv6_multicast_loopback"
7922            }
7923            BaseDatagramSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
7924            BaseDatagramSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
7925            BaseDatagramSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
7926                "set_ipv6_receive_traffic_class"
7927            }
7928            BaseDatagramSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
7929                "get_ipv6_receive_traffic_class"
7930            }
7931            BaseDatagramSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
7932            BaseDatagramSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
7933            BaseDatagramSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
7934                "set_ipv6_receive_packet_info"
7935            }
7936            BaseDatagramSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
7937                "get_ipv6_receive_packet_info"
7938            }
7939            BaseDatagramSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
7940            BaseDatagramSocketRequest::GetInfo { .. } => "get_info",
7941        }
7942    }
7943}
7944
7945#[derive(Debug, Clone)]
7946pub struct BaseDatagramSocketControlHandle {
7947    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
7948}
7949
7950impl fidl::endpoints::ControlHandle for BaseDatagramSocketControlHandle {
7951    fn shutdown(&self) {
7952        self.inner.shutdown()
7953    }
7954    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
7955        self.inner.shutdown_with_epitaph(status)
7956    }
7957
7958    fn is_closed(&self) -> bool {
7959        self.inner.channel().is_closed()
7960    }
7961    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
7962        self.inner.channel().on_closed()
7963    }
7964
7965    #[cfg(target_os = "fuchsia")]
7966    fn signal_peer(
7967        &self,
7968        clear_mask: zx::Signals,
7969        set_mask: zx::Signals,
7970    ) -> Result<(), zx_status::Status> {
7971        use fidl::Peered;
7972        self.inner.channel().signal_peer(clear_mask, set_mask)
7973    }
7974}
7975
7976impl BaseDatagramSocketControlHandle {}
7977
7978#[must_use = "FIDL methods require a response to be sent"]
7979#[derive(Debug)]
7980pub struct BaseDatagramSocketCloseResponder {
7981    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
7982    tx_id: u32,
7983}
7984
7985/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
7986/// if the responder is dropped without sending a response, so that the client
7987/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
7988impl std::ops::Drop for BaseDatagramSocketCloseResponder {
7989    fn drop(&mut self) {
7990        self.control_handle.shutdown();
7991        // Safety: drops once, never accessed again
7992        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
7993    }
7994}
7995
7996impl fidl::endpoints::Responder for BaseDatagramSocketCloseResponder {
7997    type ControlHandle = BaseDatagramSocketControlHandle;
7998
7999    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8000        &self.control_handle
8001    }
8002
8003    fn drop_without_shutdown(mut self) {
8004        // Safety: drops once, never accessed again due to mem::forget
8005        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8006        // Prevent Drop from running (which would shut down the channel)
8007        std::mem::forget(self);
8008    }
8009}
8010
8011impl BaseDatagramSocketCloseResponder {
8012    /// Sends a response to the FIDL transaction.
8013    ///
8014    /// Sets the channel to shutdown if an error occurs.
8015    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
8016        let _result = self.send_raw(result);
8017        if _result.is_err() {
8018            self.control_handle.shutdown();
8019        }
8020        self.drop_without_shutdown();
8021        _result
8022    }
8023
8024    /// Similar to "send" but does not shutdown the channel if an error occurs.
8025    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
8026        let _result = self.send_raw(result);
8027        self.drop_without_shutdown();
8028        _result
8029    }
8030
8031    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
8032        self.control_handle
8033            .inner
8034            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
8035                result,
8036                self.tx_id,
8037                0x5ac5d459ad7f657e,
8038                fidl::encoding::DynamicFlags::empty(),
8039            )
8040    }
8041}
8042
8043#[must_use = "FIDL methods require a response to be sent"]
8044#[derive(Debug)]
8045pub struct BaseDatagramSocketQueryResponder {
8046    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8047    tx_id: u32,
8048}
8049
8050/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8051/// if the responder is dropped without sending a response, so that the client
8052/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8053impl std::ops::Drop for BaseDatagramSocketQueryResponder {
8054    fn drop(&mut self) {
8055        self.control_handle.shutdown();
8056        // Safety: drops once, never accessed again
8057        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8058    }
8059}
8060
8061impl fidl::endpoints::Responder for BaseDatagramSocketQueryResponder {
8062    type ControlHandle = BaseDatagramSocketControlHandle;
8063
8064    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8065        &self.control_handle
8066    }
8067
8068    fn drop_without_shutdown(mut self) {
8069        // Safety: drops once, never accessed again due to mem::forget
8070        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8071        // Prevent Drop from running (which would shut down the channel)
8072        std::mem::forget(self);
8073    }
8074}
8075
8076impl BaseDatagramSocketQueryResponder {
8077    /// Sends a response to the FIDL transaction.
8078    ///
8079    /// Sets the channel to shutdown if an error occurs.
8080    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
8081        let _result = self.send_raw(protocol);
8082        if _result.is_err() {
8083            self.control_handle.shutdown();
8084        }
8085        self.drop_without_shutdown();
8086        _result
8087    }
8088
8089    /// Similar to "send" but does not shutdown the channel if an error occurs.
8090    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
8091        let _result = self.send_raw(protocol);
8092        self.drop_without_shutdown();
8093        _result
8094    }
8095
8096    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
8097        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
8098            (protocol,),
8099            self.tx_id,
8100            0x2658edee9decfc06,
8101            fidl::encoding::DynamicFlags::empty(),
8102        )
8103    }
8104}
8105
8106#[must_use = "FIDL methods require a response to be sent"]
8107#[derive(Debug)]
8108pub struct BaseDatagramSocketSetReuseAddressResponder {
8109    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8110    tx_id: u32,
8111}
8112
8113/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8114/// if the responder is dropped without sending a response, so that the client
8115/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8116impl std::ops::Drop for BaseDatagramSocketSetReuseAddressResponder {
8117    fn drop(&mut self) {
8118        self.control_handle.shutdown();
8119        // Safety: drops once, never accessed again
8120        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8121    }
8122}
8123
8124impl fidl::endpoints::Responder for BaseDatagramSocketSetReuseAddressResponder {
8125    type ControlHandle = BaseDatagramSocketControlHandle;
8126
8127    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8128        &self.control_handle
8129    }
8130
8131    fn drop_without_shutdown(mut self) {
8132        // Safety: drops once, never accessed again due to mem::forget
8133        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8134        // Prevent Drop from running (which would shut down the channel)
8135        std::mem::forget(self);
8136    }
8137}
8138
8139impl BaseDatagramSocketSetReuseAddressResponder {
8140    /// Sends a response to the FIDL transaction.
8141    ///
8142    /// Sets the channel to shutdown if an error occurs.
8143    pub fn send(
8144        self,
8145        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8146    ) -> Result<(), fidl::Error> {
8147        let _result = self.send_raw(result);
8148        if _result.is_err() {
8149            self.control_handle.shutdown();
8150        }
8151        self.drop_without_shutdown();
8152        _result
8153    }
8154
8155    /// Similar to "send" but does not shutdown the channel if an error occurs.
8156    pub fn send_no_shutdown_on_err(
8157        self,
8158        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8159    ) -> Result<(), fidl::Error> {
8160        let _result = self.send_raw(result);
8161        self.drop_without_shutdown();
8162        _result
8163    }
8164
8165    fn send_raw(
8166        &self,
8167        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8168    ) -> Result<(), fidl::Error> {
8169        self.control_handle.inner.send::<fidl::encoding::ResultType<
8170            fidl::encoding::EmptyStruct,
8171            fidl_fuchsia_posix::Errno,
8172        >>(
8173            result,
8174            self.tx_id,
8175            0x1fd74ee8b9a4a876,
8176            fidl::encoding::DynamicFlags::empty(),
8177        )
8178    }
8179}
8180
8181#[must_use = "FIDL methods require a response to be sent"]
8182#[derive(Debug)]
8183pub struct BaseDatagramSocketGetReuseAddressResponder {
8184    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8185    tx_id: u32,
8186}
8187
8188/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8189/// if the responder is dropped without sending a response, so that the client
8190/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8191impl std::ops::Drop for BaseDatagramSocketGetReuseAddressResponder {
8192    fn drop(&mut self) {
8193        self.control_handle.shutdown();
8194        // Safety: drops once, never accessed again
8195        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8196    }
8197}
8198
8199impl fidl::endpoints::Responder for BaseDatagramSocketGetReuseAddressResponder {
8200    type ControlHandle = BaseDatagramSocketControlHandle;
8201
8202    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8203        &self.control_handle
8204    }
8205
8206    fn drop_without_shutdown(mut self) {
8207        // Safety: drops once, never accessed again due to mem::forget
8208        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8209        // Prevent Drop from running (which would shut down the channel)
8210        std::mem::forget(self);
8211    }
8212}
8213
8214impl BaseDatagramSocketGetReuseAddressResponder {
8215    /// Sends a response to the FIDL transaction.
8216    ///
8217    /// Sets the channel to shutdown if an error occurs.
8218    pub fn send(
8219        self,
8220        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8221    ) -> Result<(), fidl::Error> {
8222        let _result = self.send_raw(result);
8223        if _result.is_err() {
8224            self.control_handle.shutdown();
8225        }
8226        self.drop_without_shutdown();
8227        _result
8228    }
8229
8230    /// Similar to "send" but does not shutdown the channel if an error occurs.
8231    pub fn send_no_shutdown_on_err(
8232        self,
8233        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8234    ) -> Result<(), fidl::Error> {
8235        let _result = self.send_raw(result);
8236        self.drop_without_shutdown();
8237        _result
8238    }
8239
8240    fn send_raw(
8241        &self,
8242        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8243    ) -> Result<(), fidl::Error> {
8244        self.control_handle.inner.send::<fidl::encoding::ResultType<
8245            BaseSocketGetReuseAddressResponse,
8246            fidl_fuchsia_posix::Errno,
8247        >>(
8248            result.map(|value| (value,)),
8249            self.tx_id,
8250            0x67b7206b8d1bc0a5,
8251            fidl::encoding::DynamicFlags::empty(),
8252        )
8253    }
8254}
8255
8256#[must_use = "FIDL methods require a response to be sent"]
8257#[derive(Debug)]
8258pub struct BaseDatagramSocketGetErrorResponder {
8259    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8260    tx_id: u32,
8261}
8262
8263/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8264/// if the responder is dropped without sending a response, so that the client
8265/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8266impl std::ops::Drop for BaseDatagramSocketGetErrorResponder {
8267    fn drop(&mut self) {
8268        self.control_handle.shutdown();
8269        // Safety: drops once, never accessed again
8270        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8271    }
8272}
8273
8274impl fidl::endpoints::Responder for BaseDatagramSocketGetErrorResponder {
8275    type ControlHandle = BaseDatagramSocketControlHandle;
8276
8277    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8278        &self.control_handle
8279    }
8280
8281    fn drop_without_shutdown(mut self) {
8282        // Safety: drops once, never accessed again due to mem::forget
8283        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8284        // Prevent Drop from running (which would shut down the channel)
8285        std::mem::forget(self);
8286    }
8287}
8288
8289impl BaseDatagramSocketGetErrorResponder {
8290    /// Sends a response to the FIDL transaction.
8291    ///
8292    /// Sets the channel to shutdown if an error occurs.
8293    pub fn send(
8294        self,
8295        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8296    ) -> Result<(), fidl::Error> {
8297        let _result = self.send_raw(result);
8298        if _result.is_err() {
8299            self.control_handle.shutdown();
8300        }
8301        self.drop_without_shutdown();
8302        _result
8303    }
8304
8305    /// Similar to "send" but does not shutdown the channel if an error occurs.
8306    pub fn send_no_shutdown_on_err(
8307        self,
8308        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8309    ) -> Result<(), fidl::Error> {
8310        let _result = self.send_raw(result);
8311        self.drop_without_shutdown();
8312        _result
8313    }
8314
8315    fn send_raw(
8316        &self,
8317        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8318    ) -> Result<(), fidl::Error> {
8319        self.control_handle.inner.send::<fidl::encoding::ResultType<
8320            fidl::encoding::EmptyStruct,
8321            fidl_fuchsia_posix::Errno,
8322        >>(
8323            result,
8324            self.tx_id,
8325            0x5aad39b33e5f6ebb,
8326            fidl::encoding::DynamicFlags::empty(),
8327        )
8328    }
8329}
8330
8331#[must_use = "FIDL methods require a response to be sent"]
8332#[derive(Debug)]
8333pub struct BaseDatagramSocketSetBroadcastResponder {
8334    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8335    tx_id: u32,
8336}
8337
8338/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8339/// if the responder is dropped without sending a response, so that the client
8340/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8341impl std::ops::Drop for BaseDatagramSocketSetBroadcastResponder {
8342    fn drop(&mut self) {
8343        self.control_handle.shutdown();
8344        // Safety: drops once, never accessed again
8345        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8346    }
8347}
8348
8349impl fidl::endpoints::Responder for BaseDatagramSocketSetBroadcastResponder {
8350    type ControlHandle = BaseDatagramSocketControlHandle;
8351
8352    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8353        &self.control_handle
8354    }
8355
8356    fn drop_without_shutdown(mut self) {
8357        // Safety: drops once, never accessed again due to mem::forget
8358        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8359        // Prevent Drop from running (which would shut down the channel)
8360        std::mem::forget(self);
8361    }
8362}
8363
8364impl BaseDatagramSocketSetBroadcastResponder {
8365    /// Sends a response to the FIDL transaction.
8366    ///
8367    /// Sets the channel to shutdown if an error occurs.
8368    pub fn send(
8369        self,
8370        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8371    ) -> Result<(), fidl::Error> {
8372        let _result = self.send_raw(result);
8373        if _result.is_err() {
8374            self.control_handle.shutdown();
8375        }
8376        self.drop_without_shutdown();
8377        _result
8378    }
8379
8380    /// Similar to "send" but does not shutdown the channel if an error occurs.
8381    pub fn send_no_shutdown_on_err(
8382        self,
8383        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8384    ) -> Result<(), fidl::Error> {
8385        let _result = self.send_raw(result);
8386        self.drop_without_shutdown();
8387        _result
8388    }
8389
8390    fn send_raw(
8391        &self,
8392        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8393    ) -> Result<(), fidl::Error> {
8394        self.control_handle.inner.send::<fidl::encoding::ResultType<
8395            fidl::encoding::EmptyStruct,
8396            fidl_fuchsia_posix::Errno,
8397        >>(
8398            result,
8399            self.tx_id,
8400            0x6023e081ce3cd947,
8401            fidl::encoding::DynamicFlags::empty(),
8402        )
8403    }
8404}
8405
8406#[must_use = "FIDL methods require a response to be sent"]
8407#[derive(Debug)]
8408pub struct BaseDatagramSocketGetBroadcastResponder {
8409    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8410    tx_id: u32,
8411}
8412
8413/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8414/// if the responder is dropped without sending a response, so that the client
8415/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8416impl std::ops::Drop for BaseDatagramSocketGetBroadcastResponder {
8417    fn drop(&mut self) {
8418        self.control_handle.shutdown();
8419        // Safety: drops once, never accessed again
8420        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8421    }
8422}
8423
8424impl fidl::endpoints::Responder for BaseDatagramSocketGetBroadcastResponder {
8425    type ControlHandle = BaseDatagramSocketControlHandle;
8426
8427    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8428        &self.control_handle
8429    }
8430
8431    fn drop_without_shutdown(mut self) {
8432        // Safety: drops once, never accessed again due to mem::forget
8433        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8434        // Prevent Drop from running (which would shut down the channel)
8435        std::mem::forget(self);
8436    }
8437}
8438
8439impl BaseDatagramSocketGetBroadcastResponder {
8440    /// Sends a response to the FIDL transaction.
8441    ///
8442    /// Sets the channel to shutdown if an error occurs.
8443    pub fn send(
8444        self,
8445        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8446    ) -> Result<(), fidl::Error> {
8447        let _result = self.send_raw(result);
8448        if _result.is_err() {
8449            self.control_handle.shutdown();
8450        }
8451        self.drop_without_shutdown();
8452        _result
8453    }
8454
8455    /// Similar to "send" but does not shutdown the channel if an error occurs.
8456    pub fn send_no_shutdown_on_err(
8457        self,
8458        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8459    ) -> Result<(), fidl::Error> {
8460        let _result = self.send_raw(result);
8461        self.drop_without_shutdown();
8462        _result
8463    }
8464
8465    fn send_raw(
8466        &self,
8467        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8468    ) -> Result<(), fidl::Error> {
8469        self.control_handle.inner.send::<fidl::encoding::ResultType<
8470            BaseSocketGetBroadcastResponse,
8471            fidl_fuchsia_posix::Errno,
8472        >>(
8473            result.map(|value| (value,)),
8474            self.tx_id,
8475            0x68796fc556f9780d,
8476            fidl::encoding::DynamicFlags::empty(),
8477        )
8478    }
8479}
8480
8481#[must_use = "FIDL methods require a response to be sent"]
8482#[derive(Debug)]
8483pub struct BaseDatagramSocketSetSendBufferResponder {
8484    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8485    tx_id: u32,
8486}
8487
8488/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8489/// if the responder is dropped without sending a response, so that the client
8490/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8491impl std::ops::Drop for BaseDatagramSocketSetSendBufferResponder {
8492    fn drop(&mut self) {
8493        self.control_handle.shutdown();
8494        // Safety: drops once, never accessed again
8495        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8496    }
8497}
8498
8499impl fidl::endpoints::Responder for BaseDatagramSocketSetSendBufferResponder {
8500    type ControlHandle = BaseDatagramSocketControlHandle;
8501
8502    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8503        &self.control_handle
8504    }
8505
8506    fn drop_without_shutdown(mut self) {
8507        // Safety: drops once, never accessed again due to mem::forget
8508        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8509        // Prevent Drop from running (which would shut down the channel)
8510        std::mem::forget(self);
8511    }
8512}
8513
8514impl BaseDatagramSocketSetSendBufferResponder {
8515    /// Sends a response to the FIDL transaction.
8516    ///
8517    /// Sets the channel to shutdown if an error occurs.
8518    pub fn send(
8519        self,
8520        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8521    ) -> Result<(), fidl::Error> {
8522        let _result = self.send_raw(result);
8523        if _result.is_err() {
8524            self.control_handle.shutdown();
8525        }
8526        self.drop_without_shutdown();
8527        _result
8528    }
8529
8530    /// Similar to "send" but does not shutdown the channel if an error occurs.
8531    pub fn send_no_shutdown_on_err(
8532        self,
8533        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8534    ) -> Result<(), fidl::Error> {
8535        let _result = self.send_raw(result);
8536        self.drop_without_shutdown();
8537        _result
8538    }
8539
8540    fn send_raw(
8541        &self,
8542        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8543    ) -> Result<(), fidl::Error> {
8544        self.control_handle.inner.send::<fidl::encoding::ResultType<
8545            fidl::encoding::EmptyStruct,
8546            fidl_fuchsia_posix::Errno,
8547        >>(
8548            result,
8549            self.tx_id,
8550            0x756eac32d73a7a70,
8551            fidl::encoding::DynamicFlags::empty(),
8552        )
8553    }
8554}
8555
8556#[must_use = "FIDL methods require a response to be sent"]
8557#[derive(Debug)]
8558pub struct BaseDatagramSocketGetSendBufferResponder {
8559    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8560    tx_id: u32,
8561}
8562
8563/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8564/// if the responder is dropped without sending a response, so that the client
8565/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8566impl std::ops::Drop for BaseDatagramSocketGetSendBufferResponder {
8567    fn drop(&mut self) {
8568        self.control_handle.shutdown();
8569        // Safety: drops once, never accessed again
8570        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8571    }
8572}
8573
8574impl fidl::endpoints::Responder for BaseDatagramSocketGetSendBufferResponder {
8575    type ControlHandle = BaseDatagramSocketControlHandle;
8576
8577    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8578        &self.control_handle
8579    }
8580
8581    fn drop_without_shutdown(mut self) {
8582        // Safety: drops once, never accessed again due to mem::forget
8583        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8584        // Prevent Drop from running (which would shut down the channel)
8585        std::mem::forget(self);
8586    }
8587}
8588
8589impl BaseDatagramSocketGetSendBufferResponder {
8590    /// Sends a response to the FIDL transaction.
8591    ///
8592    /// Sets the channel to shutdown if an error occurs.
8593    pub fn send(
8594        self,
8595        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8596    ) -> Result<(), fidl::Error> {
8597        let _result = self.send_raw(result);
8598        if _result.is_err() {
8599            self.control_handle.shutdown();
8600        }
8601        self.drop_without_shutdown();
8602        _result
8603    }
8604
8605    /// Similar to "send" but does not shutdown the channel if an error occurs.
8606    pub fn send_no_shutdown_on_err(
8607        self,
8608        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8609    ) -> Result<(), fidl::Error> {
8610        let _result = self.send_raw(result);
8611        self.drop_without_shutdown();
8612        _result
8613    }
8614
8615    fn send_raw(
8616        &self,
8617        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8618    ) -> Result<(), fidl::Error> {
8619        self.control_handle.inner.send::<fidl::encoding::ResultType<
8620            BaseSocketGetSendBufferResponse,
8621            fidl_fuchsia_posix::Errno,
8622        >>(
8623            result.map(|value_bytes| (value_bytes,)),
8624            self.tx_id,
8625            0x78a52fd9c7b2410b,
8626            fidl::encoding::DynamicFlags::empty(),
8627        )
8628    }
8629}
8630
8631#[must_use = "FIDL methods require a response to be sent"]
8632#[derive(Debug)]
8633pub struct BaseDatagramSocketSetReceiveBufferResponder {
8634    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8635    tx_id: u32,
8636}
8637
8638/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8639/// if the responder is dropped without sending a response, so that the client
8640/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8641impl std::ops::Drop for BaseDatagramSocketSetReceiveBufferResponder {
8642    fn drop(&mut self) {
8643        self.control_handle.shutdown();
8644        // Safety: drops once, never accessed again
8645        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8646    }
8647}
8648
8649impl fidl::endpoints::Responder for BaseDatagramSocketSetReceiveBufferResponder {
8650    type ControlHandle = BaseDatagramSocketControlHandle;
8651
8652    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8653        &self.control_handle
8654    }
8655
8656    fn drop_without_shutdown(mut self) {
8657        // Safety: drops once, never accessed again due to mem::forget
8658        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8659        // Prevent Drop from running (which would shut down the channel)
8660        std::mem::forget(self);
8661    }
8662}
8663
8664impl BaseDatagramSocketSetReceiveBufferResponder {
8665    /// Sends a response to the FIDL transaction.
8666    ///
8667    /// Sets the channel to shutdown if an error occurs.
8668    pub fn send(
8669        self,
8670        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8671    ) -> Result<(), fidl::Error> {
8672        let _result = self.send_raw(result);
8673        if _result.is_err() {
8674            self.control_handle.shutdown();
8675        }
8676        self.drop_without_shutdown();
8677        _result
8678    }
8679
8680    /// Similar to "send" but does not shutdown the channel if an error occurs.
8681    pub fn send_no_shutdown_on_err(
8682        self,
8683        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8684    ) -> Result<(), fidl::Error> {
8685        let _result = self.send_raw(result);
8686        self.drop_without_shutdown();
8687        _result
8688    }
8689
8690    fn send_raw(
8691        &self,
8692        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8693    ) -> Result<(), fidl::Error> {
8694        self.control_handle.inner.send::<fidl::encoding::ResultType<
8695            fidl::encoding::EmptyStruct,
8696            fidl_fuchsia_posix::Errno,
8697        >>(
8698            result,
8699            self.tx_id,
8700            0x6b0cf2f1919c7001,
8701            fidl::encoding::DynamicFlags::empty(),
8702        )
8703    }
8704}
8705
8706#[must_use = "FIDL methods require a response to be sent"]
8707#[derive(Debug)]
8708pub struct BaseDatagramSocketGetReceiveBufferResponder {
8709    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8710    tx_id: u32,
8711}
8712
8713/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8714/// if the responder is dropped without sending a response, so that the client
8715/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8716impl std::ops::Drop for BaseDatagramSocketGetReceiveBufferResponder {
8717    fn drop(&mut self) {
8718        self.control_handle.shutdown();
8719        // Safety: drops once, never accessed again
8720        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8721    }
8722}
8723
8724impl fidl::endpoints::Responder for BaseDatagramSocketGetReceiveBufferResponder {
8725    type ControlHandle = BaseDatagramSocketControlHandle;
8726
8727    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8728        &self.control_handle
8729    }
8730
8731    fn drop_without_shutdown(mut self) {
8732        // Safety: drops once, never accessed again due to mem::forget
8733        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8734        // Prevent Drop from running (which would shut down the channel)
8735        std::mem::forget(self);
8736    }
8737}
8738
8739impl BaseDatagramSocketGetReceiveBufferResponder {
8740    /// Sends a response to the FIDL transaction.
8741    ///
8742    /// Sets the channel to shutdown if an error occurs.
8743    pub fn send(
8744        self,
8745        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8746    ) -> Result<(), fidl::Error> {
8747        let _result = self.send_raw(result);
8748        if _result.is_err() {
8749            self.control_handle.shutdown();
8750        }
8751        self.drop_without_shutdown();
8752        _result
8753    }
8754
8755    /// Similar to "send" but does not shutdown the channel if an error occurs.
8756    pub fn send_no_shutdown_on_err(
8757        self,
8758        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8759    ) -> Result<(), fidl::Error> {
8760        let _result = self.send_raw(result);
8761        self.drop_without_shutdown();
8762        _result
8763    }
8764
8765    fn send_raw(
8766        &self,
8767        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
8768    ) -> Result<(), fidl::Error> {
8769        self.control_handle.inner.send::<fidl::encoding::ResultType<
8770            BaseSocketGetReceiveBufferResponse,
8771            fidl_fuchsia_posix::Errno,
8772        >>(
8773            result.map(|value_bytes| (value_bytes,)),
8774            self.tx_id,
8775            0x14c1a4b64f709e5c,
8776            fidl::encoding::DynamicFlags::empty(),
8777        )
8778    }
8779}
8780
8781#[must_use = "FIDL methods require a response to be sent"]
8782#[derive(Debug)]
8783pub struct BaseDatagramSocketSetKeepAliveResponder {
8784    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8785    tx_id: u32,
8786}
8787
8788/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8789/// if the responder is dropped without sending a response, so that the client
8790/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8791impl std::ops::Drop for BaseDatagramSocketSetKeepAliveResponder {
8792    fn drop(&mut self) {
8793        self.control_handle.shutdown();
8794        // Safety: drops once, never accessed again
8795        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8796    }
8797}
8798
8799impl fidl::endpoints::Responder for BaseDatagramSocketSetKeepAliveResponder {
8800    type ControlHandle = BaseDatagramSocketControlHandle;
8801
8802    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8803        &self.control_handle
8804    }
8805
8806    fn drop_without_shutdown(mut self) {
8807        // Safety: drops once, never accessed again due to mem::forget
8808        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8809        // Prevent Drop from running (which would shut down the channel)
8810        std::mem::forget(self);
8811    }
8812}
8813
8814impl BaseDatagramSocketSetKeepAliveResponder {
8815    /// Sends a response to the FIDL transaction.
8816    ///
8817    /// Sets the channel to shutdown if an error occurs.
8818    pub fn send(
8819        self,
8820        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8821    ) -> Result<(), fidl::Error> {
8822        let _result = self.send_raw(result);
8823        if _result.is_err() {
8824            self.control_handle.shutdown();
8825        }
8826        self.drop_without_shutdown();
8827        _result
8828    }
8829
8830    /// Similar to "send" but does not shutdown the channel if an error occurs.
8831    pub fn send_no_shutdown_on_err(
8832        self,
8833        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8834    ) -> Result<(), fidl::Error> {
8835        let _result = self.send_raw(result);
8836        self.drop_without_shutdown();
8837        _result
8838    }
8839
8840    fn send_raw(
8841        &self,
8842        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8843    ) -> Result<(), fidl::Error> {
8844        self.control_handle.inner.send::<fidl::encoding::ResultType<
8845            fidl::encoding::EmptyStruct,
8846            fidl_fuchsia_posix::Errno,
8847        >>(
8848            result,
8849            self.tx_id,
8850            0x572df8f0b920d2c7,
8851            fidl::encoding::DynamicFlags::empty(),
8852        )
8853    }
8854}
8855
8856#[must_use = "FIDL methods require a response to be sent"]
8857#[derive(Debug)]
8858pub struct BaseDatagramSocketGetKeepAliveResponder {
8859    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8860    tx_id: u32,
8861}
8862
8863/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8864/// if the responder is dropped without sending a response, so that the client
8865/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8866impl std::ops::Drop for BaseDatagramSocketGetKeepAliveResponder {
8867    fn drop(&mut self) {
8868        self.control_handle.shutdown();
8869        // Safety: drops once, never accessed again
8870        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8871    }
8872}
8873
8874impl fidl::endpoints::Responder for BaseDatagramSocketGetKeepAliveResponder {
8875    type ControlHandle = BaseDatagramSocketControlHandle;
8876
8877    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8878        &self.control_handle
8879    }
8880
8881    fn drop_without_shutdown(mut self) {
8882        // Safety: drops once, never accessed again due to mem::forget
8883        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8884        // Prevent Drop from running (which would shut down the channel)
8885        std::mem::forget(self);
8886    }
8887}
8888
8889impl BaseDatagramSocketGetKeepAliveResponder {
8890    /// Sends a response to the FIDL transaction.
8891    ///
8892    /// Sets the channel to shutdown if an error occurs.
8893    pub fn send(
8894        self,
8895        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8896    ) -> Result<(), fidl::Error> {
8897        let _result = self.send_raw(result);
8898        if _result.is_err() {
8899            self.control_handle.shutdown();
8900        }
8901        self.drop_without_shutdown();
8902        _result
8903    }
8904
8905    /// Similar to "send" but does not shutdown the channel if an error occurs.
8906    pub fn send_no_shutdown_on_err(
8907        self,
8908        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8909    ) -> Result<(), fidl::Error> {
8910        let _result = self.send_raw(result);
8911        self.drop_without_shutdown();
8912        _result
8913    }
8914
8915    fn send_raw(
8916        &self,
8917        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
8918    ) -> Result<(), fidl::Error> {
8919        self.control_handle.inner.send::<fidl::encoding::ResultType<
8920            BaseSocketGetKeepAliveResponse,
8921            fidl_fuchsia_posix::Errno,
8922        >>(
8923            result.map(|value| (value,)),
8924            self.tx_id,
8925            0x2dd29d3215f2c9d2,
8926            fidl::encoding::DynamicFlags::empty(),
8927        )
8928    }
8929}
8930
8931#[must_use = "FIDL methods require a response to be sent"]
8932#[derive(Debug)]
8933pub struct BaseDatagramSocketSetOutOfBandInlineResponder {
8934    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
8935    tx_id: u32,
8936}
8937
8938/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
8939/// if the responder is dropped without sending a response, so that the client
8940/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8941impl std::ops::Drop for BaseDatagramSocketSetOutOfBandInlineResponder {
8942    fn drop(&mut self) {
8943        self.control_handle.shutdown();
8944        // Safety: drops once, never accessed again
8945        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8946    }
8947}
8948
8949impl fidl::endpoints::Responder for BaseDatagramSocketSetOutOfBandInlineResponder {
8950    type ControlHandle = BaseDatagramSocketControlHandle;
8951
8952    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
8953        &self.control_handle
8954    }
8955
8956    fn drop_without_shutdown(mut self) {
8957        // Safety: drops once, never accessed again due to mem::forget
8958        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8959        // Prevent Drop from running (which would shut down the channel)
8960        std::mem::forget(self);
8961    }
8962}
8963
8964impl BaseDatagramSocketSetOutOfBandInlineResponder {
8965    /// Sends a response to the FIDL transaction.
8966    ///
8967    /// Sets the channel to shutdown if an error occurs.
8968    pub fn send(
8969        self,
8970        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8971    ) -> Result<(), fidl::Error> {
8972        let _result = self.send_raw(result);
8973        if _result.is_err() {
8974            self.control_handle.shutdown();
8975        }
8976        self.drop_without_shutdown();
8977        _result
8978    }
8979
8980    /// Similar to "send" but does not shutdown the channel if an error occurs.
8981    pub fn send_no_shutdown_on_err(
8982        self,
8983        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8984    ) -> Result<(), fidl::Error> {
8985        let _result = self.send_raw(result);
8986        self.drop_without_shutdown();
8987        _result
8988    }
8989
8990    fn send_raw(
8991        &self,
8992        mut result: Result<(), fidl_fuchsia_posix::Errno>,
8993    ) -> Result<(), fidl::Error> {
8994        self.control_handle.inner.send::<fidl::encoding::ResultType<
8995            fidl::encoding::EmptyStruct,
8996            fidl_fuchsia_posix::Errno,
8997        >>(
8998            result,
8999            self.tx_id,
9000            0x3ecb49968bee439,
9001            fidl::encoding::DynamicFlags::empty(),
9002        )
9003    }
9004}
9005
9006#[must_use = "FIDL methods require a response to be sent"]
9007#[derive(Debug)]
9008pub struct BaseDatagramSocketGetOutOfBandInlineResponder {
9009    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9010    tx_id: u32,
9011}
9012
9013/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9014/// if the responder is dropped without sending a response, so that the client
9015/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9016impl std::ops::Drop for BaseDatagramSocketGetOutOfBandInlineResponder {
9017    fn drop(&mut self) {
9018        self.control_handle.shutdown();
9019        // Safety: drops once, never accessed again
9020        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9021    }
9022}
9023
9024impl fidl::endpoints::Responder for BaseDatagramSocketGetOutOfBandInlineResponder {
9025    type ControlHandle = BaseDatagramSocketControlHandle;
9026
9027    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9028        &self.control_handle
9029    }
9030
9031    fn drop_without_shutdown(mut self) {
9032        // Safety: drops once, never accessed again due to mem::forget
9033        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9034        // Prevent Drop from running (which would shut down the channel)
9035        std::mem::forget(self);
9036    }
9037}
9038
9039impl BaseDatagramSocketGetOutOfBandInlineResponder {
9040    /// Sends a response to the FIDL transaction.
9041    ///
9042    /// Sets the channel to shutdown if an error occurs.
9043    pub fn send(
9044        self,
9045        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9046    ) -> Result<(), fidl::Error> {
9047        let _result = self.send_raw(result);
9048        if _result.is_err() {
9049            self.control_handle.shutdown();
9050        }
9051        self.drop_without_shutdown();
9052        _result
9053    }
9054
9055    /// Similar to "send" but does not shutdown the channel if an error occurs.
9056    pub fn send_no_shutdown_on_err(
9057        self,
9058        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9059    ) -> Result<(), fidl::Error> {
9060        let _result = self.send_raw(result);
9061        self.drop_without_shutdown();
9062        _result
9063    }
9064
9065    fn send_raw(
9066        &self,
9067        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9068    ) -> Result<(), fidl::Error> {
9069        self.control_handle.inner.send::<fidl::encoding::ResultType<
9070            BaseSocketGetOutOfBandInlineResponse,
9071            fidl_fuchsia_posix::Errno,
9072        >>(
9073            result.map(|value| (value,)),
9074            self.tx_id,
9075            0x348c1ab3aeca1745,
9076            fidl::encoding::DynamicFlags::empty(),
9077        )
9078    }
9079}
9080
9081#[must_use = "FIDL methods require a response to be sent"]
9082#[derive(Debug)]
9083pub struct BaseDatagramSocketSetNoCheckResponder {
9084    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9085    tx_id: u32,
9086}
9087
9088/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9089/// if the responder is dropped without sending a response, so that the client
9090/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9091impl std::ops::Drop for BaseDatagramSocketSetNoCheckResponder {
9092    fn drop(&mut self) {
9093        self.control_handle.shutdown();
9094        // Safety: drops once, never accessed again
9095        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9096    }
9097}
9098
9099impl fidl::endpoints::Responder for BaseDatagramSocketSetNoCheckResponder {
9100    type ControlHandle = BaseDatagramSocketControlHandle;
9101
9102    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9103        &self.control_handle
9104    }
9105
9106    fn drop_without_shutdown(mut self) {
9107        // Safety: drops once, never accessed again due to mem::forget
9108        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9109        // Prevent Drop from running (which would shut down the channel)
9110        std::mem::forget(self);
9111    }
9112}
9113
9114impl BaseDatagramSocketSetNoCheckResponder {
9115    /// Sends a response to the FIDL transaction.
9116    ///
9117    /// Sets the channel to shutdown if an error occurs.
9118    pub fn send(
9119        self,
9120        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9121    ) -> Result<(), fidl::Error> {
9122        let _result = self.send_raw(result);
9123        if _result.is_err() {
9124            self.control_handle.shutdown();
9125        }
9126        self.drop_without_shutdown();
9127        _result
9128    }
9129
9130    /// Similar to "send" but does not shutdown the channel if an error occurs.
9131    pub fn send_no_shutdown_on_err(
9132        self,
9133        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9134    ) -> Result<(), fidl::Error> {
9135        let _result = self.send_raw(result);
9136        self.drop_without_shutdown();
9137        _result
9138    }
9139
9140    fn send_raw(
9141        &self,
9142        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9143    ) -> Result<(), fidl::Error> {
9144        self.control_handle.inner.send::<fidl::encoding::ResultType<
9145            fidl::encoding::EmptyStruct,
9146            fidl_fuchsia_posix::Errno,
9147        >>(
9148            result,
9149            self.tx_id,
9150            0x6bbf00c53a4c78c2,
9151            fidl::encoding::DynamicFlags::empty(),
9152        )
9153    }
9154}
9155
9156#[must_use = "FIDL methods require a response to be sent"]
9157#[derive(Debug)]
9158pub struct BaseDatagramSocketGetNoCheckResponder {
9159    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9160    tx_id: u32,
9161}
9162
9163/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9164/// if the responder is dropped without sending a response, so that the client
9165/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9166impl std::ops::Drop for BaseDatagramSocketGetNoCheckResponder {
9167    fn drop(&mut self) {
9168        self.control_handle.shutdown();
9169        // Safety: drops once, never accessed again
9170        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9171    }
9172}
9173
9174impl fidl::endpoints::Responder for BaseDatagramSocketGetNoCheckResponder {
9175    type ControlHandle = BaseDatagramSocketControlHandle;
9176
9177    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9178        &self.control_handle
9179    }
9180
9181    fn drop_without_shutdown(mut self) {
9182        // Safety: drops once, never accessed again due to mem::forget
9183        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9184        // Prevent Drop from running (which would shut down the channel)
9185        std::mem::forget(self);
9186    }
9187}
9188
9189impl BaseDatagramSocketGetNoCheckResponder {
9190    /// Sends a response to the FIDL transaction.
9191    ///
9192    /// Sets the channel to shutdown if an error occurs.
9193    pub fn send(
9194        self,
9195        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9196    ) -> Result<(), fidl::Error> {
9197        let _result = self.send_raw(result);
9198        if _result.is_err() {
9199            self.control_handle.shutdown();
9200        }
9201        self.drop_without_shutdown();
9202        _result
9203    }
9204
9205    /// Similar to "send" but does not shutdown the channel if an error occurs.
9206    pub fn send_no_shutdown_on_err(
9207        self,
9208        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9209    ) -> Result<(), fidl::Error> {
9210        let _result = self.send_raw(result);
9211        self.drop_without_shutdown();
9212        _result
9213    }
9214
9215    fn send_raw(
9216        &self,
9217        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9218    ) -> Result<(), fidl::Error> {
9219        self.control_handle.inner.send::<fidl::encoding::ResultType<
9220            BaseSocketGetNoCheckResponse,
9221            fidl_fuchsia_posix::Errno,
9222        >>(
9223            result.map(|value| (value,)),
9224            self.tx_id,
9225            0x2cd4249286417694,
9226            fidl::encoding::DynamicFlags::empty(),
9227        )
9228    }
9229}
9230
9231#[must_use = "FIDL methods require a response to be sent"]
9232#[derive(Debug)]
9233pub struct BaseDatagramSocketSetLingerResponder {
9234    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9235    tx_id: u32,
9236}
9237
9238/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9239/// if the responder is dropped without sending a response, so that the client
9240/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9241impl std::ops::Drop for BaseDatagramSocketSetLingerResponder {
9242    fn drop(&mut self) {
9243        self.control_handle.shutdown();
9244        // Safety: drops once, never accessed again
9245        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9246    }
9247}
9248
9249impl fidl::endpoints::Responder for BaseDatagramSocketSetLingerResponder {
9250    type ControlHandle = BaseDatagramSocketControlHandle;
9251
9252    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9253        &self.control_handle
9254    }
9255
9256    fn drop_without_shutdown(mut self) {
9257        // Safety: drops once, never accessed again due to mem::forget
9258        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9259        // Prevent Drop from running (which would shut down the channel)
9260        std::mem::forget(self);
9261    }
9262}
9263
9264impl BaseDatagramSocketSetLingerResponder {
9265    /// Sends a response to the FIDL transaction.
9266    ///
9267    /// Sets the channel to shutdown if an error occurs.
9268    pub fn send(
9269        self,
9270        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9271    ) -> Result<(), fidl::Error> {
9272        let _result = self.send_raw(result);
9273        if _result.is_err() {
9274            self.control_handle.shutdown();
9275        }
9276        self.drop_without_shutdown();
9277        _result
9278    }
9279
9280    /// Similar to "send" but does not shutdown the channel if an error occurs.
9281    pub fn send_no_shutdown_on_err(
9282        self,
9283        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9284    ) -> Result<(), fidl::Error> {
9285        let _result = self.send_raw(result);
9286        self.drop_without_shutdown();
9287        _result
9288    }
9289
9290    fn send_raw(
9291        &self,
9292        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9293    ) -> Result<(), fidl::Error> {
9294        self.control_handle.inner.send::<fidl::encoding::ResultType<
9295            fidl::encoding::EmptyStruct,
9296            fidl_fuchsia_posix::Errno,
9297        >>(
9298            result,
9299            self.tx_id,
9300            0x45386351246e998e,
9301            fidl::encoding::DynamicFlags::empty(),
9302        )
9303    }
9304}
9305
9306#[must_use = "FIDL methods require a response to be sent"]
9307#[derive(Debug)]
9308pub struct BaseDatagramSocketGetLingerResponder {
9309    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9310    tx_id: u32,
9311}
9312
9313/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9314/// if the responder is dropped without sending a response, so that the client
9315/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9316impl std::ops::Drop for BaseDatagramSocketGetLingerResponder {
9317    fn drop(&mut self) {
9318        self.control_handle.shutdown();
9319        // Safety: drops once, never accessed again
9320        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9321    }
9322}
9323
9324impl fidl::endpoints::Responder for BaseDatagramSocketGetLingerResponder {
9325    type ControlHandle = BaseDatagramSocketControlHandle;
9326
9327    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9328        &self.control_handle
9329    }
9330
9331    fn drop_without_shutdown(mut self) {
9332        // Safety: drops once, never accessed again due to mem::forget
9333        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9334        // Prevent Drop from running (which would shut down the channel)
9335        std::mem::forget(self);
9336    }
9337}
9338
9339impl BaseDatagramSocketGetLingerResponder {
9340    /// Sends a response to the FIDL transaction.
9341    ///
9342    /// Sets the channel to shutdown if an error occurs.
9343    pub fn send(
9344        self,
9345        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
9346    ) -> Result<(), fidl::Error> {
9347        let _result = self.send_raw(result);
9348        if _result.is_err() {
9349            self.control_handle.shutdown();
9350        }
9351        self.drop_without_shutdown();
9352        _result
9353    }
9354
9355    /// Similar to "send" but does not shutdown the channel if an error occurs.
9356    pub fn send_no_shutdown_on_err(
9357        self,
9358        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
9359    ) -> Result<(), fidl::Error> {
9360        let _result = self.send_raw(result);
9361        self.drop_without_shutdown();
9362        _result
9363    }
9364
9365    fn send_raw(
9366        &self,
9367        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
9368    ) -> Result<(), fidl::Error> {
9369        self.control_handle.inner.send::<fidl::encoding::ResultType<
9370            BaseSocketGetLingerResponse,
9371            fidl_fuchsia_posix::Errno,
9372        >>(
9373            result,
9374            self.tx_id,
9375            0x48eb20fc5ccb0e45,
9376            fidl::encoding::DynamicFlags::empty(),
9377        )
9378    }
9379}
9380
9381#[must_use = "FIDL methods require a response to be sent"]
9382#[derive(Debug)]
9383pub struct BaseDatagramSocketSetReusePortResponder {
9384    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9385    tx_id: u32,
9386}
9387
9388/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9389/// if the responder is dropped without sending a response, so that the client
9390/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9391impl std::ops::Drop for BaseDatagramSocketSetReusePortResponder {
9392    fn drop(&mut self) {
9393        self.control_handle.shutdown();
9394        // Safety: drops once, never accessed again
9395        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9396    }
9397}
9398
9399impl fidl::endpoints::Responder for BaseDatagramSocketSetReusePortResponder {
9400    type ControlHandle = BaseDatagramSocketControlHandle;
9401
9402    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9403        &self.control_handle
9404    }
9405
9406    fn drop_without_shutdown(mut self) {
9407        // Safety: drops once, never accessed again due to mem::forget
9408        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9409        // Prevent Drop from running (which would shut down the channel)
9410        std::mem::forget(self);
9411    }
9412}
9413
9414impl BaseDatagramSocketSetReusePortResponder {
9415    /// Sends a response to the FIDL transaction.
9416    ///
9417    /// Sets the channel to shutdown if an error occurs.
9418    pub fn send(
9419        self,
9420        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9421    ) -> Result<(), fidl::Error> {
9422        let _result = self.send_raw(result);
9423        if _result.is_err() {
9424            self.control_handle.shutdown();
9425        }
9426        self.drop_without_shutdown();
9427        _result
9428    }
9429
9430    /// Similar to "send" but does not shutdown the channel if an error occurs.
9431    pub fn send_no_shutdown_on_err(
9432        self,
9433        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9434    ) -> Result<(), fidl::Error> {
9435        let _result = self.send_raw(result);
9436        self.drop_without_shutdown();
9437        _result
9438    }
9439
9440    fn send_raw(
9441        &self,
9442        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9443    ) -> Result<(), fidl::Error> {
9444        self.control_handle.inner.send::<fidl::encoding::ResultType<
9445            fidl::encoding::EmptyStruct,
9446            fidl_fuchsia_posix::Errno,
9447        >>(
9448            result,
9449            self.tx_id,
9450            0x24dd3e5cb36d9ccb,
9451            fidl::encoding::DynamicFlags::empty(),
9452        )
9453    }
9454}
9455
9456#[must_use = "FIDL methods require a response to be sent"]
9457#[derive(Debug)]
9458pub struct BaseDatagramSocketGetReusePortResponder {
9459    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9460    tx_id: u32,
9461}
9462
9463/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9464/// if the responder is dropped without sending a response, so that the client
9465/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9466impl std::ops::Drop for BaseDatagramSocketGetReusePortResponder {
9467    fn drop(&mut self) {
9468        self.control_handle.shutdown();
9469        // Safety: drops once, never accessed again
9470        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9471    }
9472}
9473
9474impl fidl::endpoints::Responder for BaseDatagramSocketGetReusePortResponder {
9475    type ControlHandle = BaseDatagramSocketControlHandle;
9476
9477    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9478        &self.control_handle
9479    }
9480
9481    fn drop_without_shutdown(mut self) {
9482        // Safety: drops once, never accessed again due to mem::forget
9483        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9484        // Prevent Drop from running (which would shut down the channel)
9485        std::mem::forget(self);
9486    }
9487}
9488
9489impl BaseDatagramSocketGetReusePortResponder {
9490    /// Sends a response to the FIDL transaction.
9491    ///
9492    /// Sets the channel to shutdown if an error occurs.
9493    pub fn send(
9494        self,
9495        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9496    ) -> Result<(), fidl::Error> {
9497        let _result = self.send_raw(result);
9498        if _result.is_err() {
9499            self.control_handle.shutdown();
9500        }
9501        self.drop_without_shutdown();
9502        _result
9503    }
9504
9505    /// Similar to "send" but does not shutdown the channel if an error occurs.
9506    pub fn send_no_shutdown_on_err(
9507        self,
9508        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9509    ) -> Result<(), fidl::Error> {
9510        let _result = self.send_raw(result);
9511        self.drop_without_shutdown();
9512        _result
9513    }
9514
9515    fn send_raw(
9516        &self,
9517        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9518    ) -> Result<(), fidl::Error> {
9519        self.control_handle.inner.send::<fidl::encoding::ResultType<
9520            BaseSocketGetReusePortResponse,
9521            fidl_fuchsia_posix::Errno,
9522        >>(
9523            result.map(|value| (value,)),
9524            self.tx_id,
9525            0x7a112c1ab54ff828,
9526            fidl::encoding::DynamicFlags::empty(),
9527        )
9528    }
9529}
9530
9531#[must_use = "FIDL methods require a response to be sent"]
9532#[derive(Debug)]
9533pub struct BaseDatagramSocketGetAcceptConnResponder {
9534    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9535    tx_id: u32,
9536}
9537
9538/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9539/// if the responder is dropped without sending a response, so that the client
9540/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9541impl std::ops::Drop for BaseDatagramSocketGetAcceptConnResponder {
9542    fn drop(&mut self) {
9543        self.control_handle.shutdown();
9544        // Safety: drops once, never accessed again
9545        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9546    }
9547}
9548
9549impl fidl::endpoints::Responder for BaseDatagramSocketGetAcceptConnResponder {
9550    type ControlHandle = BaseDatagramSocketControlHandle;
9551
9552    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9553        &self.control_handle
9554    }
9555
9556    fn drop_without_shutdown(mut self) {
9557        // Safety: drops once, never accessed again due to mem::forget
9558        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9559        // Prevent Drop from running (which would shut down the channel)
9560        std::mem::forget(self);
9561    }
9562}
9563
9564impl BaseDatagramSocketGetAcceptConnResponder {
9565    /// Sends a response to the FIDL transaction.
9566    ///
9567    /// Sets the channel to shutdown if an error occurs.
9568    pub fn send(
9569        self,
9570        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9571    ) -> Result<(), fidl::Error> {
9572        let _result = self.send_raw(result);
9573        if _result.is_err() {
9574            self.control_handle.shutdown();
9575        }
9576        self.drop_without_shutdown();
9577        _result
9578    }
9579
9580    /// Similar to "send" but does not shutdown the channel if an error occurs.
9581    pub fn send_no_shutdown_on_err(
9582        self,
9583        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9584    ) -> Result<(), fidl::Error> {
9585        let _result = self.send_raw(result);
9586        self.drop_without_shutdown();
9587        _result
9588    }
9589
9590    fn send_raw(
9591        &self,
9592        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
9593    ) -> Result<(), fidl::Error> {
9594        self.control_handle.inner.send::<fidl::encoding::ResultType<
9595            BaseSocketGetAcceptConnResponse,
9596            fidl_fuchsia_posix::Errno,
9597        >>(
9598            result.map(|value| (value,)),
9599            self.tx_id,
9600            0x67ce6db6c2ec8966,
9601            fidl::encoding::DynamicFlags::empty(),
9602        )
9603    }
9604}
9605
9606#[must_use = "FIDL methods require a response to be sent"]
9607#[derive(Debug)]
9608pub struct BaseDatagramSocketSetBindToDeviceResponder {
9609    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9610    tx_id: u32,
9611}
9612
9613/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9614/// if the responder is dropped without sending a response, so that the client
9615/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9616impl std::ops::Drop for BaseDatagramSocketSetBindToDeviceResponder {
9617    fn drop(&mut self) {
9618        self.control_handle.shutdown();
9619        // Safety: drops once, never accessed again
9620        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9621    }
9622}
9623
9624impl fidl::endpoints::Responder for BaseDatagramSocketSetBindToDeviceResponder {
9625    type ControlHandle = BaseDatagramSocketControlHandle;
9626
9627    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9628        &self.control_handle
9629    }
9630
9631    fn drop_without_shutdown(mut self) {
9632        // Safety: drops once, never accessed again due to mem::forget
9633        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9634        // Prevent Drop from running (which would shut down the channel)
9635        std::mem::forget(self);
9636    }
9637}
9638
9639impl BaseDatagramSocketSetBindToDeviceResponder {
9640    /// Sends a response to the FIDL transaction.
9641    ///
9642    /// Sets the channel to shutdown if an error occurs.
9643    pub fn send(
9644        self,
9645        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9646    ) -> Result<(), fidl::Error> {
9647        let _result = self.send_raw(result);
9648        if _result.is_err() {
9649            self.control_handle.shutdown();
9650        }
9651        self.drop_without_shutdown();
9652        _result
9653    }
9654
9655    /// Similar to "send" but does not shutdown the channel if an error occurs.
9656    pub fn send_no_shutdown_on_err(
9657        self,
9658        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9659    ) -> Result<(), fidl::Error> {
9660        let _result = self.send_raw(result);
9661        self.drop_without_shutdown();
9662        _result
9663    }
9664
9665    fn send_raw(
9666        &self,
9667        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9668    ) -> Result<(), fidl::Error> {
9669        self.control_handle.inner.send::<fidl::encoding::ResultType<
9670            fidl::encoding::EmptyStruct,
9671            fidl_fuchsia_posix::Errno,
9672        >>(
9673            result,
9674            self.tx_id,
9675            0x2118b483f28aafc4,
9676            fidl::encoding::DynamicFlags::empty(),
9677        )
9678    }
9679}
9680
9681#[must_use = "FIDL methods require a response to be sent"]
9682#[derive(Debug)]
9683pub struct BaseDatagramSocketGetBindToDeviceResponder {
9684    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9685    tx_id: u32,
9686}
9687
9688/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9689/// if the responder is dropped without sending a response, so that the client
9690/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9691impl std::ops::Drop for BaseDatagramSocketGetBindToDeviceResponder {
9692    fn drop(&mut self) {
9693        self.control_handle.shutdown();
9694        // Safety: drops once, never accessed again
9695        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9696    }
9697}
9698
9699impl fidl::endpoints::Responder for BaseDatagramSocketGetBindToDeviceResponder {
9700    type ControlHandle = BaseDatagramSocketControlHandle;
9701
9702    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9703        &self.control_handle
9704    }
9705
9706    fn drop_without_shutdown(mut self) {
9707        // Safety: drops once, never accessed again due to mem::forget
9708        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9709        // Prevent Drop from running (which would shut down the channel)
9710        std::mem::forget(self);
9711    }
9712}
9713
9714impl BaseDatagramSocketGetBindToDeviceResponder {
9715    /// Sends a response to the FIDL transaction.
9716    ///
9717    /// Sets the channel to shutdown if an error occurs.
9718    pub fn send(
9719        self,
9720        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
9721    ) -> Result<(), fidl::Error> {
9722        let _result = self.send_raw(result);
9723        if _result.is_err() {
9724            self.control_handle.shutdown();
9725        }
9726        self.drop_without_shutdown();
9727        _result
9728    }
9729
9730    /// Similar to "send" but does not shutdown the channel if an error occurs.
9731    pub fn send_no_shutdown_on_err(
9732        self,
9733        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
9734    ) -> Result<(), fidl::Error> {
9735        let _result = self.send_raw(result);
9736        self.drop_without_shutdown();
9737        _result
9738    }
9739
9740    fn send_raw(
9741        &self,
9742        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
9743    ) -> Result<(), fidl::Error> {
9744        self.control_handle.inner.send::<fidl::encoding::ResultType<
9745            BaseSocketGetBindToDeviceResponse,
9746            fidl_fuchsia_posix::Errno,
9747        >>(
9748            result.map(|value| (value,)),
9749            self.tx_id,
9750            0x1ab1fbf0ef7906c8,
9751            fidl::encoding::DynamicFlags::empty(),
9752        )
9753    }
9754}
9755
9756#[must_use = "FIDL methods require a response to be sent"]
9757#[derive(Debug)]
9758pub struct BaseDatagramSocketSetBindToInterfaceIndexResponder {
9759    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9760    tx_id: u32,
9761}
9762
9763/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9764/// if the responder is dropped without sending a response, so that the client
9765/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9766impl std::ops::Drop for BaseDatagramSocketSetBindToInterfaceIndexResponder {
9767    fn drop(&mut self) {
9768        self.control_handle.shutdown();
9769        // Safety: drops once, never accessed again
9770        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9771    }
9772}
9773
9774impl fidl::endpoints::Responder for BaseDatagramSocketSetBindToInterfaceIndexResponder {
9775    type ControlHandle = BaseDatagramSocketControlHandle;
9776
9777    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9778        &self.control_handle
9779    }
9780
9781    fn drop_without_shutdown(mut self) {
9782        // Safety: drops once, never accessed again due to mem::forget
9783        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9784        // Prevent Drop from running (which would shut down the channel)
9785        std::mem::forget(self);
9786    }
9787}
9788
9789impl BaseDatagramSocketSetBindToInterfaceIndexResponder {
9790    /// Sends a response to the FIDL transaction.
9791    ///
9792    /// Sets the channel to shutdown if an error occurs.
9793    pub fn send(
9794        self,
9795        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9796    ) -> Result<(), fidl::Error> {
9797        let _result = self.send_raw(result);
9798        if _result.is_err() {
9799            self.control_handle.shutdown();
9800        }
9801        self.drop_without_shutdown();
9802        _result
9803    }
9804
9805    /// Similar to "send" but does not shutdown the channel if an error occurs.
9806    pub fn send_no_shutdown_on_err(
9807        self,
9808        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9809    ) -> Result<(), fidl::Error> {
9810        let _result = self.send_raw(result);
9811        self.drop_without_shutdown();
9812        _result
9813    }
9814
9815    fn send_raw(
9816        &self,
9817        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9818    ) -> Result<(), fidl::Error> {
9819        self.control_handle.inner.send::<fidl::encoding::ResultType<
9820            fidl::encoding::EmptyStruct,
9821            fidl_fuchsia_posix::Errno,
9822        >>(
9823            result,
9824            self.tx_id,
9825            0x6e387a0def00821,
9826            fidl::encoding::DynamicFlags::empty(),
9827        )
9828    }
9829}
9830
9831#[must_use = "FIDL methods require a response to be sent"]
9832#[derive(Debug)]
9833pub struct BaseDatagramSocketGetBindToInterfaceIndexResponder {
9834    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9835    tx_id: u32,
9836}
9837
9838/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9839/// if the responder is dropped without sending a response, so that the client
9840/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9841impl std::ops::Drop for BaseDatagramSocketGetBindToInterfaceIndexResponder {
9842    fn drop(&mut self) {
9843        self.control_handle.shutdown();
9844        // Safety: drops once, never accessed again
9845        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9846    }
9847}
9848
9849impl fidl::endpoints::Responder for BaseDatagramSocketGetBindToInterfaceIndexResponder {
9850    type ControlHandle = BaseDatagramSocketControlHandle;
9851
9852    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9853        &self.control_handle
9854    }
9855
9856    fn drop_without_shutdown(mut self) {
9857        // Safety: drops once, never accessed again due to mem::forget
9858        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9859        // Prevent Drop from running (which would shut down the channel)
9860        std::mem::forget(self);
9861    }
9862}
9863
9864impl BaseDatagramSocketGetBindToInterfaceIndexResponder {
9865    /// Sends a response to the FIDL transaction.
9866    ///
9867    /// Sets the channel to shutdown if an error occurs.
9868    pub fn send(
9869        self,
9870        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
9871    ) -> Result<(), fidl::Error> {
9872        let _result = self.send_raw(result);
9873        if _result.is_err() {
9874            self.control_handle.shutdown();
9875        }
9876        self.drop_without_shutdown();
9877        _result
9878    }
9879
9880    /// Similar to "send" but does not shutdown the channel if an error occurs.
9881    pub fn send_no_shutdown_on_err(
9882        self,
9883        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
9884    ) -> Result<(), fidl::Error> {
9885        let _result = self.send_raw(result);
9886        self.drop_without_shutdown();
9887        _result
9888    }
9889
9890    fn send_raw(
9891        &self,
9892        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
9893    ) -> Result<(), fidl::Error> {
9894        self.control_handle.inner.send::<fidl::encoding::ResultType<
9895            BaseSocketGetBindToInterfaceIndexResponse,
9896            fidl_fuchsia_posix::Errno,
9897        >>(
9898            result.map(|value| (value,)),
9899            self.tx_id,
9900            0x59c31dd3e3078295,
9901            fidl::encoding::DynamicFlags::empty(),
9902        )
9903    }
9904}
9905
9906#[must_use = "FIDL methods require a response to be sent"]
9907#[derive(Debug)]
9908pub struct BaseDatagramSocketSetTimestampResponder {
9909    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9910    tx_id: u32,
9911}
9912
9913/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9914/// if the responder is dropped without sending a response, so that the client
9915/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9916impl std::ops::Drop for BaseDatagramSocketSetTimestampResponder {
9917    fn drop(&mut self) {
9918        self.control_handle.shutdown();
9919        // Safety: drops once, never accessed again
9920        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9921    }
9922}
9923
9924impl fidl::endpoints::Responder for BaseDatagramSocketSetTimestampResponder {
9925    type ControlHandle = BaseDatagramSocketControlHandle;
9926
9927    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
9928        &self.control_handle
9929    }
9930
9931    fn drop_without_shutdown(mut self) {
9932        // Safety: drops once, never accessed again due to mem::forget
9933        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9934        // Prevent Drop from running (which would shut down the channel)
9935        std::mem::forget(self);
9936    }
9937}
9938
9939impl BaseDatagramSocketSetTimestampResponder {
9940    /// Sends a response to the FIDL transaction.
9941    ///
9942    /// Sets the channel to shutdown if an error occurs.
9943    pub fn send(
9944        self,
9945        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9946    ) -> Result<(), fidl::Error> {
9947        let _result = self.send_raw(result);
9948        if _result.is_err() {
9949            self.control_handle.shutdown();
9950        }
9951        self.drop_without_shutdown();
9952        _result
9953    }
9954
9955    /// Similar to "send" but does not shutdown the channel if an error occurs.
9956    pub fn send_no_shutdown_on_err(
9957        self,
9958        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9959    ) -> Result<(), fidl::Error> {
9960        let _result = self.send_raw(result);
9961        self.drop_without_shutdown();
9962        _result
9963    }
9964
9965    fn send_raw(
9966        &self,
9967        mut result: Result<(), fidl_fuchsia_posix::Errno>,
9968    ) -> Result<(), fidl::Error> {
9969        self.control_handle.inner.send::<fidl::encoding::ResultType<
9970            fidl::encoding::EmptyStruct,
9971            fidl_fuchsia_posix::Errno,
9972        >>(
9973            result,
9974            self.tx_id,
9975            0x285d6516c263d839,
9976            fidl::encoding::DynamicFlags::empty(),
9977        )
9978    }
9979}
9980
9981#[must_use = "FIDL methods require a response to be sent"]
9982#[derive(Debug)]
9983pub struct BaseDatagramSocketGetTimestampResponder {
9984    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
9985    tx_id: u32,
9986}
9987
9988/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
9989/// if the responder is dropped without sending a response, so that the client
9990/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9991impl std::ops::Drop for BaseDatagramSocketGetTimestampResponder {
9992    fn drop(&mut self) {
9993        self.control_handle.shutdown();
9994        // Safety: drops once, never accessed again
9995        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9996    }
9997}
9998
9999impl fidl::endpoints::Responder for BaseDatagramSocketGetTimestampResponder {
10000    type ControlHandle = BaseDatagramSocketControlHandle;
10001
10002    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10003        &self.control_handle
10004    }
10005
10006    fn drop_without_shutdown(mut self) {
10007        // Safety: drops once, never accessed again due to mem::forget
10008        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10009        // Prevent Drop from running (which would shut down the channel)
10010        std::mem::forget(self);
10011    }
10012}
10013
10014impl BaseDatagramSocketGetTimestampResponder {
10015    /// Sends a response to the FIDL transaction.
10016    ///
10017    /// Sets the channel to shutdown if an error occurs.
10018    pub fn send(
10019        self,
10020        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
10021    ) -> Result<(), fidl::Error> {
10022        let _result = self.send_raw(result);
10023        if _result.is_err() {
10024            self.control_handle.shutdown();
10025        }
10026        self.drop_without_shutdown();
10027        _result
10028    }
10029
10030    /// Similar to "send" but does not shutdown the channel if an error occurs.
10031    pub fn send_no_shutdown_on_err(
10032        self,
10033        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
10034    ) -> Result<(), fidl::Error> {
10035        let _result = self.send_raw(result);
10036        self.drop_without_shutdown();
10037        _result
10038    }
10039
10040    fn send_raw(
10041        &self,
10042        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
10043    ) -> Result<(), fidl::Error> {
10044        self.control_handle.inner.send::<fidl::encoding::ResultType<
10045            BaseSocketGetTimestampResponse,
10046            fidl_fuchsia_posix::Errno,
10047        >>(
10048            result.map(|value| (value,)),
10049            self.tx_id,
10050            0x49f2fffbbcc2bd27,
10051            fidl::encoding::DynamicFlags::empty(),
10052        )
10053    }
10054}
10055
10056#[must_use = "FIDL methods require a response to be sent"]
10057#[derive(Debug)]
10058pub struct BaseDatagramSocketSetMarkResponder {
10059    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10060    tx_id: u32,
10061}
10062
10063/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10064/// if the responder is dropped without sending a response, so that the client
10065/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10066impl std::ops::Drop for BaseDatagramSocketSetMarkResponder {
10067    fn drop(&mut self) {
10068        self.control_handle.shutdown();
10069        // Safety: drops once, never accessed again
10070        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10071    }
10072}
10073
10074impl fidl::endpoints::Responder for BaseDatagramSocketSetMarkResponder {
10075    type ControlHandle = BaseDatagramSocketControlHandle;
10076
10077    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10078        &self.control_handle
10079    }
10080
10081    fn drop_without_shutdown(mut self) {
10082        // Safety: drops once, never accessed again due to mem::forget
10083        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10084        // Prevent Drop from running (which would shut down the channel)
10085        std::mem::forget(self);
10086    }
10087}
10088
10089impl BaseDatagramSocketSetMarkResponder {
10090    /// Sends a response to the FIDL transaction.
10091    ///
10092    /// Sets the channel to shutdown if an error occurs.
10093    pub fn send(
10094        self,
10095        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10096    ) -> Result<(), fidl::Error> {
10097        let _result = self.send_raw(result);
10098        if _result.is_err() {
10099            self.control_handle.shutdown();
10100        }
10101        self.drop_without_shutdown();
10102        _result
10103    }
10104
10105    /// Similar to "send" but does not shutdown the channel if an error occurs.
10106    pub fn send_no_shutdown_on_err(
10107        self,
10108        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10109    ) -> Result<(), fidl::Error> {
10110        let _result = self.send_raw(result);
10111        self.drop_without_shutdown();
10112        _result
10113    }
10114
10115    fn send_raw(
10116        &self,
10117        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10118    ) -> Result<(), fidl::Error> {
10119        self.control_handle.inner.send::<fidl::encoding::ResultType<
10120            fidl::encoding::EmptyStruct,
10121            fidl_fuchsia_posix::Errno,
10122        >>(
10123            result,
10124            self.tx_id,
10125            0x6ead6de09f653236,
10126            fidl::encoding::DynamicFlags::empty(),
10127        )
10128    }
10129}
10130
10131#[must_use = "FIDL methods require a response to be sent"]
10132#[derive(Debug)]
10133pub struct BaseDatagramSocketGetMarkResponder {
10134    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10135    tx_id: u32,
10136}
10137
10138/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10139/// if the responder is dropped without sending a response, so that the client
10140/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10141impl std::ops::Drop for BaseDatagramSocketGetMarkResponder {
10142    fn drop(&mut self) {
10143        self.control_handle.shutdown();
10144        // Safety: drops once, never accessed again
10145        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10146    }
10147}
10148
10149impl fidl::endpoints::Responder for BaseDatagramSocketGetMarkResponder {
10150    type ControlHandle = BaseDatagramSocketControlHandle;
10151
10152    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10153        &self.control_handle
10154    }
10155
10156    fn drop_without_shutdown(mut self) {
10157        // Safety: drops once, never accessed again due to mem::forget
10158        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10159        // Prevent Drop from running (which would shut down the channel)
10160        std::mem::forget(self);
10161    }
10162}
10163
10164impl BaseDatagramSocketGetMarkResponder {
10165    /// Sends a response to the FIDL transaction.
10166    ///
10167    /// Sets the channel to shutdown if an error occurs.
10168    pub fn send(
10169        self,
10170        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
10171    ) -> Result<(), fidl::Error> {
10172        let _result = self.send_raw(result);
10173        if _result.is_err() {
10174            self.control_handle.shutdown();
10175        }
10176        self.drop_without_shutdown();
10177        _result
10178    }
10179
10180    /// Similar to "send" but does not shutdown the channel if an error occurs.
10181    pub fn send_no_shutdown_on_err(
10182        self,
10183        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
10184    ) -> Result<(), fidl::Error> {
10185        let _result = self.send_raw(result);
10186        self.drop_without_shutdown();
10187        _result
10188    }
10189
10190    fn send_raw(
10191        &self,
10192        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
10193    ) -> Result<(), fidl::Error> {
10194        self.control_handle.inner.send::<fidl::encoding::ResultType<
10195            BaseSocketGetMarkResponse,
10196            fidl_fuchsia_posix::Errno,
10197        >>(
10198            result.map(|mark| (mark,)),
10199            self.tx_id,
10200            0x57a2752c61d93d47,
10201            fidl::encoding::DynamicFlags::empty(),
10202        )
10203    }
10204}
10205
10206#[must_use = "FIDL methods require a response to be sent"]
10207#[derive(Debug)]
10208pub struct BaseDatagramSocketGetCookieResponder {
10209    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10210    tx_id: u32,
10211}
10212
10213/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10214/// if the responder is dropped without sending a response, so that the client
10215/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10216impl std::ops::Drop for BaseDatagramSocketGetCookieResponder {
10217    fn drop(&mut self) {
10218        self.control_handle.shutdown();
10219        // Safety: drops once, never accessed again
10220        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10221    }
10222}
10223
10224impl fidl::endpoints::Responder for BaseDatagramSocketGetCookieResponder {
10225    type ControlHandle = BaseDatagramSocketControlHandle;
10226
10227    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10228        &self.control_handle
10229    }
10230
10231    fn drop_without_shutdown(mut self) {
10232        // Safety: drops once, never accessed again due to mem::forget
10233        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10234        // Prevent Drop from running (which would shut down the channel)
10235        std::mem::forget(self);
10236    }
10237}
10238
10239impl BaseDatagramSocketGetCookieResponder {
10240    /// Sends a response to the FIDL transaction.
10241    ///
10242    /// Sets the channel to shutdown if an error occurs.
10243    pub fn send(
10244        self,
10245        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10246    ) -> Result<(), fidl::Error> {
10247        let _result = self.send_raw(result);
10248        if _result.is_err() {
10249            self.control_handle.shutdown();
10250        }
10251        self.drop_without_shutdown();
10252        _result
10253    }
10254
10255    /// Similar to "send" but does not shutdown the channel if an error occurs.
10256    pub fn send_no_shutdown_on_err(
10257        self,
10258        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10259    ) -> Result<(), fidl::Error> {
10260        let _result = self.send_raw(result);
10261        self.drop_without_shutdown();
10262        _result
10263    }
10264
10265    fn send_raw(
10266        &self,
10267        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
10268    ) -> Result<(), fidl::Error> {
10269        self.control_handle.inner.send::<fidl::encoding::ResultType<
10270            BaseSocketGetCookieResponse,
10271            fidl_fuchsia_posix::Errno,
10272        >>(
10273            result.map(|value| (value,)),
10274            self.tx_id,
10275            0x2c2f47fd8f924e52,
10276            fidl::encoding::DynamicFlags::empty(),
10277        )
10278    }
10279}
10280
10281#[must_use = "FIDL methods require a response to be sent"]
10282#[derive(Debug)]
10283pub struct BaseDatagramSocketBindResponder {
10284    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10285    tx_id: u32,
10286}
10287
10288/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10289/// if the responder is dropped without sending a response, so that the client
10290/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10291impl std::ops::Drop for BaseDatagramSocketBindResponder {
10292    fn drop(&mut self) {
10293        self.control_handle.shutdown();
10294        // Safety: drops once, never accessed again
10295        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10296    }
10297}
10298
10299impl fidl::endpoints::Responder for BaseDatagramSocketBindResponder {
10300    type ControlHandle = BaseDatagramSocketControlHandle;
10301
10302    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10303        &self.control_handle
10304    }
10305
10306    fn drop_without_shutdown(mut self) {
10307        // Safety: drops once, never accessed again due to mem::forget
10308        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10309        // Prevent Drop from running (which would shut down the channel)
10310        std::mem::forget(self);
10311    }
10312}
10313
10314impl BaseDatagramSocketBindResponder {
10315    /// Sends a response to the FIDL transaction.
10316    ///
10317    /// Sets the channel to shutdown if an error occurs.
10318    pub fn send(
10319        self,
10320        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10321    ) -> Result<(), fidl::Error> {
10322        let _result = self.send_raw(result);
10323        if _result.is_err() {
10324            self.control_handle.shutdown();
10325        }
10326        self.drop_without_shutdown();
10327        _result
10328    }
10329
10330    /// Similar to "send" but does not shutdown the channel if an error occurs.
10331    pub fn send_no_shutdown_on_err(
10332        self,
10333        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10334    ) -> Result<(), fidl::Error> {
10335        let _result = self.send_raw(result);
10336        self.drop_without_shutdown();
10337        _result
10338    }
10339
10340    fn send_raw(
10341        &self,
10342        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10343    ) -> Result<(), fidl::Error> {
10344        self.control_handle.inner.send::<fidl::encoding::ResultType<
10345            fidl::encoding::EmptyStruct,
10346            fidl_fuchsia_posix::Errno,
10347        >>(
10348            result,
10349            self.tx_id,
10350            0x4bc6400ae92125d,
10351            fidl::encoding::DynamicFlags::empty(),
10352        )
10353    }
10354}
10355
10356#[must_use = "FIDL methods require a response to be sent"]
10357#[derive(Debug)]
10358pub struct BaseDatagramSocketConnectResponder {
10359    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10360    tx_id: u32,
10361}
10362
10363/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10364/// if the responder is dropped without sending a response, so that the client
10365/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10366impl std::ops::Drop for BaseDatagramSocketConnectResponder {
10367    fn drop(&mut self) {
10368        self.control_handle.shutdown();
10369        // Safety: drops once, never accessed again
10370        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10371    }
10372}
10373
10374impl fidl::endpoints::Responder for BaseDatagramSocketConnectResponder {
10375    type ControlHandle = BaseDatagramSocketControlHandle;
10376
10377    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10378        &self.control_handle
10379    }
10380
10381    fn drop_without_shutdown(mut self) {
10382        // Safety: drops once, never accessed again due to mem::forget
10383        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10384        // Prevent Drop from running (which would shut down the channel)
10385        std::mem::forget(self);
10386    }
10387}
10388
10389impl BaseDatagramSocketConnectResponder {
10390    /// Sends a response to the FIDL transaction.
10391    ///
10392    /// Sets the channel to shutdown if an error occurs.
10393    pub fn send(
10394        self,
10395        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10396    ) -> Result<(), fidl::Error> {
10397        let _result = self.send_raw(result);
10398        if _result.is_err() {
10399            self.control_handle.shutdown();
10400        }
10401        self.drop_without_shutdown();
10402        _result
10403    }
10404
10405    /// Similar to "send" but does not shutdown the channel if an error occurs.
10406    pub fn send_no_shutdown_on_err(
10407        self,
10408        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10409    ) -> Result<(), fidl::Error> {
10410        let _result = self.send_raw(result);
10411        self.drop_without_shutdown();
10412        _result
10413    }
10414
10415    fn send_raw(
10416        &self,
10417        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10418    ) -> Result<(), fidl::Error> {
10419        self.control_handle.inner.send::<fidl::encoding::ResultType<
10420            fidl::encoding::EmptyStruct,
10421            fidl_fuchsia_posix::Errno,
10422        >>(
10423            result,
10424            self.tx_id,
10425            0x5f05f19bfdd38871,
10426            fidl::encoding::DynamicFlags::empty(),
10427        )
10428    }
10429}
10430
10431#[must_use = "FIDL methods require a response to be sent"]
10432#[derive(Debug)]
10433pub struct BaseDatagramSocketDisconnectResponder {
10434    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10435    tx_id: u32,
10436}
10437
10438/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10439/// if the responder is dropped without sending a response, so that the client
10440/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10441impl std::ops::Drop for BaseDatagramSocketDisconnectResponder {
10442    fn drop(&mut self) {
10443        self.control_handle.shutdown();
10444        // Safety: drops once, never accessed again
10445        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10446    }
10447}
10448
10449impl fidl::endpoints::Responder for BaseDatagramSocketDisconnectResponder {
10450    type ControlHandle = BaseDatagramSocketControlHandle;
10451
10452    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10453        &self.control_handle
10454    }
10455
10456    fn drop_without_shutdown(mut self) {
10457        // Safety: drops once, never accessed again due to mem::forget
10458        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10459        // Prevent Drop from running (which would shut down the channel)
10460        std::mem::forget(self);
10461    }
10462}
10463
10464impl BaseDatagramSocketDisconnectResponder {
10465    /// Sends a response to the FIDL transaction.
10466    ///
10467    /// Sets the channel to shutdown if an error occurs.
10468    pub fn send(
10469        self,
10470        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10471    ) -> Result<(), fidl::Error> {
10472        let _result = self.send_raw(result);
10473        if _result.is_err() {
10474            self.control_handle.shutdown();
10475        }
10476        self.drop_without_shutdown();
10477        _result
10478    }
10479
10480    /// Similar to "send" but does not shutdown the channel if an error occurs.
10481    pub fn send_no_shutdown_on_err(
10482        self,
10483        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10484    ) -> Result<(), fidl::Error> {
10485        let _result = self.send_raw(result);
10486        self.drop_without_shutdown();
10487        _result
10488    }
10489
10490    fn send_raw(
10491        &self,
10492        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10493    ) -> Result<(), fidl::Error> {
10494        self.control_handle.inner.send::<fidl::encoding::ResultType<
10495            fidl::encoding::EmptyStruct,
10496            fidl_fuchsia_posix::Errno,
10497        >>(
10498            result,
10499            self.tx_id,
10500            0x74e63b91f7b29b2,
10501            fidl::encoding::DynamicFlags::empty(),
10502        )
10503    }
10504}
10505
10506#[must_use = "FIDL methods require a response to be sent"]
10507#[derive(Debug)]
10508pub struct BaseDatagramSocketGetSockNameResponder {
10509    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10510    tx_id: u32,
10511}
10512
10513/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10514/// if the responder is dropped without sending a response, so that the client
10515/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10516impl std::ops::Drop for BaseDatagramSocketGetSockNameResponder {
10517    fn drop(&mut self) {
10518        self.control_handle.shutdown();
10519        // Safety: drops once, never accessed again
10520        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10521    }
10522}
10523
10524impl fidl::endpoints::Responder for BaseDatagramSocketGetSockNameResponder {
10525    type ControlHandle = BaseDatagramSocketControlHandle;
10526
10527    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10528        &self.control_handle
10529    }
10530
10531    fn drop_without_shutdown(mut self) {
10532        // Safety: drops once, never accessed again due to mem::forget
10533        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10534        // Prevent Drop from running (which would shut down the channel)
10535        std::mem::forget(self);
10536    }
10537}
10538
10539impl BaseDatagramSocketGetSockNameResponder {
10540    /// Sends a response to the FIDL transaction.
10541    ///
10542    /// Sets the channel to shutdown if an error occurs.
10543    pub fn send(
10544        self,
10545        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10546    ) -> Result<(), fidl::Error> {
10547        let _result = self.send_raw(result);
10548        if _result.is_err() {
10549            self.control_handle.shutdown();
10550        }
10551        self.drop_without_shutdown();
10552        _result
10553    }
10554
10555    /// Similar to "send" but does not shutdown the channel if an error occurs.
10556    pub fn send_no_shutdown_on_err(
10557        self,
10558        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10559    ) -> Result<(), fidl::Error> {
10560        let _result = self.send_raw(result);
10561        self.drop_without_shutdown();
10562        _result
10563    }
10564
10565    fn send_raw(
10566        &self,
10567        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10568    ) -> Result<(), fidl::Error> {
10569        self.control_handle.inner.send::<fidl::encoding::ResultType<
10570            BaseNetworkSocketGetSockNameResponse,
10571            fidl_fuchsia_posix::Errno,
10572        >>(
10573            result.map(|addr| (addr,)),
10574            self.tx_id,
10575            0x475f23f84a1a4f85,
10576            fidl::encoding::DynamicFlags::empty(),
10577        )
10578    }
10579}
10580
10581#[must_use = "FIDL methods require a response to be sent"]
10582#[derive(Debug)]
10583pub struct BaseDatagramSocketGetPeerNameResponder {
10584    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10585    tx_id: u32,
10586}
10587
10588/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10589/// if the responder is dropped without sending a response, so that the client
10590/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10591impl std::ops::Drop for BaseDatagramSocketGetPeerNameResponder {
10592    fn drop(&mut self) {
10593        self.control_handle.shutdown();
10594        // Safety: drops once, never accessed again
10595        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10596    }
10597}
10598
10599impl fidl::endpoints::Responder for BaseDatagramSocketGetPeerNameResponder {
10600    type ControlHandle = BaseDatagramSocketControlHandle;
10601
10602    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10603        &self.control_handle
10604    }
10605
10606    fn drop_without_shutdown(mut self) {
10607        // Safety: drops once, never accessed again due to mem::forget
10608        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10609        // Prevent Drop from running (which would shut down the channel)
10610        std::mem::forget(self);
10611    }
10612}
10613
10614impl BaseDatagramSocketGetPeerNameResponder {
10615    /// Sends a response to the FIDL transaction.
10616    ///
10617    /// Sets the channel to shutdown if an error occurs.
10618    pub fn send(
10619        self,
10620        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10621    ) -> Result<(), fidl::Error> {
10622        let _result = self.send_raw(result);
10623        if _result.is_err() {
10624            self.control_handle.shutdown();
10625        }
10626        self.drop_without_shutdown();
10627        _result
10628    }
10629
10630    /// Similar to "send" but does not shutdown the channel if an error occurs.
10631    pub fn send_no_shutdown_on_err(
10632        self,
10633        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10634    ) -> Result<(), fidl::Error> {
10635        let _result = self.send_raw(result);
10636        self.drop_without_shutdown();
10637        _result
10638    }
10639
10640    fn send_raw(
10641        &self,
10642        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
10643    ) -> Result<(), fidl::Error> {
10644        self.control_handle.inner.send::<fidl::encoding::ResultType<
10645            BaseNetworkSocketGetPeerNameResponse,
10646            fidl_fuchsia_posix::Errno,
10647        >>(
10648            result.map(|addr| (addr,)),
10649            self.tx_id,
10650            0x1ffecf4bd5b6432e,
10651            fidl::encoding::DynamicFlags::empty(),
10652        )
10653    }
10654}
10655
10656#[must_use = "FIDL methods require a response to be sent"]
10657#[derive(Debug)]
10658pub struct BaseDatagramSocketShutdownResponder {
10659    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10660    tx_id: u32,
10661}
10662
10663/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10664/// if the responder is dropped without sending a response, so that the client
10665/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10666impl std::ops::Drop for BaseDatagramSocketShutdownResponder {
10667    fn drop(&mut self) {
10668        self.control_handle.shutdown();
10669        // Safety: drops once, never accessed again
10670        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10671    }
10672}
10673
10674impl fidl::endpoints::Responder for BaseDatagramSocketShutdownResponder {
10675    type ControlHandle = BaseDatagramSocketControlHandle;
10676
10677    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10678        &self.control_handle
10679    }
10680
10681    fn drop_without_shutdown(mut self) {
10682        // Safety: drops once, never accessed again due to mem::forget
10683        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10684        // Prevent Drop from running (which would shut down the channel)
10685        std::mem::forget(self);
10686    }
10687}
10688
10689impl BaseDatagramSocketShutdownResponder {
10690    /// Sends a response to the FIDL transaction.
10691    ///
10692    /// Sets the channel to shutdown if an error occurs.
10693    pub fn send(
10694        self,
10695        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10696    ) -> Result<(), fidl::Error> {
10697        let _result = self.send_raw(result);
10698        if _result.is_err() {
10699            self.control_handle.shutdown();
10700        }
10701        self.drop_without_shutdown();
10702        _result
10703    }
10704
10705    /// Similar to "send" but does not shutdown the channel if an error occurs.
10706    pub fn send_no_shutdown_on_err(
10707        self,
10708        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10709    ) -> Result<(), fidl::Error> {
10710        let _result = self.send_raw(result);
10711        self.drop_without_shutdown();
10712        _result
10713    }
10714
10715    fn send_raw(
10716        &self,
10717        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10718    ) -> Result<(), fidl::Error> {
10719        self.control_handle.inner.send::<fidl::encoding::ResultType<
10720            fidl::encoding::EmptyStruct,
10721            fidl_fuchsia_posix::Errno,
10722        >>(
10723            result,
10724            self.tx_id,
10725            0x247f38b6db68c336,
10726            fidl::encoding::DynamicFlags::empty(),
10727        )
10728    }
10729}
10730
10731#[must_use = "FIDL methods require a response to be sent"]
10732#[derive(Debug)]
10733pub struct BaseDatagramSocketSetIpTypeOfServiceResponder {
10734    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10735    tx_id: u32,
10736}
10737
10738/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10739/// if the responder is dropped without sending a response, so that the client
10740/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10741impl std::ops::Drop for BaseDatagramSocketSetIpTypeOfServiceResponder {
10742    fn drop(&mut self) {
10743        self.control_handle.shutdown();
10744        // Safety: drops once, never accessed again
10745        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10746    }
10747}
10748
10749impl fidl::endpoints::Responder for BaseDatagramSocketSetIpTypeOfServiceResponder {
10750    type ControlHandle = BaseDatagramSocketControlHandle;
10751
10752    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10753        &self.control_handle
10754    }
10755
10756    fn drop_without_shutdown(mut self) {
10757        // Safety: drops once, never accessed again due to mem::forget
10758        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10759        // Prevent Drop from running (which would shut down the channel)
10760        std::mem::forget(self);
10761    }
10762}
10763
10764impl BaseDatagramSocketSetIpTypeOfServiceResponder {
10765    /// Sends a response to the FIDL transaction.
10766    ///
10767    /// Sets the channel to shutdown if an error occurs.
10768    pub fn send(
10769        self,
10770        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10771    ) -> Result<(), fidl::Error> {
10772        let _result = self.send_raw(result);
10773        if _result.is_err() {
10774            self.control_handle.shutdown();
10775        }
10776        self.drop_without_shutdown();
10777        _result
10778    }
10779
10780    /// Similar to "send" but does not shutdown the channel if an error occurs.
10781    pub fn send_no_shutdown_on_err(
10782        self,
10783        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10784    ) -> Result<(), fidl::Error> {
10785        let _result = self.send_raw(result);
10786        self.drop_without_shutdown();
10787        _result
10788    }
10789
10790    fn send_raw(
10791        &self,
10792        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10793    ) -> Result<(), fidl::Error> {
10794        self.control_handle.inner.send::<fidl::encoding::ResultType<
10795            fidl::encoding::EmptyStruct,
10796            fidl_fuchsia_posix::Errno,
10797        >>(
10798            result,
10799            self.tx_id,
10800            0x995c600475b6d46,
10801            fidl::encoding::DynamicFlags::empty(),
10802        )
10803    }
10804}
10805
10806#[must_use = "FIDL methods require a response to be sent"]
10807#[derive(Debug)]
10808pub struct BaseDatagramSocketGetIpTypeOfServiceResponder {
10809    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10810    tx_id: u32,
10811}
10812
10813/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10814/// if the responder is dropped without sending a response, so that the client
10815/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10816impl std::ops::Drop for BaseDatagramSocketGetIpTypeOfServiceResponder {
10817    fn drop(&mut self) {
10818        self.control_handle.shutdown();
10819        // Safety: drops once, never accessed again
10820        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10821    }
10822}
10823
10824impl fidl::endpoints::Responder for BaseDatagramSocketGetIpTypeOfServiceResponder {
10825    type ControlHandle = BaseDatagramSocketControlHandle;
10826
10827    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10828        &self.control_handle
10829    }
10830
10831    fn drop_without_shutdown(mut self) {
10832        // Safety: drops once, never accessed again due to mem::forget
10833        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10834        // Prevent Drop from running (which would shut down the channel)
10835        std::mem::forget(self);
10836    }
10837}
10838
10839impl BaseDatagramSocketGetIpTypeOfServiceResponder {
10840    /// Sends a response to the FIDL transaction.
10841    ///
10842    /// Sets the channel to shutdown if an error occurs.
10843    pub fn send(
10844        self,
10845        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10846    ) -> Result<(), fidl::Error> {
10847        let _result = self.send_raw(result);
10848        if _result.is_err() {
10849            self.control_handle.shutdown();
10850        }
10851        self.drop_without_shutdown();
10852        _result
10853    }
10854
10855    /// Similar to "send" but does not shutdown the channel if an error occurs.
10856    pub fn send_no_shutdown_on_err(
10857        self,
10858        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10859    ) -> Result<(), fidl::Error> {
10860        let _result = self.send_raw(result);
10861        self.drop_without_shutdown();
10862        _result
10863    }
10864
10865    fn send_raw(
10866        &self,
10867        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10868    ) -> Result<(), fidl::Error> {
10869        self.control_handle.inner.send::<fidl::encoding::ResultType<
10870            BaseNetworkSocketGetIpTypeOfServiceResponse,
10871            fidl_fuchsia_posix::Errno,
10872        >>(
10873            result.map(|value| (value,)),
10874            self.tx_id,
10875            0x3814a04259f75fcb,
10876            fidl::encoding::DynamicFlags::empty(),
10877        )
10878    }
10879}
10880
10881#[must_use = "FIDL methods require a response to be sent"]
10882#[derive(Debug)]
10883pub struct BaseDatagramSocketSetIpTtlResponder {
10884    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10885    tx_id: u32,
10886}
10887
10888/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10889/// if the responder is dropped without sending a response, so that the client
10890/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10891impl std::ops::Drop for BaseDatagramSocketSetIpTtlResponder {
10892    fn drop(&mut self) {
10893        self.control_handle.shutdown();
10894        // Safety: drops once, never accessed again
10895        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10896    }
10897}
10898
10899impl fidl::endpoints::Responder for BaseDatagramSocketSetIpTtlResponder {
10900    type ControlHandle = BaseDatagramSocketControlHandle;
10901
10902    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10903        &self.control_handle
10904    }
10905
10906    fn drop_without_shutdown(mut self) {
10907        // Safety: drops once, never accessed again due to mem::forget
10908        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10909        // Prevent Drop from running (which would shut down the channel)
10910        std::mem::forget(self);
10911    }
10912}
10913
10914impl BaseDatagramSocketSetIpTtlResponder {
10915    /// Sends a response to the FIDL transaction.
10916    ///
10917    /// Sets the channel to shutdown if an error occurs.
10918    pub fn send(
10919        self,
10920        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10921    ) -> Result<(), fidl::Error> {
10922        let _result = self.send_raw(result);
10923        if _result.is_err() {
10924            self.control_handle.shutdown();
10925        }
10926        self.drop_without_shutdown();
10927        _result
10928    }
10929
10930    /// Similar to "send" but does not shutdown the channel if an error occurs.
10931    pub fn send_no_shutdown_on_err(
10932        self,
10933        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10934    ) -> Result<(), fidl::Error> {
10935        let _result = self.send_raw(result);
10936        self.drop_without_shutdown();
10937        _result
10938    }
10939
10940    fn send_raw(
10941        &self,
10942        mut result: Result<(), fidl_fuchsia_posix::Errno>,
10943    ) -> Result<(), fidl::Error> {
10944        self.control_handle.inner.send::<fidl::encoding::ResultType<
10945            fidl::encoding::EmptyStruct,
10946            fidl_fuchsia_posix::Errno,
10947        >>(
10948            result,
10949            self.tx_id,
10950            0x29e2424b433ae1ef,
10951            fidl::encoding::DynamicFlags::empty(),
10952        )
10953    }
10954}
10955
10956#[must_use = "FIDL methods require a response to be sent"]
10957#[derive(Debug)]
10958pub struct BaseDatagramSocketGetIpTtlResponder {
10959    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
10960    tx_id: u32,
10961}
10962
10963/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
10964/// if the responder is dropped without sending a response, so that the client
10965/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
10966impl std::ops::Drop for BaseDatagramSocketGetIpTtlResponder {
10967    fn drop(&mut self) {
10968        self.control_handle.shutdown();
10969        // Safety: drops once, never accessed again
10970        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10971    }
10972}
10973
10974impl fidl::endpoints::Responder for BaseDatagramSocketGetIpTtlResponder {
10975    type ControlHandle = BaseDatagramSocketControlHandle;
10976
10977    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
10978        &self.control_handle
10979    }
10980
10981    fn drop_without_shutdown(mut self) {
10982        // Safety: drops once, never accessed again due to mem::forget
10983        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
10984        // Prevent Drop from running (which would shut down the channel)
10985        std::mem::forget(self);
10986    }
10987}
10988
10989impl BaseDatagramSocketGetIpTtlResponder {
10990    /// Sends a response to the FIDL transaction.
10991    ///
10992    /// Sets the channel to shutdown if an error occurs.
10993    pub fn send(
10994        self,
10995        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
10996    ) -> Result<(), fidl::Error> {
10997        let _result = self.send_raw(result);
10998        if _result.is_err() {
10999            self.control_handle.shutdown();
11000        }
11001        self.drop_without_shutdown();
11002        _result
11003    }
11004
11005    /// Similar to "send" but does not shutdown the channel if an error occurs.
11006    pub fn send_no_shutdown_on_err(
11007        self,
11008        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11009    ) -> Result<(), fidl::Error> {
11010        let _result = self.send_raw(result);
11011        self.drop_without_shutdown();
11012        _result
11013    }
11014
11015    fn send_raw(
11016        &self,
11017        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11018    ) -> Result<(), fidl::Error> {
11019        self.control_handle.inner.send::<fidl::encoding::ResultType<
11020            BaseNetworkSocketGetIpTtlResponse,
11021            fidl_fuchsia_posix::Errno,
11022        >>(
11023            result.map(|value| (value,)),
11024            self.tx_id,
11025            0x47e47fa1f24da471,
11026            fidl::encoding::DynamicFlags::empty(),
11027        )
11028    }
11029}
11030
11031#[must_use = "FIDL methods require a response to be sent"]
11032#[derive(Debug)]
11033pub struct BaseDatagramSocketSetIpPacketInfoResponder {
11034    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11035    tx_id: u32,
11036}
11037
11038/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11039/// if the responder is dropped without sending a response, so that the client
11040/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11041impl std::ops::Drop for BaseDatagramSocketSetIpPacketInfoResponder {
11042    fn drop(&mut self) {
11043        self.control_handle.shutdown();
11044        // Safety: drops once, never accessed again
11045        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11046    }
11047}
11048
11049impl fidl::endpoints::Responder for BaseDatagramSocketSetIpPacketInfoResponder {
11050    type ControlHandle = BaseDatagramSocketControlHandle;
11051
11052    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11053        &self.control_handle
11054    }
11055
11056    fn drop_without_shutdown(mut self) {
11057        // Safety: drops once, never accessed again due to mem::forget
11058        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11059        // Prevent Drop from running (which would shut down the channel)
11060        std::mem::forget(self);
11061    }
11062}
11063
11064impl BaseDatagramSocketSetIpPacketInfoResponder {
11065    /// Sends a response to the FIDL transaction.
11066    ///
11067    /// Sets the channel to shutdown if an error occurs.
11068    pub fn send(
11069        self,
11070        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11071    ) -> Result<(), fidl::Error> {
11072        let _result = self.send_raw(result);
11073        if _result.is_err() {
11074            self.control_handle.shutdown();
11075        }
11076        self.drop_without_shutdown();
11077        _result
11078    }
11079
11080    /// Similar to "send" but does not shutdown the channel if an error occurs.
11081    pub fn send_no_shutdown_on_err(
11082        self,
11083        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11084    ) -> Result<(), fidl::Error> {
11085        let _result = self.send_raw(result);
11086        self.drop_without_shutdown();
11087        _result
11088    }
11089
11090    fn send_raw(
11091        &self,
11092        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11093    ) -> Result<(), fidl::Error> {
11094        self.control_handle.inner.send::<fidl::encoding::ResultType<
11095            fidl::encoding::EmptyStruct,
11096            fidl_fuchsia_posix::Errno,
11097        >>(
11098            result,
11099            self.tx_id,
11100            0x392d16bee20c0e16,
11101            fidl::encoding::DynamicFlags::empty(),
11102        )
11103    }
11104}
11105
11106#[must_use = "FIDL methods require a response to be sent"]
11107#[derive(Debug)]
11108pub struct BaseDatagramSocketGetIpPacketInfoResponder {
11109    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11110    tx_id: u32,
11111}
11112
11113/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11114/// if the responder is dropped without sending a response, so that the client
11115/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11116impl std::ops::Drop for BaseDatagramSocketGetIpPacketInfoResponder {
11117    fn drop(&mut self) {
11118        self.control_handle.shutdown();
11119        // Safety: drops once, never accessed again
11120        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11121    }
11122}
11123
11124impl fidl::endpoints::Responder for BaseDatagramSocketGetIpPacketInfoResponder {
11125    type ControlHandle = BaseDatagramSocketControlHandle;
11126
11127    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11128        &self.control_handle
11129    }
11130
11131    fn drop_without_shutdown(mut self) {
11132        // Safety: drops once, never accessed again due to mem::forget
11133        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11134        // Prevent Drop from running (which would shut down the channel)
11135        std::mem::forget(self);
11136    }
11137}
11138
11139impl BaseDatagramSocketGetIpPacketInfoResponder {
11140    /// Sends a response to the FIDL transaction.
11141    ///
11142    /// Sets the channel to shutdown if an error occurs.
11143    pub fn send(
11144        self,
11145        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11146    ) -> Result<(), fidl::Error> {
11147        let _result = self.send_raw(result);
11148        if _result.is_err() {
11149            self.control_handle.shutdown();
11150        }
11151        self.drop_without_shutdown();
11152        _result
11153    }
11154
11155    /// Similar to "send" but does not shutdown the channel if an error occurs.
11156    pub fn send_no_shutdown_on_err(
11157        self,
11158        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11159    ) -> Result<(), fidl::Error> {
11160        let _result = self.send_raw(result);
11161        self.drop_without_shutdown();
11162        _result
11163    }
11164
11165    fn send_raw(
11166        &self,
11167        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11168    ) -> Result<(), fidl::Error> {
11169        self.control_handle.inner.send::<fidl::encoding::ResultType<
11170            BaseNetworkSocketGetIpPacketInfoResponse,
11171            fidl_fuchsia_posix::Errno,
11172        >>(
11173            result.map(|value| (value,)),
11174            self.tx_id,
11175            0x54b505f242280740,
11176            fidl::encoding::DynamicFlags::empty(),
11177        )
11178    }
11179}
11180
11181#[must_use = "FIDL methods require a response to be sent"]
11182#[derive(Debug)]
11183pub struct BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11184    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11185    tx_id: u32,
11186}
11187
11188/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11189/// if the responder is dropped without sending a response, so that the client
11190/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11191impl std::ops::Drop for BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11192    fn drop(&mut self) {
11193        self.control_handle.shutdown();
11194        // Safety: drops once, never accessed again
11195        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11196    }
11197}
11198
11199impl fidl::endpoints::Responder for BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11200    type ControlHandle = BaseDatagramSocketControlHandle;
11201
11202    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11203        &self.control_handle
11204    }
11205
11206    fn drop_without_shutdown(mut self) {
11207        // Safety: drops once, never accessed again due to mem::forget
11208        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11209        // Prevent Drop from running (which would shut down the channel)
11210        std::mem::forget(self);
11211    }
11212}
11213
11214impl BaseDatagramSocketSetIpReceiveTypeOfServiceResponder {
11215    /// Sends a response to the FIDL transaction.
11216    ///
11217    /// Sets the channel to shutdown if an error occurs.
11218    pub fn send(
11219        self,
11220        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11221    ) -> Result<(), fidl::Error> {
11222        let _result = self.send_raw(result);
11223        if _result.is_err() {
11224            self.control_handle.shutdown();
11225        }
11226        self.drop_without_shutdown();
11227        _result
11228    }
11229
11230    /// Similar to "send" but does not shutdown the channel if an error occurs.
11231    pub fn send_no_shutdown_on_err(
11232        self,
11233        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11234    ) -> Result<(), fidl::Error> {
11235        let _result = self.send_raw(result);
11236        self.drop_without_shutdown();
11237        _result
11238    }
11239
11240    fn send_raw(
11241        &self,
11242        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11243    ) -> Result<(), fidl::Error> {
11244        self.control_handle.inner.send::<fidl::encoding::ResultType<
11245            fidl::encoding::EmptyStruct,
11246            fidl_fuchsia_posix::Errno,
11247        >>(
11248            result,
11249            self.tx_id,
11250            0x6c4f6714995f84ef,
11251            fidl::encoding::DynamicFlags::empty(),
11252        )
11253    }
11254}
11255
11256#[must_use = "FIDL methods require a response to be sent"]
11257#[derive(Debug)]
11258pub struct BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11259    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11260    tx_id: u32,
11261}
11262
11263/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11264/// if the responder is dropped without sending a response, so that the client
11265/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11266impl std::ops::Drop for BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11267    fn drop(&mut self) {
11268        self.control_handle.shutdown();
11269        // Safety: drops once, never accessed again
11270        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11271    }
11272}
11273
11274impl fidl::endpoints::Responder for BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11275    type ControlHandle = BaseDatagramSocketControlHandle;
11276
11277    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11278        &self.control_handle
11279    }
11280
11281    fn drop_without_shutdown(mut self) {
11282        // Safety: drops once, never accessed again due to mem::forget
11283        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11284        // Prevent Drop from running (which would shut down the channel)
11285        std::mem::forget(self);
11286    }
11287}
11288
11289impl BaseDatagramSocketGetIpReceiveTypeOfServiceResponder {
11290    /// Sends a response to the FIDL transaction.
11291    ///
11292    /// Sets the channel to shutdown if an error occurs.
11293    pub fn send(
11294        self,
11295        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11296    ) -> Result<(), fidl::Error> {
11297        let _result = self.send_raw(result);
11298        if _result.is_err() {
11299            self.control_handle.shutdown();
11300        }
11301        self.drop_without_shutdown();
11302        _result
11303    }
11304
11305    /// Similar to "send" but does not shutdown the channel if an error occurs.
11306    pub fn send_no_shutdown_on_err(
11307        self,
11308        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11309    ) -> Result<(), fidl::Error> {
11310        let _result = self.send_raw(result);
11311        self.drop_without_shutdown();
11312        _result
11313    }
11314
11315    fn send_raw(
11316        &self,
11317        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11318    ) -> Result<(), fidl::Error> {
11319        self.control_handle.inner.send::<fidl::encoding::ResultType<
11320            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
11321            fidl_fuchsia_posix::Errno,
11322        >>(
11323            result.map(|value| (value,)),
11324            self.tx_id,
11325            0x4158ba7dc2795960,
11326            fidl::encoding::DynamicFlags::empty(),
11327        )
11328    }
11329}
11330
11331#[must_use = "FIDL methods require a response to be sent"]
11332#[derive(Debug)]
11333pub struct BaseDatagramSocketSetIpReceiveTtlResponder {
11334    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11335    tx_id: u32,
11336}
11337
11338/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11339/// if the responder is dropped without sending a response, so that the client
11340/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11341impl std::ops::Drop for BaseDatagramSocketSetIpReceiveTtlResponder {
11342    fn drop(&mut self) {
11343        self.control_handle.shutdown();
11344        // Safety: drops once, never accessed again
11345        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11346    }
11347}
11348
11349impl fidl::endpoints::Responder for BaseDatagramSocketSetIpReceiveTtlResponder {
11350    type ControlHandle = BaseDatagramSocketControlHandle;
11351
11352    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11353        &self.control_handle
11354    }
11355
11356    fn drop_without_shutdown(mut self) {
11357        // Safety: drops once, never accessed again due to mem::forget
11358        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11359        // Prevent Drop from running (which would shut down the channel)
11360        std::mem::forget(self);
11361    }
11362}
11363
11364impl BaseDatagramSocketSetIpReceiveTtlResponder {
11365    /// Sends a response to the FIDL transaction.
11366    ///
11367    /// Sets the channel to shutdown if an error occurs.
11368    pub fn send(
11369        self,
11370        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11371    ) -> Result<(), fidl::Error> {
11372        let _result = self.send_raw(result);
11373        if _result.is_err() {
11374            self.control_handle.shutdown();
11375        }
11376        self.drop_without_shutdown();
11377        _result
11378    }
11379
11380    /// Similar to "send" but does not shutdown the channel if an error occurs.
11381    pub fn send_no_shutdown_on_err(
11382        self,
11383        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11384    ) -> Result<(), fidl::Error> {
11385        let _result = self.send_raw(result);
11386        self.drop_without_shutdown();
11387        _result
11388    }
11389
11390    fn send_raw(
11391        &self,
11392        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11393    ) -> Result<(), fidl::Error> {
11394        self.control_handle.inner.send::<fidl::encoding::ResultType<
11395            fidl::encoding::EmptyStruct,
11396            fidl_fuchsia_posix::Errno,
11397        >>(
11398            result,
11399            self.tx_id,
11400            0x46f15be0ce0ab82b,
11401            fidl::encoding::DynamicFlags::empty(),
11402        )
11403    }
11404}
11405
11406#[must_use = "FIDL methods require a response to be sent"]
11407#[derive(Debug)]
11408pub struct BaseDatagramSocketGetIpReceiveTtlResponder {
11409    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11410    tx_id: u32,
11411}
11412
11413/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11414/// if the responder is dropped without sending a response, so that the client
11415/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11416impl std::ops::Drop for BaseDatagramSocketGetIpReceiveTtlResponder {
11417    fn drop(&mut self) {
11418        self.control_handle.shutdown();
11419        // Safety: drops once, never accessed again
11420        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11421    }
11422}
11423
11424impl fidl::endpoints::Responder for BaseDatagramSocketGetIpReceiveTtlResponder {
11425    type ControlHandle = BaseDatagramSocketControlHandle;
11426
11427    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11428        &self.control_handle
11429    }
11430
11431    fn drop_without_shutdown(mut self) {
11432        // Safety: drops once, never accessed again due to mem::forget
11433        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11434        // Prevent Drop from running (which would shut down the channel)
11435        std::mem::forget(self);
11436    }
11437}
11438
11439impl BaseDatagramSocketGetIpReceiveTtlResponder {
11440    /// Sends a response to the FIDL transaction.
11441    ///
11442    /// Sets the channel to shutdown if an error occurs.
11443    pub fn send(
11444        self,
11445        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11446    ) -> Result<(), fidl::Error> {
11447        let _result = self.send_raw(result);
11448        if _result.is_err() {
11449            self.control_handle.shutdown();
11450        }
11451        self.drop_without_shutdown();
11452        _result
11453    }
11454
11455    /// Similar to "send" but does not shutdown the channel if an error occurs.
11456    pub fn send_no_shutdown_on_err(
11457        self,
11458        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11459    ) -> Result<(), fidl::Error> {
11460        let _result = self.send_raw(result);
11461        self.drop_without_shutdown();
11462        _result
11463    }
11464
11465    fn send_raw(
11466        &self,
11467        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11468    ) -> Result<(), fidl::Error> {
11469        self.control_handle.inner.send::<fidl::encoding::ResultType<
11470            BaseNetworkSocketGetIpReceiveTtlResponse,
11471            fidl_fuchsia_posix::Errno,
11472        >>(
11473            result.map(|value| (value,)),
11474            self.tx_id,
11475            0x678ddd5a5dfa2eb5,
11476            fidl::encoding::DynamicFlags::empty(),
11477        )
11478    }
11479}
11480
11481#[must_use = "FIDL methods require a response to be sent"]
11482#[derive(Debug)]
11483pub struct BaseDatagramSocketSetIpMulticastInterfaceResponder {
11484    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11485    tx_id: u32,
11486}
11487
11488/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11489/// if the responder is dropped without sending a response, so that the client
11490/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11491impl std::ops::Drop for BaseDatagramSocketSetIpMulticastInterfaceResponder {
11492    fn drop(&mut self) {
11493        self.control_handle.shutdown();
11494        // Safety: drops once, never accessed again
11495        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11496    }
11497}
11498
11499impl fidl::endpoints::Responder for BaseDatagramSocketSetIpMulticastInterfaceResponder {
11500    type ControlHandle = BaseDatagramSocketControlHandle;
11501
11502    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11503        &self.control_handle
11504    }
11505
11506    fn drop_without_shutdown(mut self) {
11507        // Safety: drops once, never accessed again due to mem::forget
11508        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11509        // Prevent Drop from running (which would shut down the channel)
11510        std::mem::forget(self);
11511    }
11512}
11513
11514impl BaseDatagramSocketSetIpMulticastInterfaceResponder {
11515    /// Sends a response to the FIDL transaction.
11516    ///
11517    /// Sets the channel to shutdown if an error occurs.
11518    pub fn send(
11519        self,
11520        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11521    ) -> Result<(), fidl::Error> {
11522        let _result = self.send_raw(result);
11523        if _result.is_err() {
11524            self.control_handle.shutdown();
11525        }
11526        self.drop_without_shutdown();
11527        _result
11528    }
11529
11530    /// Similar to "send" but does not shutdown the channel if an error occurs.
11531    pub fn send_no_shutdown_on_err(
11532        self,
11533        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11534    ) -> Result<(), fidl::Error> {
11535        let _result = self.send_raw(result);
11536        self.drop_without_shutdown();
11537        _result
11538    }
11539
11540    fn send_raw(
11541        &self,
11542        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11543    ) -> Result<(), fidl::Error> {
11544        self.control_handle.inner.send::<fidl::encoding::ResultType<
11545            fidl::encoding::EmptyStruct,
11546            fidl_fuchsia_posix::Errno,
11547        >>(
11548            result,
11549            self.tx_id,
11550            0x752fbfa9b12befe,
11551            fidl::encoding::DynamicFlags::empty(),
11552        )
11553    }
11554}
11555
11556#[must_use = "FIDL methods require a response to be sent"]
11557#[derive(Debug)]
11558pub struct BaseDatagramSocketGetIpMulticastInterfaceResponder {
11559    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11560    tx_id: u32,
11561}
11562
11563/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11564/// if the responder is dropped without sending a response, so that the client
11565/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11566impl std::ops::Drop for BaseDatagramSocketGetIpMulticastInterfaceResponder {
11567    fn drop(&mut self) {
11568        self.control_handle.shutdown();
11569        // Safety: drops once, never accessed again
11570        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11571    }
11572}
11573
11574impl fidl::endpoints::Responder for BaseDatagramSocketGetIpMulticastInterfaceResponder {
11575    type ControlHandle = BaseDatagramSocketControlHandle;
11576
11577    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11578        &self.control_handle
11579    }
11580
11581    fn drop_without_shutdown(mut self) {
11582        // Safety: drops once, never accessed again due to mem::forget
11583        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11584        // Prevent Drop from running (which would shut down the channel)
11585        std::mem::forget(self);
11586    }
11587}
11588
11589impl BaseDatagramSocketGetIpMulticastInterfaceResponder {
11590    /// Sends a response to the FIDL transaction.
11591    ///
11592    /// Sets the channel to shutdown if an error occurs.
11593    pub fn send(
11594        self,
11595        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
11596    ) -> Result<(), fidl::Error> {
11597        let _result = self.send_raw(result);
11598        if _result.is_err() {
11599            self.control_handle.shutdown();
11600        }
11601        self.drop_without_shutdown();
11602        _result
11603    }
11604
11605    /// Similar to "send" but does not shutdown the channel if an error occurs.
11606    pub fn send_no_shutdown_on_err(
11607        self,
11608        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
11609    ) -> Result<(), fidl::Error> {
11610        let _result = self.send_raw(result);
11611        self.drop_without_shutdown();
11612        _result
11613    }
11614
11615    fn send_raw(
11616        &self,
11617        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
11618    ) -> Result<(), fidl::Error> {
11619        self.control_handle.inner.send::<fidl::encoding::ResultType<
11620            BaseNetworkSocketGetIpMulticastInterfaceResponse,
11621            fidl_fuchsia_posix::Errno,
11622        >>(
11623            result.map(|value| (value,)),
11624            self.tx_id,
11625            0x320bd14c4df046c4,
11626            fidl::encoding::DynamicFlags::empty(),
11627        )
11628    }
11629}
11630
11631#[must_use = "FIDL methods require a response to be sent"]
11632#[derive(Debug)]
11633pub struct BaseDatagramSocketSetIpMulticastTtlResponder {
11634    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11635    tx_id: u32,
11636}
11637
11638/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11639/// if the responder is dropped without sending a response, so that the client
11640/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11641impl std::ops::Drop for BaseDatagramSocketSetIpMulticastTtlResponder {
11642    fn drop(&mut self) {
11643        self.control_handle.shutdown();
11644        // Safety: drops once, never accessed again
11645        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11646    }
11647}
11648
11649impl fidl::endpoints::Responder for BaseDatagramSocketSetIpMulticastTtlResponder {
11650    type ControlHandle = BaseDatagramSocketControlHandle;
11651
11652    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11653        &self.control_handle
11654    }
11655
11656    fn drop_without_shutdown(mut self) {
11657        // Safety: drops once, never accessed again due to mem::forget
11658        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11659        // Prevent Drop from running (which would shut down the channel)
11660        std::mem::forget(self);
11661    }
11662}
11663
11664impl BaseDatagramSocketSetIpMulticastTtlResponder {
11665    /// Sends a response to the FIDL transaction.
11666    ///
11667    /// Sets the channel to shutdown if an error occurs.
11668    pub fn send(
11669        self,
11670        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11671    ) -> Result<(), fidl::Error> {
11672        let _result = self.send_raw(result);
11673        if _result.is_err() {
11674            self.control_handle.shutdown();
11675        }
11676        self.drop_without_shutdown();
11677        _result
11678    }
11679
11680    /// Similar to "send" but does not shutdown the channel if an error occurs.
11681    pub fn send_no_shutdown_on_err(
11682        self,
11683        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11684    ) -> Result<(), fidl::Error> {
11685        let _result = self.send_raw(result);
11686        self.drop_without_shutdown();
11687        _result
11688    }
11689
11690    fn send_raw(
11691        &self,
11692        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11693    ) -> Result<(), fidl::Error> {
11694        self.control_handle.inner.send::<fidl::encoding::ResultType<
11695            fidl::encoding::EmptyStruct,
11696            fidl_fuchsia_posix::Errno,
11697        >>(
11698            result,
11699            self.tx_id,
11700            0x63134d53772916a1,
11701            fidl::encoding::DynamicFlags::empty(),
11702        )
11703    }
11704}
11705
11706#[must_use = "FIDL methods require a response to be sent"]
11707#[derive(Debug)]
11708pub struct BaseDatagramSocketGetIpMulticastTtlResponder {
11709    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11710    tx_id: u32,
11711}
11712
11713/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11714/// if the responder is dropped without sending a response, so that the client
11715/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11716impl std::ops::Drop for BaseDatagramSocketGetIpMulticastTtlResponder {
11717    fn drop(&mut self) {
11718        self.control_handle.shutdown();
11719        // Safety: drops once, never accessed again
11720        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11721    }
11722}
11723
11724impl fidl::endpoints::Responder for BaseDatagramSocketGetIpMulticastTtlResponder {
11725    type ControlHandle = BaseDatagramSocketControlHandle;
11726
11727    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11728        &self.control_handle
11729    }
11730
11731    fn drop_without_shutdown(mut self) {
11732        // Safety: drops once, never accessed again due to mem::forget
11733        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11734        // Prevent Drop from running (which would shut down the channel)
11735        std::mem::forget(self);
11736    }
11737}
11738
11739impl BaseDatagramSocketGetIpMulticastTtlResponder {
11740    /// Sends a response to the FIDL transaction.
11741    ///
11742    /// Sets the channel to shutdown if an error occurs.
11743    pub fn send(
11744        self,
11745        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11746    ) -> Result<(), fidl::Error> {
11747        let _result = self.send_raw(result);
11748        if _result.is_err() {
11749            self.control_handle.shutdown();
11750        }
11751        self.drop_without_shutdown();
11752        _result
11753    }
11754
11755    /// Similar to "send" but does not shutdown the channel if an error occurs.
11756    pub fn send_no_shutdown_on_err(
11757        self,
11758        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11759    ) -> Result<(), fidl::Error> {
11760        let _result = self.send_raw(result);
11761        self.drop_without_shutdown();
11762        _result
11763    }
11764
11765    fn send_raw(
11766        &self,
11767        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
11768    ) -> Result<(), fidl::Error> {
11769        self.control_handle.inner.send::<fidl::encoding::ResultType<
11770            BaseNetworkSocketGetIpMulticastTtlResponse,
11771            fidl_fuchsia_posix::Errno,
11772        >>(
11773            result.map(|value| (value,)),
11774            self.tx_id,
11775            0x4665cd378f39e1a,
11776            fidl::encoding::DynamicFlags::empty(),
11777        )
11778    }
11779}
11780
11781#[must_use = "FIDL methods require a response to be sent"]
11782#[derive(Debug)]
11783pub struct BaseDatagramSocketSetIpMulticastLoopbackResponder {
11784    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11785    tx_id: u32,
11786}
11787
11788/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11789/// if the responder is dropped without sending a response, so that the client
11790/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11791impl std::ops::Drop for BaseDatagramSocketSetIpMulticastLoopbackResponder {
11792    fn drop(&mut self) {
11793        self.control_handle.shutdown();
11794        // Safety: drops once, never accessed again
11795        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11796    }
11797}
11798
11799impl fidl::endpoints::Responder for BaseDatagramSocketSetIpMulticastLoopbackResponder {
11800    type ControlHandle = BaseDatagramSocketControlHandle;
11801
11802    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11803        &self.control_handle
11804    }
11805
11806    fn drop_without_shutdown(mut self) {
11807        // Safety: drops once, never accessed again due to mem::forget
11808        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11809        // Prevent Drop from running (which would shut down the channel)
11810        std::mem::forget(self);
11811    }
11812}
11813
11814impl BaseDatagramSocketSetIpMulticastLoopbackResponder {
11815    /// Sends a response to the FIDL transaction.
11816    ///
11817    /// Sets the channel to shutdown if an error occurs.
11818    pub fn send(
11819        self,
11820        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11821    ) -> Result<(), fidl::Error> {
11822        let _result = self.send_raw(result);
11823        if _result.is_err() {
11824            self.control_handle.shutdown();
11825        }
11826        self.drop_without_shutdown();
11827        _result
11828    }
11829
11830    /// Similar to "send" but does not shutdown the channel if an error occurs.
11831    pub fn send_no_shutdown_on_err(
11832        self,
11833        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11834    ) -> Result<(), fidl::Error> {
11835        let _result = self.send_raw(result);
11836        self.drop_without_shutdown();
11837        _result
11838    }
11839
11840    fn send_raw(
11841        &self,
11842        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11843    ) -> Result<(), fidl::Error> {
11844        self.control_handle.inner.send::<fidl::encoding::ResultType<
11845            fidl::encoding::EmptyStruct,
11846            fidl_fuchsia_posix::Errno,
11847        >>(
11848            result,
11849            self.tx_id,
11850            0x20c55c11f00943ea,
11851            fidl::encoding::DynamicFlags::empty(),
11852        )
11853    }
11854}
11855
11856#[must_use = "FIDL methods require a response to be sent"]
11857#[derive(Debug)]
11858pub struct BaseDatagramSocketGetIpMulticastLoopbackResponder {
11859    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11860    tx_id: u32,
11861}
11862
11863/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11864/// if the responder is dropped without sending a response, so that the client
11865/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11866impl std::ops::Drop for BaseDatagramSocketGetIpMulticastLoopbackResponder {
11867    fn drop(&mut self) {
11868        self.control_handle.shutdown();
11869        // Safety: drops once, never accessed again
11870        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11871    }
11872}
11873
11874impl fidl::endpoints::Responder for BaseDatagramSocketGetIpMulticastLoopbackResponder {
11875    type ControlHandle = BaseDatagramSocketControlHandle;
11876
11877    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11878        &self.control_handle
11879    }
11880
11881    fn drop_without_shutdown(mut self) {
11882        // Safety: drops once, never accessed again due to mem::forget
11883        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11884        // Prevent Drop from running (which would shut down the channel)
11885        std::mem::forget(self);
11886    }
11887}
11888
11889impl BaseDatagramSocketGetIpMulticastLoopbackResponder {
11890    /// Sends a response to the FIDL transaction.
11891    ///
11892    /// Sets the channel to shutdown if an error occurs.
11893    pub fn send(
11894        self,
11895        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11896    ) -> Result<(), fidl::Error> {
11897        let _result = self.send_raw(result);
11898        if _result.is_err() {
11899            self.control_handle.shutdown();
11900        }
11901        self.drop_without_shutdown();
11902        _result
11903    }
11904
11905    /// Similar to "send" but does not shutdown the channel if an error occurs.
11906    pub fn send_no_shutdown_on_err(
11907        self,
11908        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11909    ) -> Result<(), fidl::Error> {
11910        let _result = self.send_raw(result);
11911        self.drop_without_shutdown();
11912        _result
11913    }
11914
11915    fn send_raw(
11916        &self,
11917        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
11918    ) -> Result<(), fidl::Error> {
11919        self.control_handle.inner.send::<fidl::encoding::ResultType<
11920            BaseNetworkSocketGetIpMulticastLoopbackResponse,
11921            fidl_fuchsia_posix::Errno,
11922        >>(
11923            result.map(|value| (value,)),
11924            self.tx_id,
11925            0x3b6b26ff558298f2,
11926            fidl::encoding::DynamicFlags::empty(),
11927        )
11928    }
11929}
11930
11931#[must_use = "FIDL methods require a response to be sent"]
11932#[derive(Debug)]
11933pub struct BaseDatagramSocketAddIpMembershipResponder {
11934    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
11935    tx_id: u32,
11936}
11937
11938/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
11939/// if the responder is dropped without sending a response, so that the client
11940/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
11941impl std::ops::Drop for BaseDatagramSocketAddIpMembershipResponder {
11942    fn drop(&mut self) {
11943        self.control_handle.shutdown();
11944        // Safety: drops once, never accessed again
11945        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11946    }
11947}
11948
11949impl fidl::endpoints::Responder for BaseDatagramSocketAddIpMembershipResponder {
11950    type ControlHandle = BaseDatagramSocketControlHandle;
11951
11952    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
11953        &self.control_handle
11954    }
11955
11956    fn drop_without_shutdown(mut self) {
11957        // Safety: drops once, never accessed again due to mem::forget
11958        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
11959        // Prevent Drop from running (which would shut down the channel)
11960        std::mem::forget(self);
11961    }
11962}
11963
11964impl BaseDatagramSocketAddIpMembershipResponder {
11965    /// Sends a response to the FIDL transaction.
11966    ///
11967    /// Sets the channel to shutdown if an error occurs.
11968    pub fn send(
11969        self,
11970        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11971    ) -> Result<(), fidl::Error> {
11972        let _result = self.send_raw(result);
11973        if _result.is_err() {
11974            self.control_handle.shutdown();
11975        }
11976        self.drop_without_shutdown();
11977        _result
11978    }
11979
11980    /// Similar to "send" but does not shutdown the channel if an error occurs.
11981    pub fn send_no_shutdown_on_err(
11982        self,
11983        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11984    ) -> Result<(), fidl::Error> {
11985        let _result = self.send_raw(result);
11986        self.drop_without_shutdown();
11987        _result
11988    }
11989
11990    fn send_raw(
11991        &self,
11992        mut result: Result<(), fidl_fuchsia_posix::Errno>,
11993    ) -> Result<(), fidl::Error> {
11994        self.control_handle.inner.send::<fidl::encoding::ResultType<
11995            fidl::encoding::EmptyStruct,
11996            fidl_fuchsia_posix::Errno,
11997        >>(
11998            result,
11999            self.tx_id,
12000            0x76bc7df115a3b4d0,
12001            fidl::encoding::DynamicFlags::empty(),
12002        )
12003    }
12004}
12005
12006#[must_use = "FIDL methods require a response to be sent"]
12007#[derive(Debug)]
12008pub struct BaseDatagramSocketDropIpMembershipResponder {
12009    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12010    tx_id: u32,
12011}
12012
12013/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12014/// if the responder is dropped without sending a response, so that the client
12015/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12016impl std::ops::Drop for BaseDatagramSocketDropIpMembershipResponder {
12017    fn drop(&mut self) {
12018        self.control_handle.shutdown();
12019        // Safety: drops once, never accessed again
12020        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12021    }
12022}
12023
12024impl fidl::endpoints::Responder for BaseDatagramSocketDropIpMembershipResponder {
12025    type ControlHandle = BaseDatagramSocketControlHandle;
12026
12027    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12028        &self.control_handle
12029    }
12030
12031    fn drop_without_shutdown(mut self) {
12032        // Safety: drops once, never accessed again due to mem::forget
12033        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12034        // Prevent Drop from running (which would shut down the channel)
12035        std::mem::forget(self);
12036    }
12037}
12038
12039impl BaseDatagramSocketDropIpMembershipResponder {
12040    /// Sends a response to the FIDL transaction.
12041    ///
12042    /// Sets the channel to shutdown if an error occurs.
12043    pub fn send(
12044        self,
12045        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12046    ) -> Result<(), fidl::Error> {
12047        let _result = self.send_raw(result);
12048        if _result.is_err() {
12049            self.control_handle.shutdown();
12050        }
12051        self.drop_without_shutdown();
12052        _result
12053    }
12054
12055    /// Similar to "send" but does not shutdown the channel if an error occurs.
12056    pub fn send_no_shutdown_on_err(
12057        self,
12058        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12059    ) -> Result<(), fidl::Error> {
12060        let _result = self.send_raw(result);
12061        self.drop_without_shutdown();
12062        _result
12063    }
12064
12065    fn send_raw(
12066        &self,
12067        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12068    ) -> Result<(), fidl::Error> {
12069        self.control_handle.inner.send::<fidl::encoding::ResultType<
12070            fidl::encoding::EmptyStruct,
12071            fidl_fuchsia_posix::Errno,
12072        >>(
12073            result,
12074            self.tx_id,
12075            0x2888f3099188d03,
12076            fidl::encoding::DynamicFlags::empty(),
12077        )
12078    }
12079}
12080
12081#[must_use = "FIDL methods require a response to be sent"]
12082#[derive(Debug)]
12083pub struct BaseDatagramSocketSetIpTransparentResponder {
12084    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12085    tx_id: u32,
12086}
12087
12088/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12089/// if the responder is dropped without sending a response, so that the client
12090/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12091impl std::ops::Drop for BaseDatagramSocketSetIpTransparentResponder {
12092    fn drop(&mut self) {
12093        self.control_handle.shutdown();
12094        // Safety: drops once, never accessed again
12095        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12096    }
12097}
12098
12099impl fidl::endpoints::Responder for BaseDatagramSocketSetIpTransparentResponder {
12100    type ControlHandle = BaseDatagramSocketControlHandle;
12101
12102    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12103        &self.control_handle
12104    }
12105
12106    fn drop_without_shutdown(mut self) {
12107        // Safety: drops once, never accessed again due to mem::forget
12108        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12109        // Prevent Drop from running (which would shut down the channel)
12110        std::mem::forget(self);
12111    }
12112}
12113
12114impl BaseDatagramSocketSetIpTransparentResponder {
12115    /// Sends a response to the FIDL transaction.
12116    ///
12117    /// Sets the channel to shutdown if an error occurs.
12118    pub fn send(
12119        self,
12120        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12121    ) -> Result<(), fidl::Error> {
12122        let _result = self.send_raw(result);
12123        if _result.is_err() {
12124            self.control_handle.shutdown();
12125        }
12126        self.drop_without_shutdown();
12127        _result
12128    }
12129
12130    /// Similar to "send" but does not shutdown the channel if an error occurs.
12131    pub fn send_no_shutdown_on_err(
12132        self,
12133        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12134    ) -> Result<(), fidl::Error> {
12135        let _result = self.send_raw(result);
12136        self.drop_without_shutdown();
12137        _result
12138    }
12139
12140    fn send_raw(
12141        &self,
12142        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12143    ) -> Result<(), fidl::Error> {
12144        self.control_handle.inner.send::<fidl::encoding::ResultType<
12145            fidl::encoding::EmptyStruct,
12146            fidl_fuchsia_posix::Errno,
12147        >>(
12148            result,
12149            self.tx_id,
12150            0x1ae532b0c066e3a0,
12151            fidl::encoding::DynamicFlags::empty(),
12152        )
12153    }
12154}
12155
12156#[must_use = "FIDL methods require a response to be sent"]
12157#[derive(Debug)]
12158pub struct BaseDatagramSocketGetIpTransparentResponder {
12159    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12160    tx_id: u32,
12161}
12162
12163/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12164/// if the responder is dropped without sending a response, so that the client
12165/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12166impl std::ops::Drop for BaseDatagramSocketGetIpTransparentResponder {
12167    fn drop(&mut self) {
12168        self.control_handle.shutdown();
12169        // Safety: drops once, never accessed again
12170        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12171    }
12172}
12173
12174impl fidl::endpoints::Responder for BaseDatagramSocketGetIpTransparentResponder {
12175    type ControlHandle = BaseDatagramSocketControlHandle;
12176
12177    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12178        &self.control_handle
12179    }
12180
12181    fn drop_without_shutdown(mut self) {
12182        // Safety: drops once, never accessed again due to mem::forget
12183        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12184        // Prevent Drop from running (which would shut down the channel)
12185        std::mem::forget(self);
12186    }
12187}
12188
12189impl BaseDatagramSocketGetIpTransparentResponder {
12190    /// Sends a response to the FIDL transaction.
12191    ///
12192    /// Sets the channel to shutdown if an error occurs.
12193    pub fn send(
12194        self,
12195        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12196    ) -> Result<(), fidl::Error> {
12197        let _result = self.send_raw(result);
12198        if _result.is_err() {
12199            self.control_handle.shutdown();
12200        }
12201        self.drop_without_shutdown();
12202        _result
12203    }
12204
12205    /// Similar to "send" but does not shutdown the channel if an error occurs.
12206    pub fn send_no_shutdown_on_err(
12207        self,
12208        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12209    ) -> Result<(), fidl::Error> {
12210        let _result = self.send_raw(result);
12211        self.drop_without_shutdown();
12212        _result
12213    }
12214
12215    fn send_raw(
12216        &self,
12217        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12218    ) -> Result<(), fidl::Error> {
12219        self.control_handle.inner.send::<fidl::encoding::ResultType<
12220            BaseNetworkSocketGetIpTransparentResponse,
12221            fidl_fuchsia_posix::Errno,
12222        >>(
12223            result.map(|value| (value,)),
12224            self.tx_id,
12225            0x51d43695962ebfb5,
12226            fidl::encoding::DynamicFlags::empty(),
12227        )
12228    }
12229}
12230
12231#[must_use = "FIDL methods require a response to be sent"]
12232#[derive(Debug)]
12233pub struct BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
12234    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12235    tx_id: u32,
12236}
12237
12238/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12239/// if the responder is dropped without sending a response, so that the client
12240/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12241impl std::ops::Drop for BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
12242    fn drop(&mut self) {
12243        self.control_handle.shutdown();
12244        // Safety: drops once, never accessed again
12245        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12246    }
12247}
12248
12249impl fidl::endpoints::Responder
12250    for BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder
12251{
12252    type ControlHandle = BaseDatagramSocketControlHandle;
12253
12254    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12255        &self.control_handle
12256    }
12257
12258    fn drop_without_shutdown(mut self) {
12259        // Safety: drops once, never accessed again due to mem::forget
12260        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12261        // Prevent Drop from running (which would shut down the channel)
12262        std::mem::forget(self);
12263    }
12264}
12265
12266impl BaseDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
12267    /// Sends a response to the FIDL transaction.
12268    ///
12269    /// Sets the channel to shutdown if an error occurs.
12270    pub fn send(
12271        self,
12272        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12273    ) -> Result<(), fidl::Error> {
12274        let _result = self.send_raw(result);
12275        if _result.is_err() {
12276            self.control_handle.shutdown();
12277        }
12278        self.drop_without_shutdown();
12279        _result
12280    }
12281
12282    /// Similar to "send" but does not shutdown the channel if an error occurs.
12283    pub fn send_no_shutdown_on_err(
12284        self,
12285        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12286    ) -> Result<(), fidl::Error> {
12287        let _result = self.send_raw(result);
12288        self.drop_without_shutdown();
12289        _result
12290    }
12291
12292    fn send_raw(
12293        &self,
12294        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12295    ) -> Result<(), fidl::Error> {
12296        self.control_handle.inner.send::<fidl::encoding::ResultType<
12297            fidl::encoding::EmptyStruct,
12298            fidl_fuchsia_posix::Errno,
12299        >>(
12300            result,
12301            self.tx_id,
12302            0x4722b4ce52f7840,
12303            fidl::encoding::DynamicFlags::empty(),
12304        )
12305    }
12306}
12307
12308#[must_use = "FIDL methods require a response to be sent"]
12309#[derive(Debug)]
12310pub struct BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
12311    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12312    tx_id: u32,
12313}
12314
12315/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12316/// if the responder is dropped without sending a response, so that the client
12317/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12318impl std::ops::Drop for BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
12319    fn drop(&mut self) {
12320        self.control_handle.shutdown();
12321        // Safety: drops once, never accessed again
12322        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12323    }
12324}
12325
12326impl fidl::endpoints::Responder
12327    for BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder
12328{
12329    type ControlHandle = BaseDatagramSocketControlHandle;
12330
12331    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12332        &self.control_handle
12333    }
12334
12335    fn drop_without_shutdown(mut self) {
12336        // Safety: drops once, never accessed again due to mem::forget
12337        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12338        // Prevent Drop from running (which would shut down the channel)
12339        std::mem::forget(self);
12340    }
12341}
12342
12343impl BaseDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
12344    /// Sends a response to the FIDL transaction.
12345    ///
12346    /// Sets the channel to shutdown if an error occurs.
12347    pub fn send(
12348        self,
12349        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12350    ) -> Result<(), fidl::Error> {
12351        let _result = self.send_raw(result);
12352        if _result.is_err() {
12353            self.control_handle.shutdown();
12354        }
12355        self.drop_without_shutdown();
12356        _result
12357    }
12358
12359    /// Similar to "send" but does not shutdown the channel if an error occurs.
12360    pub fn send_no_shutdown_on_err(
12361        self,
12362        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12363    ) -> Result<(), fidl::Error> {
12364        let _result = self.send_raw(result);
12365        self.drop_without_shutdown();
12366        _result
12367    }
12368
12369    fn send_raw(
12370        &self,
12371        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12372    ) -> Result<(), fidl::Error> {
12373        self.control_handle.inner.send::<fidl::encoding::ResultType<
12374            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
12375            fidl_fuchsia_posix::Errno,
12376        >>(
12377            result.map(|value| (value,)),
12378            self.tx_id,
12379            0x2a0e7dc5d6bfdfe9,
12380            fidl::encoding::DynamicFlags::empty(),
12381        )
12382    }
12383}
12384
12385#[must_use = "FIDL methods require a response to be sent"]
12386#[derive(Debug)]
12387pub struct BaseDatagramSocketAddIpv6MembershipResponder {
12388    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12389    tx_id: u32,
12390}
12391
12392/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12393/// if the responder is dropped without sending a response, so that the client
12394/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12395impl std::ops::Drop for BaseDatagramSocketAddIpv6MembershipResponder {
12396    fn drop(&mut self) {
12397        self.control_handle.shutdown();
12398        // Safety: drops once, never accessed again
12399        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12400    }
12401}
12402
12403impl fidl::endpoints::Responder for BaseDatagramSocketAddIpv6MembershipResponder {
12404    type ControlHandle = BaseDatagramSocketControlHandle;
12405
12406    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12407        &self.control_handle
12408    }
12409
12410    fn drop_without_shutdown(mut self) {
12411        // Safety: drops once, never accessed again due to mem::forget
12412        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12413        // Prevent Drop from running (which would shut down the channel)
12414        std::mem::forget(self);
12415    }
12416}
12417
12418impl BaseDatagramSocketAddIpv6MembershipResponder {
12419    /// Sends a response to the FIDL transaction.
12420    ///
12421    /// Sets the channel to shutdown if an error occurs.
12422    pub fn send(
12423        self,
12424        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12425    ) -> Result<(), fidl::Error> {
12426        let _result = self.send_raw(result);
12427        if _result.is_err() {
12428            self.control_handle.shutdown();
12429        }
12430        self.drop_without_shutdown();
12431        _result
12432    }
12433
12434    /// Similar to "send" but does not shutdown the channel if an error occurs.
12435    pub fn send_no_shutdown_on_err(
12436        self,
12437        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12438    ) -> Result<(), fidl::Error> {
12439        let _result = self.send_raw(result);
12440        self.drop_without_shutdown();
12441        _result
12442    }
12443
12444    fn send_raw(
12445        &self,
12446        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12447    ) -> Result<(), fidl::Error> {
12448        self.control_handle.inner.send::<fidl::encoding::ResultType<
12449            fidl::encoding::EmptyStruct,
12450            fidl_fuchsia_posix::Errno,
12451        >>(
12452            result,
12453            self.tx_id,
12454            0x7c94727acb4ea4b3,
12455            fidl::encoding::DynamicFlags::empty(),
12456        )
12457    }
12458}
12459
12460#[must_use = "FIDL methods require a response to be sent"]
12461#[derive(Debug)]
12462pub struct BaseDatagramSocketDropIpv6MembershipResponder {
12463    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12464    tx_id: u32,
12465}
12466
12467/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12468/// if the responder is dropped without sending a response, so that the client
12469/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12470impl std::ops::Drop for BaseDatagramSocketDropIpv6MembershipResponder {
12471    fn drop(&mut self) {
12472        self.control_handle.shutdown();
12473        // Safety: drops once, never accessed again
12474        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12475    }
12476}
12477
12478impl fidl::endpoints::Responder for BaseDatagramSocketDropIpv6MembershipResponder {
12479    type ControlHandle = BaseDatagramSocketControlHandle;
12480
12481    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12482        &self.control_handle
12483    }
12484
12485    fn drop_without_shutdown(mut self) {
12486        // Safety: drops once, never accessed again due to mem::forget
12487        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12488        // Prevent Drop from running (which would shut down the channel)
12489        std::mem::forget(self);
12490    }
12491}
12492
12493impl BaseDatagramSocketDropIpv6MembershipResponder {
12494    /// Sends a response to the FIDL transaction.
12495    ///
12496    /// Sets the channel to shutdown if an error occurs.
12497    pub fn send(
12498        self,
12499        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12500    ) -> Result<(), fidl::Error> {
12501        let _result = self.send_raw(result);
12502        if _result.is_err() {
12503            self.control_handle.shutdown();
12504        }
12505        self.drop_without_shutdown();
12506        _result
12507    }
12508
12509    /// Similar to "send" but does not shutdown the channel if an error occurs.
12510    pub fn send_no_shutdown_on_err(
12511        self,
12512        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12513    ) -> Result<(), fidl::Error> {
12514        let _result = self.send_raw(result);
12515        self.drop_without_shutdown();
12516        _result
12517    }
12518
12519    fn send_raw(
12520        &self,
12521        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12522    ) -> Result<(), fidl::Error> {
12523        self.control_handle.inner.send::<fidl::encoding::ResultType<
12524            fidl::encoding::EmptyStruct,
12525            fidl_fuchsia_posix::Errno,
12526        >>(
12527            result,
12528            self.tx_id,
12529            0x42104c70ccaba304,
12530            fidl::encoding::DynamicFlags::empty(),
12531        )
12532    }
12533}
12534
12535#[must_use = "FIDL methods require a response to be sent"]
12536#[derive(Debug)]
12537pub struct BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12538    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12539    tx_id: u32,
12540}
12541
12542/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12543/// if the responder is dropped without sending a response, so that the client
12544/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12545impl std::ops::Drop for BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12546    fn drop(&mut self) {
12547        self.control_handle.shutdown();
12548        // Safety: drops once, never accessed again
12549        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12550    }
12551}
12552
12553impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12554    type ControlHandle = BaseDatagramSocketControlHandle;
12555
12556    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12557        &self.control_handle
12558    }
12559
12560    fn drop_without_shutdown(mut self) {
12561        // Safety: drops once, never accessed again due to mem::forget
12562        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12563        // Prevent Drop from running (which would shut down the channel)
12564        std::mem::forget(self);
12565    }
12566}
12567
12568impl BaseDatagramSocketSetIpv6MulticastInterfaceResponder {
12569    /// Sends a response to the FIDL transaction.
12570    ///
12571    /// Sets the channel to shutdown if an error occurs.
12572    pub fn send(
12573        self,
12574        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12575    ) -> Result<(), fidl::Error> {
12576        let _result = self.send_raw(result);
12577        if _result.is_err() {
12578            self.control_handle.shutdown();
12579        }
12580        self.drop_without_shutdown();
12581        _result
12582    }
12583
12584    /// Similar to "send" but does not shutdown the channel if an error occurs.
12585    pub fn send_no_shutdown_on_err(
12586        self,
12587        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12588    ) -> Result<(), fidl::Error> {
12589        let _result = self.send_raw(result);
12590        self.drop_without_shutdown();
12591        _result
12592    }
12593
12594    fn send_raw(
12595        &self,
12596        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12597    ) -> Result<(), fidl::Error> {
12598        self.control_handle.inner.send::<fidl::encoding::ResultType<
12599            fidl::encoding::EmptyStruct,
12600            fidl_fuchsia_posix::Errno,
12601        >>(
12602            result,
12603            self.tx_id,
12604            0x135f76db3774ab3b,
12605            fidl::encoding::DynamicFlags::empty(),
12606        )
12607    }
12608}
12609
12610#[must_use = "FIDL methods require a response to be sent"]
12611#[derive(Debug)]
12612pub struct BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12613    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12614    tx_id: u32,
12615}
12616
12617/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12618/// if the responder is dropped without sending a response, so that the client
12619/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12620impl std::ops::Drop for BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12621    fn drop(&mut self) {
12622        self.control_handle.shutdown();
12623        // Safety: drops once, never accessed again
12624        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12625    }
12626}
12627
12628impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12629    type ControlHandle = BaseDatagramSocketControlHandle;
12630
12631    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12632        &self.control_handle
12633    }
12634
12635    fn drop_without_shutdown(mut self) {
12636        // Safety: drops once, never accessed again due to mem::forget
12637        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12638        // Prevent Drop from running (which would shut down the channel)
12639        std::mem::forget(self);
12640    }
12641}
12642
12643impl BaseDatagramSocketGetIpv6MulticastInterfaceResponder {
12644    /// Sends a response to the FIDL transaction.
12645    ///
12646    /// Sets the channel to shutdown if an error occurs.
12647    pub fn send(
12648        self,
12649        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
12650    ) -> Result<(), fidl::Error> {
12651        let _result = self.send_raw(result);
12652        if _result.is_err() {
12653            self.control_handle.shutdown();
12654        }
12655        self.drop_without_shutdown();
12656        _result
12657    }
12658
12659    /// Similar to "send" but does not shutdown the channel if an error occurs.
12660    pub fn send_no_shutdown_on_err(
12661        self,
12662        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
12663    ) -> Result<(), fidl::Error> {
12664        let _result = self.send_raw(result);
12665        self.drop_without_shutdown();
12666        _result
12667    }
12668
12669    fn send_raw(
12670        &self,
12671        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
12672    ) -> Result<(), fidl::Error> {
12673        self.control_handle.inner.send::<fidl::encoding::ResultType<
12674            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
12675            fidl_fuchsia_posix::Errno,
12676        >>(
12677            result.map(|value| (value,)),
12678            self.tx_id,
12679            0x1f26fcdd348f1882,
12680            fidl::encoding::DynamicFlags::empty(),
12681        )
12682    }
12683}
12684
12685#[must_use = "FIDL methods require a response to be sent"]
12686#[derive(Debug)]
12687pub struct BaseDatagramSocketSetIpv6UnicastHopsResponder {
12688    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12689    tx_id: u32,
12690}
12691
12692/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12693/// if the responder is dropped without sending a response, so that the client
12694/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12695impl std::ops::Drop for BaseDatagramSocketSetIpv6UnicastHopsResponder {
12696    fn drop(&mut self) {
12697        self.control_handle.shutdown();
12698        // Safety: drops once, never accessed again
12699        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12700    }
12701}
12702
12703impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6UnicastHopsResponder {
12704    type ControlHandle = BaseDatagramSocketControlHandle;
12705
12706    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12707        &self.control_handle
12708    }
12709
12710    fn drop_without_shutdown(mut self) {
12711        // Safety: drops once, never accessed again due to mem::forget
12712        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12713        // Prevent Drop from running (which would shut down the channel)
12714        std::mem::forget(self);
12715    }
12716}
12717
12718impl BaseDatagramSocketSetIpv6UnicastHopsResponder {
12719    /// Sends a response to the FIDL transaction.
12720    ///
12721    /// Sets the channel to shutdown if an error occurs.
12722    pub fn send(
12723        self,
12724        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12725    ) -> Result<(), fidl::Error> {
12726        let _result = self.send_raw(result);
12727        if _result.is_err() {
12728            self.control_handle.shutdown();
12729        }
12730        self.drop_without_shutdown();
12731        _result
12732    }
12733
12734    /// Similar to "send" but does not shutdown the channel if an error occurs.
12735    pub fn send_no_shutdown_on_err(
12736        self,
12737        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12738    ) -> Result<(), fidl::Error> {
12739        let _result = self.send_raw(result);
12740        self.drop_without_shutdown();
12741        _result
12742    }
12743
12744    fn send_raw(
12745        &self,
12746        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12747    ) -> Result<(), fidl::Error> {
12748        self.control_handle.inner.send::<fidl::encoding::ResultType<
12749            fidl::encoding::EmptyStruct,
12750            fidl_fuchsia_posix::Errno,
12751        >>(
12752            result,
12753            self.tx_id,
12754            0x157d51e98f462859,
12755            fidl::encoding::DynamicFlags::empty(),
12756        )
12757    }
12758}
12759
12760#[must_use = "FIDL methods require a response to be sent"]
12761#[derive(Debug)]
12762pub struct BaseDatagramSocketGetIpv6UnicastHopsResponder {
12763    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12764    tx_id: u32,
12765}
12766
12767/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12768/// if the responder is dropped without sending a response, so that the client
12769/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12770impl std::ops::Drop for BaseDatagramSocketGetIpv6UnicastHopsResponder {
12771    fn drop(&mut self) {
12772        self.control_handle.shutdown();
12773        // Safety: drops once, never accessed again
12774        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12775    }
12776}
12777
12778impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6UnicastHopsResponder {
12779    type ControlHandle = BaseDatagramSocketControlHandle;
12780
12781    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12782        &self.control_handle
12783    }
12784
12785    fn drop_without_shutdown(mut self) {
12786        // Safety: drops once, never accessed again due to mem::forget
12787        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12788        // Prevent Drop from running (which would shut down the channel)
12789        std::mem::forget(self);
12790    }
12791}
12792
12793impl BaseDatagramSocketGetIpv6UnicastHopsResponder {
12794    /// Sends a response to the FIDL transaction.
12795    ///
12796    /// Sets the channel to shutdown if an error occurs.
12797    pub fn send(
12798        self,
12799        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
12800    ) -> Result<(), fidl::Error> {
12801        let _result = self.send_raw(result);
12802        if _result.is_err() {
12803            self.control_handle.shutdown();
12804        }
12805        self.drop_without_shutdown();
12806        _result
12807    }
12808
12809    /// Similar to "send" but does not shutdown the channel if an error occurs.
12810    pub fn send_no_shutdown_on_err(
12811        self,
12812        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
12813    ) -> Result<(), fidl::Error> {
12814        let _result = self.send_raw(result);
12815        self.drop_without_shutdown();
12816        _result
12817    }
12818
12819    fn send_raw(
12820        &self,
12821        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
12822    ) -> Result<(), fidl::Error> {
12823        self.control_handle.inner.send::<fidl::encoding::ResultType<
12824            BaseNetworkSocketGetIpv6UnicastHopsResponse,
12825            fidl_fuchsia_posix::Errno,
12826        >>(
12827            result.map(|value| (value,)),
12828            self.tx_id,
12829            0x21f4641cad8bd8d2,
12830            fidl::encoding::DynamicFlags::empty(),
12831        )
12832    }
12833}
12834
12835#[must_use = "FIDL methods require a response to be sent"]
12836#[derive(Debug)]
12837pub struct BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
12838    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12839    tx_id: u32,
12840}
12841
12842/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12843/// if the responder is dropped without sending a response, so that the client
12844/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12845impl std::ops::Drop for BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
12846    fn drop(&mut self) {
12847        self.control_handle.shutdown();
12848        // Safety: drops once, never accessed again
12849        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12850    }
12851}
12852
12853impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
12854    type ControlHandle = BaseDatagramSocketControlHandle;
12855
12856    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12857        &self.control_handle
12858    }
12859
12860    fn drop_without_shutdown(mut self) {
12861        // Safety: drops once, never accessed again due to mem::forget
12862        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12863        // Prevent Drop from running (which would shut down the channel)
12864        std::mem::forget(self);
12865    }
12866}
12867
12868impl BaseDatagramSocketSetIpv6ReceiveHopLimitResponder {
12869    /// Sends a response to the FIDL transaction.
12870    ///
12871    /// Sets the channel to shutdown if an error occurs.
12872    pub fn send(
12873        self,
12874        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12875    ) -> Result<(), fidl::Error> {
12876        let _result = self.send_raw(result);
12877        if _result.is_err() {
12878            self.control_handle.shutdown();
12879        }
12880        self.drop_without_shutdown();
12881        _result
12882    }
12883
12884    /// Similar to "send" but does not shutdown the channel if an error occurs.
12885    pub fn send_no_shutdown_on_err(
12886        self,
12887        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12888    ) -> Result<(), fidl::Error> {
12889        let _result = self.send_raw(result);
12890        self.drop_without_shutdown();
12891        _result
12892    }
12893
12894    fn send_raw(
12895        &self,
12896        mut result: Result<(), fidl_fuchsia_posix::Errno>,
12897    ) -> Result<(), fidl::Error> {
12898        self.control_handle.inner.send::<fidl::encoding::ResultType<
12899            fidl::encoding::EmptyStruct,
12900            fidl_fuchsia_posix::Errno,
12901        >>(
12902            result,
12903            self.tx_id,
12904            0x5c24808ed2e84a1e,
12905            fidl::encoding::DynamicFlags::empty(),
12906        )
12907    }
12908}
12909
12910#[must_use = "FIDL methods require a response to be sent"]
12911#[derive(Debug)]
12912pub struct BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
12913    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12914    tx_id: u32,
12915}
12916
12917/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12918/// if the responder is dropped without sending a response, so that the client
12919/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12920impl std::ops::Drop for BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
12921    fn drop(&mut self) {
12922        self.control_handle.shutdown();
12923        // Safety: drops once, never accessed again
12924        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12925    }
12926}
12927
12928impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
12929    type ControlHandle = BaseDatagramSocketControlHandle;
12930
12931    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
12932        &self.control_handle
12933    }
12934
12935    fn drop_without_shutdown(mut self) {
12936        // Safety: drops once, never accessed again due to mem::forget
12937        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
12938        // Prevent Drop from running (which would shut down the channel)
12939        std::mem::forget(self);
12940    }
12941}
12942
12943impl BaseDatagramSocketGetIpv6ReceiveHopLimitResponder {
12944    /// Sends a response to the FIDL transaction.
12945    ///
12946    /// Sets the channel to shutdown if an error occurs.
12947    pub fn send(
12948        self,
12949        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12950    ) -> Result<(), fidl::Error> {
12951        let _result = self.send_raw(result);
12952        if _result.is_err() {
12953            self.control_handle.shutdown();
12954        }
12955        self.drop_without_shutdown();
12956        _result
12957    }
12958
12959    /// Similar to "send" but does not shutdown the channel if an error occurs.
12960    pub fn send_no_shutdown_on_err(
12961        self,
12962        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12963    ) -> Result<(), fidl::Error> {
12964        let _result = self.send_raw(result);
12965        self.drop_without_shutdown();
12966        _result
12967    }
12968
12969    fn send_raw(
12970        &self,
12971        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
12972    ) -> Result<(), fidl::Error> {
12973        self.control_handle.inner.send::<fidl::encoding::ResultType<
12974            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
12975            fidl_fuchsia_posix::Errno,
12976        >>(
12977            result.map(|value| (value,)),
12978            self.tx_id,
12979            0x341e06689885b4c0,
12980            fidl::encoding::DynamicFlags::empty(),
12981        )
12982    }
12983}
12984
12985#[must_use = "FIDL methods require a response to be sent"]
12986#[derive(Debug)]
12987pub struct BaseDatagramSocketSetIpv6MulticastHopsResponder {
12988    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
12989    tx_id: u32,
12990}
12991
12992/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
12993/// if the responder is dropped without sending a response, so that the client
12994/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
12995impl std::ops::Drop for BaseDatagramSocketSetIpv6MulticastHopsResponder {
12996    fn drop(&mut self) {
12997        self.control_handle.shutdown();
12998        // Safety: drops once, never accessed again
12999        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13000    }
13001}
13002
13003impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6MulticastHopsResponder {
13004    type ControlHandle = BaseDatagramSocketControlHandle;
13005
13006    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13007        &self.control_handle
13008    }
13009
13010    fn drop_without_shutdown(mut self) {
13011        // Safety: drops once, never accessed again due to mem::forget
13012        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13013        // Prevent Drop from running (which would shut down the channel)
13014        std::mem::forget(self);
13015    }
13016}
13017
13018impl BaseDatagramSocketSetIpv6MulticastHopsResponder {
13019    /// Sends a response to the FIDL transaction.
13020    ///
13021    /// Sets the channel to shutdown if an error occurs.
13022    pub fn send(
13023        self,
13024        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13025    ) -> Result<(), fidl::Error> {
13026        let _result = self.send_raw(result);
13027        if _result.is_err() {
13028            self.control_handle.shutdown();
13029        }
13030        self.drop_without_shutdown();
13031        _result
13032    }
13033
13034    /// Similar to "send" but does not shutdown the channel if an error occurs.
13035    pub fn send_no_shutdown_on_err(
13036        self,
13037        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13038    ) -> Result<(), fidl::Error> {
13039        let _result = self.send_raw(result);
13040        self.drop_without_shutdown();
13041        _result
13042    }
13043
13044    fn send_raw(
13045        &self,
13046        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13047    ) -> Result<(), fidl::Error> {
13048        self.control_handle.inner.send::<fidl::encoding::ResultType<
13049            fidl::encoding::EmptyStruct,
13050            fidl_fuchsia_posix::Errno,
13051        >>(
13052            result,
13053            self.tx_id,
13054            0x25b9cd4d181f82c1,
13055            fidl::encoding::DynamicFlags::empty(),
13056        )
13057    }
13058}
13059
13060#[must_use = "FIDL methods require a response to be sent"]
13061#[derive(Debug)]
13062pub struct BaseDatagramSocketGetIpv6MulticastHopsResponder {
13063    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13064    tx_id: u32,
13065}
13066
13067/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13068/// if the responder is dropped without sending a response, so that the client
13069/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13070impl std::ops::Drop for BaseDatagramSocketGetIpv6MulticastHopsResponder {
13071    fn drop(&mut self) {
13072        self.control_handle.shutdown();
13073        // Safety: drops once, never accessed again
13074        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13075    }
13076}
13077
13078impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6MulticastHopsResponder {
13079    type ControlHandle = BaseDatagramSocketControlHandle;
13080
13081    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13082        &self.control_handle
13083    }
13084
13085    fn drop_without_shutdown(mut self) {
13086        // Safety: drops once, never accessed again due to mem::forget
13087        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13088        // Prevent Drop from running (which would shut down the channel)
13089        std::mem::forget(self);
13090    }
13091}
13092
13093impl BaseDatagramSocketGetIpv6MulticastHopsResponder {
13094    /// Sends a response to the FIDL transaction.
13095    ///
13096    /// Sets the channel to shutdown if an error occurs.
13097    pub fn send(
13098        self,
13099        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13100    ) -> Result<(), fidl::Error> {
13101        let _result = self.send_raw(result);
13102        if _result.is_err() {
13103            self.control_handle.shutdown();
13104        }
13105        self.drop_without_shutdown();
13106        _result
13107    }
13108
13109    /// Similar to "send" but does not shutdown the channel if an error occurs.
13110    pub fn send_no_shutdown_on_err(
13111        self,
13112        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13113    ) -> Result<(), fidl::Error> {
13114        let _result = self.send_raw(result);
13115        self.drop_without_shutdown();
13116        _result
13117    }
13118
13119    fn send_raw(
13120        &self,
13121        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13122    ) -> Result<(), fidl::Error> {
13123        self.control_handle.inner.send::<fidl::encoding::ResultType<
13124            BaseNetworkSocketGetIpv6MulticastHopsResponse,
13125            fidl_fuchsia_posix::Errno,
13126        >>(
13127            result.map(|value| (value,)),
13128            self.tx_id,
13129            0x52916948a365012a,
13130            fidl::encoding::DynamicFlags::empty(),
13131        )
13132    }
13133}
13134
13135#[must_use = "FIDL methods require a response to be sent"]
13136#[derive(Debug)]
13137pub struct BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13138    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13139    tx_id: u32,
13140}
13141
13142/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13143/// if the responder is dropped without sending a response, so that the client
13144/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13145impl std::ops::Drop for BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13146    fn drop(&mut self) {
13147        self.control_handle.shutdown();
13148        // Safety: drops once, never accessed again
13149        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13150    }
13151}
13152
13153impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13154    type ControlHandle = BaseDatagramSocketControlHandle;
13155
13156    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13157        &self.control_handle
13158    }
13159
13160    fn drop_without_shutdown(mut self) {
13161        // Safety: drops once, never accessed again due to mem::forget
13162        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13163        // Prevent Drop from running (which would shut down the channel)
13164        std::mem::forget(self);
13165    }
13166}
13167
13168impl BaseDatagramSocketSetIpv6MulticastLoopbackResponder {
13169    /// Sends a response to the FIDL transaction.
13170    ///
13171    /// Sets the channel to shutdown if an error occurs.
13172    pub fn send(
13173        self,
13174        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13175    ) -> Result<(), fidl::Error> {
13176        let _result = self.send_raw(result);
13177        if _result.is_err() {
13178            self.control_handle.shutdown();
13179        }
13180        self.drop_without_shutdown();
13181        _result
13182    }
13183
13184    /// Similar to "send" but does not shutdown the channel if an error occurs.
13185    pub fn send_no_shutdown_on_err(
13186        self,
13187        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13188    ) -> Result<(), fidl::Error> {
13189        let _result = self.send_raw(result);
13190        self.drop_without_shutdown();
13191        _result
13192    }
13193
13194    fn send_raw(
13195        &self,
13196        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13197    ) -> Result<(), fidl::Error> {
13198        self.control_handle.inner.send::<fidl::encoding::ResultType<
13199            fidl::encoding::EmptyStruct,
13200            fidl_fuchsia_posix::Errno,
13201        >>(
13202            result,
13203            self.tx_id,
13204            0x55701c409ff41b40,
13205            fidl::encoding::DynamicFlags::empty(),
13206        )
13207    }
13208}
13209
13210#[must_use = "FIDL methods require a response to be sent"]
13211#[derive(Debug)]
13212pub struct BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13213    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13214    tx_id: u32,
13215}
13216
13217/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13218/// if the responder is dropped without sending a response, so that the client
13219/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13220impl std::ops::Drop for BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13221    fn drop(&mut self) {
13222        self.control_handle.shutdown();
13223        // Safety: drops once, never accessed again
13224        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13225    }
13226}
13227
13228impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13229    type ControlHandle = BaseDatagramSocketControlHandle;
13230
13231    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13232        &self.control_handle
13233    }
13234
13235    fn drop_without_shutdown(mut self) {
13236        // Safety: drops once, never accessed again due to mem::forget
13237        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13238        // Prevent Drop from running (which would shut down the channel)
13239        std::mem::forget(self);
13240    }
13241}
13242
13243impl BaseDatagramSocketGetIpv6MulticastLoopbackResponder {
13244    /// Sends a response to the FIDL transaction.
13245    ///
13246    /// Sets the channel to shutdown if an error occurs.
13247    pub fn send(
13248        self,
13249        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13250    ) -> Result<(), fidl::Error> {
13251        let _result = self.send_raw(result);
13252        if _result.is_err() {
13253            self.control_handle.shutdown();
13254        }
13255        self.drop_without_shutdown();
13256        _result
13257    }
13258
13259    /// Similar to "send" but does not shutdown the channel if an error occurs.
13260    pub fn send_no_shutdown_on_err(
13261        self,
13262        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13263    ) -> Result<(), fidl::Error> {
13264        let _result = self.send_raw(result);
13265        self.drop_without_shutdown();
13266        _result
13267    }
13268
13269    fn send_raw(
13270        &self,
13271        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13272    ) -> Result<(), fidl::Error> {
13273        self.control_handle.inner.send::<fidl::encoding::ResultType<
13274            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
13275            fidl_fuchsia_posix::Errno,
13276        >>(
13277            result.map(|value| (value,)),
13278            self.tx_id,
13279            0x4415b701fde319c3,
13280            fidl::encoding::DynamicFlags::empty(),
13281        )
13282    }
13283}
13284
13285#[must_use = "FIDL methods require a response to be sent"]
13286#[derive(Debug)]
13287pub struct BaseDatagramSocketSetIpv6OnlyResponder {
13288    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13289    tx_id: u32,
13290}
13291
13292/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13293/// if the responder is dropped without sending a response, so that the client
13294/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13295impl std::ops::Drop for BaseDatagramSocketSetIpv6OnlyResponder {
13296    fn drop(&mut self) {
13297        self.control_handle.shutdown();
13298        // Safety: drops once, never accessed again
13299        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13300    }
13301}
13302
13303impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6OnlyResponder {
13304    type ControlHandle = BaseDatagramSocketControlHandle;
13305
13306    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13307        &self.control_handle
13308    }
13309
13310    fn drop_without_shutdown(mut self) {
13311        // Safety: drops once, never accessed again due to mem::forget
13312        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13313        // Prevent Drop from running (which would shut down the channel)
13314        std::mem::forget(self);
13315    }
13316}
13317
13318impl BaseDatagramSocketSetIpv6OnlyResponder {
13319    /// Sends a response to the FIDL transaction.
13320    ///
13321    /// Sets the channel to shutdown if an error occurs.
13322    pub fn send(
13323        self,
13324        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13325    ) -> Result<(), fidl::Error> {
13326        let _result = self.send_raw(result);
13327        if _result.is_err() {
13328            self.control_handle.shutdown();
13329        }
13330        self.drop_without_shutdown();
13331        _result
13332    }
13333
13334    /// Similar to "send" but does not shutdown the channel if an error occurs.
13335    pub fn send_no_shutdown_on_err(
13336        self,
13337        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13338    ) -> Result<(), fidl::Error> {
13339        let _result = self.send_raw(result);
13340        self.drop_without_shutdown();
13341        _result
13342    }
13343
13344    fn send_raw(
13345        &self,
13346        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13347    ) -> Result<(), fidl::Error> {
13348        self.control_handle.inner.send::<fidl::encoding::ResultType<
13349            fidl::encoding::EmptyStruct,
13350            fidl_fuchsia_posix::Errno,
13351        >>(
13352            result,
13353            self.tx_id,
13354            0x4873f1364758cbba,
13355            fidl::encoding::DynamicFlags::empty(),
13356        )
13357    }
13358}
13359
13360#[must_use = "FIDL methods require a response to be sent"]
13361#[derive(Debug)]
13362pub struct BaseDatagramSocketGetIpv6OnlyResponder {
13363    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13364    tx_id: u32,
13365}
13366
13367/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13368/// if the responder is dropped without sending a response, so that the client
13369/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13370impl std::ops::Drop for BaseDatagramSocketGetIpv6OnlyResponder {
13371    fn drop(&mut self) {
13372        self.control_handle.shutdown();
13373        // Safety: drops once, never accessed again
13374        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13375    }
13376}
13377
13378impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6OnlyResponder {
13379    type ControlHandle = BaseDatagramSocketControlHandle;
13380
13381    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13382        &self.control_handle
13383    }
13384
13385    fn drop_without_shutdown(mut self) {
13386        // Safety: drops once, never accessed again due to mem::forget
13387        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13388        // Prevent Drop from running (which would shut down the channel)
13389        std::mem::forget(self);
13390    }
13391}
13392
13393impl BaseDatagramSocketGetIpv6OnlyResponder {
13394    /// Sends a response to the FIDL transaction.
13395    ///
13396    /// Sets the channel to shutdown if an error occurs.
13397    pub fn send(
13398        self,
13399        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13400    ) -> Result<(), fidl::Error> {
13401        let _result = self.send_raw(result);
13402        if _result.is_err() {
13403            self.control_handle.shutdown();
13404        }
13405        self.drop_without_shutdown();
13406        _result
13407    }
13408
13409    /// Similar to "send" but does not shutdown the channel if an error occurs.
13410    pub fn send_no_shutdown_on_err(
13411        self,
13412        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13413    ) -> Result<(), fidl::Error> {
13414        let _result = self.send_raw(result);
13415        self.drop_without_shutdown();
13416        _result
13417    }
13418
13419    fn send_raw(
13420        &self,
13421        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13422    ) -> Result<(), fidl::Error> {
13423        self.control_handle.inner.send::<fidl::encoding::ResultType<
13424            BaseNetworkSocketGetIpv6OnlyResponse,
13425            fidl_fuchsia_posix::Errno,
13426        >>(
13427            result.map(|value| (value,)),
13428            self.tx_id,
13429            0x4aa3340a1a26b89c,
13430            fidl::encoding::DynamicFlags::empty(),
13431        )
13432    }
13433}
13434
13435#[must_use = "FIDL methods require a response to be sent"]
13436#[derive(Debug)]
13437pub struct BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13438    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13439    tx_id: u32,
13440}
13441
13442/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13443/// if the responder is dropped without sending a response, so that the client
13444/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13445impl std::ops::Drop for BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13446    fn drop(&mut self) {
13447        self.control_handle.shutdown();
13448        // Safety: drops once, never accessed again
13449        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13450    }
13451}
13452
13453impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13454    type ControlHandle = BaseDatagramSocketControlHandle;
13455
13456    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13457        &self.control_handle
13458    }
13459
13460    fn drop_without_shutdown(mut self) {
13461        // Safety: drops once, never accessed again due to mem::forget
13462        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13463        // Prevent Drop from running (which would shut down the channel)
13464        std::mem::forget(self);
13465    }
13466}
13467
13468impl BaseDatagramSocketSetIpv6ReceiveTrafficClassResponder {
13469    /// Sends a response to the FIDL transaction.
13470    ///
13471    /// Sets the channel to shutdown if an error occurs.
13472    pub fn send(
13473        self,
13474        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13475    ) -> Result<(), fidl::Error> {
13476        let _result = self.send_raw(result);
13477        if _result.is_err() {
13478            self.control_handle.shutdown();
13479        }
13480        self.drop_without_shutdown();
13481        _result
13482    }
13483
13484    /// Similar to "send" but does not shutdown the channel if an error occurs.
13485    pub fn send_no_shutdown_on_err(
13486        self,
13487        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13488    ) -> Result<(), fidl::Error> {
13489        let _result = self.send_raw(result);
13490        self.drop_without_shutdown();
13491        _result
13492    }
13493
13494    fn send_raw(
13495        &self,
13496        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13497    ) -> Result<(), fidl::Error> {
13498        self.control_handle.inner.send::<fidl::encoding::ResultType<
13499            fidl::encoding::EmptyStruct,
13500            fidl_fuchsia_posix::Errno,
13501        >>(
13502            result,
13503            self.tx_id,
13504            0x58f07c8788d099a0,
13505            fidl::encoding::DynamicFlags::empty(),
13506        )
13507    }
13508}
13509
13510#[must_use = "FIDL methods require a response to be sent"]
13511#[derive(Debug)]
13512pub struct BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13513    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13514    tx_id: u32,
13515}
13516
13517/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13518/// if the responder is dropped without sending a response, so that the client
13519/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13520impl std::ops::Drop for BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13521    fn drop(&mut self) {
13522        self.control_handle.shutdown();
13523        // Safety: drops once, never accessed again
13524        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13525    }
13526}
13527
13528impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13529    type ControlHandle = BaseDatagramSocketControlHandle;
13530
13531    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13532        &self.control_handle
13533    }
13534
13535    fn drop_without_shutdown(mut self) {
13536        // Safety: drops once, never accessed again due to mem::forget
13537        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13538        // Prevent Drop from running (which would shut down the channel)
13539        std::mem::forget(self);
13540    }
13541}
13542
13543impl BaseDatagramSocketGetIpv6ReceiveTrafficClassResponder {
13544    /// Sends a response to the FIDL transaction.
13545    ///
13546    /// Sets the channel to shutdown if an error occurs.
13547    pub fn send(
13548        self,
13549        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13550    ) -> Result<(), fidl::Error> {
13551        let _result = self.send_raw(result);
13552        if _result.is_err() {
13553            self.control_handle.shutdown();
13554        }
13555        self.drop_without_shutdown();
13556        _result
13557    }
13558
13559    /// Similar to "send" but does not shutdown the channel if an error occurs.
13560    pub fn send_no_shutdown_on_err(
13561        self,
13562        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13563    ) -> Result<(), fidl::Error> {
13564        let _result = self.send_raw(result);
13565        self.drop_without_shutdown();
13566        _result
13567    }
13568
13569    fn send_raw(
13570        &self,
13571        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13572    ) -> Result<(), fidl::Error> {
13573        self.control_handle.inner.send::<fidl::encoding::ResultType<
13574            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
13575            fidl_fuchsia_posix::Errno,
13576        >>(
13577            result.map(|value| (value,)),
13578            self.tx_id,
13579            0x2e334df1da553ffa,
13580            fidl::encoding::DynamicFlags::empty(),
13581        )
13582    }
13583}
13584
13585#[must_use = "FIDL methods require a response to be sent"]
13586#[derive(Debug)]
13587pub struct BaseDatagramSocketSetIpv6TrafficClassResponder {
13588    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13589    tx_id: u32,
13590}
13591
13592/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13593/// if the responder is dropped without sending a response, so that the client
13594/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13595impl std::ops::Drop for BaseDatagramSocketSetIpv6TrafficClassResponder {
13596    fn drop(&mut self) {
13597        self.control_handle.shutdown();
13598        // Safety: drops once, never accessed again
13599        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13600    }
13601}
13602
13603impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6TrafficClassResponder {
13604    type ControlHandle = BaseDatagramSocketControlHandle;
13605
13606    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13607        &self.control_handle
13608    }
13609
13610    fn drop_without_shutdown(mut self) {
13611        // Safety: drops once, never accessed again due to mem::forget
13612        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13613        // Prevent Drop from running (which would shut down the channel)
13614        std::mem::forget(self);
13615    }
13616}
13617
13618impl BaseDatagramSocketSetIpv6TrafficClassResponder {
13619    /// Sends a response to the FIDL transaction.
13620    ///
13621    /// Sets the channel to shutdown if an error occurs.
13622    pub fn send(
13623        self,
13624        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13625    ) -> Result<(), fidl::Error> {
13626        let _result = self.send_raw(result);
13627        if _result.is_err() {
13628            self.control_handle.shutdown();
13629        }
13630        self.drop_without_shutdown();
13631        _result
13632    }
13633
13634    /// Similar to "send" but does not shutdown the channel if an error occurs.
13635    pub fn send_no_shutdown_on_err(
13636        self,
13637        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13638    ) -> Result<(), fidl::Error> {
13639        let _result = self.send_raw(result);
13640        self.drop_without_shutdown();
13641        _result
13642    }
13643
13644    fn send_raw(
13645        &self,
13646        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13647    ) -> Result<(), fidl::Error> {
13648        self.control_handle.inner.send::<fidl::encoding::ResultType<
13649            fidl::encoding::EmptyStruct,
13650            fidl_fuchsia_posix::Errno,
13651        >>(
13652            result,
13653            self.tx_id,
13654            0x6af077800c5a0b4f,
13655            fidl::encoding::DynamicFlags::empty(),
13656        )
13657    }
13658}
13659
13660#[must_use = "FIDL methods require a response to be sent"]
13661#[derive(Debug)]
13662pub struct BaseDatagramSocketGetIpv6TrafficClassResponder {
13663    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13664    tx_id: u32,
13665}
13666
13667/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13668/// if the responder is dropped without sending a response, so that the client
13669/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13670impl std::ops::Drop for BaseDatagramSocketGetIpv6TrafficClassResponder {
13671    fn drop(&mut self) {
13672        self.control_handle.shutdown();
13673        // Safety: drops once, never accessed again
13674        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13675    }
13676}
13677
13678impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6TrafficClassResponder {
13679    type ControlHandle = BaseDatagramSocketControlHandle;
13680
13681    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13682        &self.control_handle
13683    }
13684
13685    fn drop_without_shutdown(mut self) {
13686        // Safety: drops once, never accessed again due to mem::forget
13687        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13688        // Prevent Drop from running (which would shut down the channel)
13689        std::mem::forget(self);
13690    }
13691}
13692
13693impl BaseDatagramSocketGetIpv6TrafficClassResponder {
13694    /// Sends a response to the FIDL transaction.
13695    ///
13696    /// Sets the channel to shutdown if an error occurs.
13697    pub fn send(
13698        self,
13699        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13700    ) -> Result<(), fidl::Error> {
13701        let _result = self.send_raw(result);
13702        if _result.is_err() {
13703            self.control_handle.shutdown();
13704        }
13705        self.drop_without_shutdown();
13706        _result
13707    }
13708
13709    /// Similar to "send" but does not shutdown the channel if an error occurs.
13710    pub fn send_no_shutdown_on_err(
13711        self,
13712        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13713    ) -> Result<(), fidl::Error> {
13714        let _result = self.send_raw(result);
13715        self.drop_without_shutdown();
13716        _result
13717    }
13718
13719    fn send_raw(
13720        &self,
13721        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
13722    ) -> Result<(), fidl::Error> {
13723        self.control_handle.inner.send::<fidl::encoding::ResultType<
13724            BaseNetworkSocketGetIpv6TrafficClassResponse,
13725            fidl_fuchsia_posix::Errno,
13726        >>(
13727            result.map(|value| (value,)),
13728            self.tx_id,
13729            0x6baf6eed8fc2f04,
13730            fidl::encoding::DynamicFlags::empty(),
13731        )
13732    }
13733}
13734
13735#[must_use = "FIDL methods require a response to be sent"]
13736#[derive(Debug)]
13737pub struct BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
13738    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13739    tx_id: u32,
13740}
13741
13742/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13743/// if the responder is dropped without sending a response, so that the client
13744/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13745impl std::ops::Drop for BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
13746    fn drop(&mut self) {
13747        self.control_handle.shutdown();
13748        // Safety: drops once, never accessed again
13749        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13750    }
13751}
13752
13753impl fidl::endpoints::Responder for BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
13754    type ControlHandle = BaseDatagramSocketControlHandle;
13755
13756    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13757        &self.control_handle
13758    }
13759
13760    fn drop_without_shutdown(mut self) {
13761        // Safety: drops once, never accessed again due to mem::forget
13762        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13763        // Prevent Drop from running (which would shut down the channel)
13764        std::mem::forget(self);
13765    }
13766}
13767
13768impl BaseDatagramSocketSetIpv6ReceivePacketInfoResponder {
13769    /// Sends a response to the FIDL transaction.
13770    ///
13771    /// Sets the channel to shutdown if an error occurs.
13772    pub fn send(
13773        self,
13774        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13775    ) -> Result<(), fidl::Error> {
13776        let _result = self.send_raw(result);
13777        if _result.is_err() {
13778            self.control_handle.shutdown();
13779        }
13780        self.drop_without_shutdown();
13781        _result
13782    }
13783
13784    /// Similar to "send" but does not shutdown the channel if an error occurs.
13785    pub fn send_no_shutdown_on_err(
13786        self,
13787        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13788    ) -> Result<(), fidl::Error> {
13789        let _result = self.send_raw(result);
13790        self.drop_without_shutdown();
13791        _result
13792    }
13793
13794    fn send_raw(
13795        &self,
13796        mut result: Result<(), fidl_fuchsia_posix::Errno>,
13797    ) -> Result<(), fidl::Error> {
13798        self.control_handle.inner.send::<fidl::encoding::ResultType<
13799            fidl::encoding::EmptyStruct,
13800            fidl_fuchsia_posix::Errno,
13801        >>(
13802            result,
13803            self.tx_id,
13804            0x19259775b1a92768,
13805            fidl::encoding::DynamicFlags::empty(),
13806        )
13807    }
13808}
13809
13810#[must_use = "FIDL methods require a response to be sent"]
13811#[derive(Debug)]
13812pub struct BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
13813    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13814    tx_id: u32,
13815}
13816
13817/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13818/// if the responder is dropped without sending a response, so that the client
13819/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13820impl std::ops::Drop for BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
13821    fn drop(&mut self) {
13822        self.control_handle.shutdown();
13823        // Safety: drops once, never accessed again
13824        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13825    }
13826}
13827
13828impl fidl::endpoints::Responder for BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
13829    type ControlHandle = BaseDatagramSocketControlHandle;
13830
13831    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13832        &self.control_handle
13833    }
13834
13835    fn drop_without_shutdown(mut self) {
13836        // Safety: drops once, never accessed again due to mem::forget
13837        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13838        // Prevent Drop from running (which would shut down the channel)
13839        std::mem::forget(self);
13840    }
13841}
13842
13843impl BaseDatagramSocketGetIpv6ReceivePacketInfoResponder {
13844    /// Sends a response to the FIDL transaction.
13845    ///
13846    /// Sets the channel to shutdown if an error occurs.
13847    pub fn send(
13848        self,
13849        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13850    ) -> Result<(), fidl::Error> {
13851        let _result = self.send_raw(result);
13852        if _result.is_err() {
13853            self.control_handle.shutdown();
13854        }
13855        self.drop_without_shutdown();
13856        _result
13857    }
13858
13859    /// Similar to "send" but does not shutdown the channel if an error occurs.
13860    pub fn send_no_shutdown_on_err(
13861        self,
13862        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13863    ) -> Result<(), fidl::Error> {
13864        let _result = self.send_raw(result);
13865        self.drop_without_shutdown();
13866        _result
13867    }
13868
13869    fn send_raw(
13870        &self,
13871        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
13872    ) -> Result<(), fidl::Error> {
13873        self.control_handle.inner.send::<fidl::encoding::ResultType<
13874            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
13875            fidl_fuchsia_posix::Errno,
13876        >>(
13877            result.map(|value| (value,)),
13878            self.tx_id,
13879            0x7acd4a2775baec75,
13880            fidl::encoding::DynamicFlags::empty(),
13881        )
13882    }
13883}
13884
13885#[must_use = "FIDL methods require a response to be sent"]
13886#[derive(Debug)]
13887pub struct BaseDatagramSocketGetOriginalDestinationResponder {
13888    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13889    tx_id: u32,
13890}
13891
13892/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13893/// if the responder is dropped without sending a response, so that the client
13894/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13895impl std::ops::Drop for BaseDatagramSocketGetOriginalDestinationResponder {
13896    fn drop(&mut self) {
13897        self.control_handle.shutdown();
13898        // Safety: drops once, never accessed again
13899        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13900    }
13901}
13902
13903impl fidl::endpoints::Responder for BaseDatagramSocketGetOriginalDestinationResponder {
13904    type ControlHandle = BaseDatagramSocketControlHandle;
13905
13906    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13907        &self.control_handle
13908    }
13909
13910    fn drop_without_shutdown(mut self) {
13911        // Safety: drops once, never accessed again due to mem::forget
13912        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13913        // Prevent Drop from running (which would shut down the channel)
13914        std::mem::forget(self);
13915    }
13916}
13917
13918impl BaseDatagramSocketGetOriginalDestinationResponder {
13919    /// Sends a response to the FIDL transaction.
13920    ///
13921    /// Sets the channel to shutdown if an error occurs.
13922    pub fn send(
13923        self,
13924        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
13925    ) -> Result<(), fidl::Error> {
13926        let _result = self.send_raw(result);
13927        if _result.is_err() {
13928            self.control_handle.shutdown();
13929        }
13930        self.drop_without_shutdown();
13931        _result
13932    }
13933
13934    /// Similar to "send" but does not shutdown the channel if an error occurs.
13935    pub fn send_no_shutdown_on_err(
13936        self,
13937        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
13938    ) -> Result<(), fidl::Error> {
13939        let _result = self.send_raw(result);
13940        self.drop_without_shutdown();
13941        _result
13942    }
13943
13944    fn send_raw(
13945        &self,
13946        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
13947    ) -> Result<(), fidl::Error> {
13948        self.control_handle.inner.send::<fidl::encoding::ResultType<
13949            BaseNetworkSocketGetOriginalDestinationResponse,
13950            fidl_fuchsia_posix::Errno,
13951        >>(
13952            result.map(|value| (value,)),
13953            self.tx_id,
13954            0x38bf28f0dafdbac0,
13955            fidl::encoding::DynamicFlags::empty(),
13956        )
13957    }
13958}
13959
13960#[must_use = "FIDL methods require a response to be sent"]
13961#[derive(Debug)]
13962pub struct BaseDatagramSocketGetInfoResponder {
13963    control_handle: std::mem::ManuallyDrop<BaseDatagramSocketControlHandle>,
13964    tx_id: u32,
13965}
13966
13967/// Set the the channel to be shutdown (see [`BaseDatagramSocketControlHandle::shutdown`])
13968/// if the responder is dropped without sending a response, so that the client
13969/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
13970impl std::ops::Drop for BaseDatagramSocketGetInfoResponder {
13971    fn drop(&mut self) {
13972        self.control_handle.shutdown();
13973        // Safety: drops once, never accessed again
13974        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13975    }
13976}
13977
13978impl fidl::endpoints::Responder for BaseDatagramSocketGetInfoResponder {
13979    type ControlHandle = BaseDatagramSocketControlHandle;
13980
13981    fn control_handle(&self) -> &BaseDatagramSocketControlHandle {
13982        &self.control_handle
13983    }
13984
13985    fn drop_without_shutdown(mut self) {
13986        // Safety: drops once, never accessed again due to mem::forget
13987        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
13988        // Prevent Drop from running (which would shut down the channel)
13989        std::mem::forget(self);
13990    }
13991}
13992
13993impl BaseDatagramSocketGetInfoResponder {
13994    /// Sends a response to the FIDL transaction.
13995    ///
13996    /// Sets the channel to shutdown if an error occurs.
13997    pub fn send(
13998        self,
13999        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
14000    ) -> Result<(), fidl::Error> {
14001        let _result = self.send_raw(result);
14002        if _result.is_err() {
14003            self.control_handle.shutdown();
14004        }
14005        self.drop_without_shutdown();
14006        _result
14007    }
14008
14009    /// Similar to "send" but does not shutdown the channel if an error occurs.
14010    pub fn send_no_shutdown_on_err(
14011        self,
14012        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
14013    ) -> Result<(), fidl::Error> {
14014        let _result = self.send_raw(result);
14015        self.drop_without_shutdown();
14016        _result
14017    }
14018
14019    fn send_raw(
14020        &self,
14021        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
14022    ) -> Result<(), fidl::Error> {
14023        self.control_handle.inner.send::<fidl::encoding::ResultType<
14024            BaseDatagramSocketGetInfoResponse,
14025            fidl_fuchsia_posix::Errno,
14026        >>(
14027            result,
14028            self.tx_id,
14029            0x48aa0a1f6a32d2ed,
14030            fidl::encoding::DynamicFlags::empty(),
14031        )
14032    }
14033}
14034
14035#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
14036pub struct BaseNetworkSocketMarker;
14037
14038impl fidl::endpoints::ProtocolMarker for BaseNetworkSocketMarker {
14039    type Proxy = BaseNetworkSocketProxy;
14040    type RequestStream = BaseNetworkSocketRequestStream;
14041    #[cfg(target_os = "fuchsia")]
14042    type SynchronousProxy = BaseNetworkSocketSynchronousProxy;
14043
14044    const DEBUG_NAME: &'static str = "(anonymous) BaseNetworkSocket";
14045}
14046pub type BaseNetworkSocketBindResult = Result<(), fidl_fuchsia_posix::Errno>;
14047pub type BaseNetworkSocketConnectResult = Result<(), fidl_fuchsia_posix::Errno>;
14048pub type BaseNetworkSocketDisconnectResult = Result<(), fidl_fuchsia_posix::Errno>;
14049pub type BaseNetworkSocketGetSockNameResult =
14050    Result<fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>;
14051pub type BaseNetworkSocketGetPeerNameResult =
14052    Result<fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>;
14053pub type BaseNetworkSocketShutdownResult = Result<(), fidl_fuchsia_posix::Errno>;
14054pub type BaseNetworkSocketSetIpTypeOfServiceResult = Result<(), fidl_fuchsia_posix::Errno>;
14055pub type BaseNetworkSocketGetIpTypeOfServiceResult = Result<u8, fidl_fuchsia_posix::Errno>;
14056pub type BaseNetworkSocketSetIpTtlResult = Result<(), fidl_fuchsia_posix::Errno>;
14057pub type BaseNetworkSocketGetIpTtlResult = Result<u8, fidl_fuchsia_posix::Errno>;
14058pub type BaseNetworkSocketSetIpPacketInfoResult = Result<(), fidl_fuchsia_posix::Errno>;
14059pub type BaseNetworkSocketGetIpPacketInfoResult = Result<bool, fidl_fuchsia_posix::Errno>;
14060pub type BaseNetworkSocketSetIpReceiveTypeOfServiceResult = Result<(), fidl_fuchsia_posix::Errno>;
14061pub type BaseNetworkSocketGetIpReceiveTypeOfServiceResult = Result<bool, fidl_fuchsia_posix::Errno>;
14062pub type BaseNetworkSocketSetIpReceiveTtlResult = Result<(), fidl_fuchsia_posix::Errno>;
14063pub type BaseNetworkSocketGetIpReceiveTtlResult = Result<bool, fidl_fuchsia_posix::Errno>;
14064pub type BaseNetworkSocketSetIpMulticastInterfaceResult = Result<(), fidl_fuchsia_posix::Errno>;
14065pub type BaseNetworkSocketGetIpMulticastInterfaceResult =
14066    Result<fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>;
14067pub type BaseNetworkSocketSetIpMulticastTtlResult = Result<(), fidl_fuchsia_posix::Errno>;
14068pub type BaseNetworkSocketGetIpMulticastTtlResult = Result<u8, fidl_fuchsia_posix::Errno>;
14069pub type BaseNetworkSocketSetIpMulticastLoopbackResult = Result<(), fidl_fuchsia_posix::Errno>;
14070pub type BaseNetworkSocketGetIpMulticastLoopbackResult = Result<bool, fidl_fuchsia_posix::Errno>;
14071pub type BaseNetworkSocketAddIpMembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14072pub type BaseNetworkSocketDropIpMembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14073pub type BaseNetworkSocketSetIpTransparentResult = Result<(), fidl_fuchsia_posix::Errno>;
14074pub type BaseNetworkSocketGetIpTransparentResult = Result<bool, fidl_fuchsia_posix::Errno>;
14075pub type BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult =
14076    Result<(), fidl_fuchsia_posix::Errno>;
14077pub type BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult =
14078    Result<bool, fidl_fuchsia_posix::Errno>;
14079pub type BaseNetworkSocketAddIpv6MembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14080pub type BaseNetworkSocketDropIpv6MembershipResult = Result<(), fidl_fuchsia_posix::Errno>;
14081pub type BaseNetworkSocketSetIpv6MulticastInterfaceResult = Result<(), fidl_fuchsia_posix::Errno>;
14082pub type BaseNetworkSocketGetIpv6MulticastInterfaceResult = Result<u64, fidl_fuchsia_posix::Errno>;
14083pub type BaseNetworkSocketSetIpv6UnicastHopsResult = Result<(), fidl_fuchsia_posix::Errno>;
14084pub type BaseNetworkSocketGetIpv6UnicastHopsResult = Result<u8, fidl_fuchsia_posix::Errno>;
14085pub type BaseNetworkSocketSetIpv6ReceiveHopLimitResult = Result<(), fidl_fuchsia_posix::Errno>;
14086pub type BaseNetworkSocketGetIpv6ReceiveHopLimitResult = Result<bool, fidl_fuchsia_posix::Errno>;
14087pub type BaseNetworkSocketSetIpv6MulticastHopsResult = Result<(), fidl_fuchsia_posix::Errno>;
14088pub type BaseNetworkSocketGetIpv6MulticastHopsResult = Result<u8, fidl_fuchsia_posix::Errno>;
14089pub type BaseNetworkSocketSetIpv6MulticastLoopbackResult = Result<(), fidl_fuchsia_posix::Errno>;
14090pub type BaseNetworkSocketGetIpv6MulticastLoopbackResult = Result<bool, fidl_fuchsia_posix::Errno>;
14091pub type BaseNetworkSocketSetIpv6OnlyResult = Result<(), fidl_fuchsia_posix::Errno>;
14092pub type BaseNetworkSocketGetIpv6OnlyResult = Result<bool, fidl_fuchsia_posix::Errno>;
14093pub type BaseNetworkSocketSetIpv6ReceiveTrafficClassResult = Result<(), fidl_fuchsia_posix::Errno>;
14094pub type BaseNetworkSocketGetIpv6ReceiveTrafficClassResult =
14095    Result<bool, fidl_fuchsia_posix::Errno>;
14096pub type BaseNetworkSocketSetIpv6TrafficClassResult = Result<(), fidl_fuchsia_posix::Errno>;
14097pub type BaseNetworkSocketGetIpv6TrafficClassResult = Result<u8, fidl_fuchsia_posix::Errno>;
14098pub type BaseNetworkSocketSetIpv6ReceivePacketInfoResult = Result<(), fidl_fuchsia_posix::Errno>;
14099pub type BaseNetworkSocketGetIpv6ReceivePacketInfoResult = Result<bool, fidl_fuchsia_posix::Errno>;
14100pub type BaseNetworkSocketGetOriginalDestinationResult =
14101    Result<fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>;
14102
14103pub trait BaseNetworkSocketProxyInterface: Send + Sync {
14104    fn r#clone(
14105        &self,
14106        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
14107    ) -> Result<(), fidl::Error>;
14108    type CloseResponseFut: std::future::Future<
14109            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
14110        > + Send;
14111    fn r#close(&self) -> Self::CloseResponseFut;
14112    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
14113    fn r#query(&self) -> Self::QueryResponseFut;
14114    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
14115        + Send;
14116    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
14117    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
14118        + Send;
14119    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
14120    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
14121        + Send;
14122    fn r#get_error(&self) -> Self::GetErrorResponseFut;
14123    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
14124        + Send;
14125    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
14126    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
14127        + Send;
14128    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
14129    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
14130        + Send;
14131    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
14132    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
14133        + Send;
14134    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
14135    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
14136        + Send;
14137    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
14138    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
14139        + Send;
14140    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
14141    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
14142        + Send;
14143    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
14144    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
14145        + Send;
14146    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
14147    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
14148        + Send;
14149    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
14150    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
14151        + Send;
14152    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
14153    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
14154        + Send;
14155    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
14156    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
14157        + Send;
14158    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
14159    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
14160        + Send;
14161    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
14162    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
14163        + Send;
14164    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
14165    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
14166        + Send;
14167    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
14168    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
14169        + Send;
14170    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
14171    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
14172        + Send;
14173    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
14174    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
14175        + Send;
14176    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
14177    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
14178        + Send;
14179    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
14180    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
14181        + Send;
14182    fn r#set_bind_to_interface_index(&self, value: u64)
14183    -> Self::SetBindToInterfaceIndexResponseFut;
14184    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
14185        + Send;
14186    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
14187    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
14188        + Send;
14189    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
14190    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
14191        + Send;
14192    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
14193    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
14194        + Send;
14195    fn r#set_mark(
14196        &self,
14197        domain: fidl_fuchsia_net::MarkDomain,
14198        mark: &OptionalUint32,
14199    ) -> Self::SetMarkResponseFut;
14200    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
14201        + Send;
14202    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
14203    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
14204        + Send;
14205    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
14206    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
14207        + Send;
14208    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
14209    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
14210        + Send;
14211    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
14212    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
14213        + Send;
14214    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
14215    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
14216        + Send;
14217    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
14218    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
14219        + Send;
14220    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
14221    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
14222        + Send;
14223    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
14224    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
14225        + Send;
14226    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
14227    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
14228        + Send;
14229    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
14230    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
14231        + Send;
14232    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
14233    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
14234        + Send;
14235    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
14236    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
14237        + Send;
14238    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
14239    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
14240        + Send;
14241    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
14242    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
14243            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
14244        > + Send;
14245    fn r#set_ip_receive_type_of_service(
14246        &self,
14247        value: bool,
14248    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
14249    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
14250            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
14251        > + Send;
14252    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
14253    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
14254        + Send;
14255    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
14256    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
14257        + Send;
14258    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
14259    type SetIpMulticastInterfaceResponseFut: std::future::Future<
14260            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
14261        > + Send;
14262    fn r#set_ip_multicast_interface(
14263        &self,
14264        iface: u64,
14265        address: &fidl_fuchsia_net::Ipv4Address,
14266    ) -> Self::SetIpMulticastInterfaceResponseFut;
14267    type GetIpMulticastInterfaceResponseFut: std::future::Future<
14268            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
14269        > + Send;
14270    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
14271    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
14272        + Send;
14273    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
14274    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
14275        + Send;
14276    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
14277    type SetIpMulticastLoopbackResponseFut: std::future::Future<
14278            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
14279        > + Send;
14280    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
14281    type GetIpMulticastLoopbackResponseFut: std::future::Future<
14282            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
14283        > + Send;
14284    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
14285    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
14286        + Send;
14287    fn r#add_ip_membership(
14288        &self,
14289        membership: &IpMulticastMembership,
14290    ) -> Self::AddIpMembershipResponseFut;
14291    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
14292        + Send;
14293    fn r#drop_ip_membership(
14294        &self,
14295        membership: &IpMulticastMembership,
14296    ) -> Self::DropIpMembershipResponseFut;
14297    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
14298        + Send;
14299    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
14300    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
14301        + Send;
14302    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
14303    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
14304            Output = Result<
14305                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
14306                fidl::Error,
14307            >,
14308        > + Send;
14309    fn r#set_ip_receive_original_destination_address(
14310        &self,
14311        value: bool,
14312    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
14313    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
14314            Output = Result<
14315                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
14316                fidl::Error,
14317            >,
14318        > + Send;
14319    fn r#get_ip_receive_original_destination_address(
14320        &self,
14321    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
14322    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
14323        + Send;
14324    fn r#add_ipv6_membership(
14325        &self,
14326        membership: &Ipv6MulticastMembership,
14327    ) -> Self::AddIpv6MembershipResponseFut;
14328    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
14329        + Send;
14330    fn r#drop_ipv6_membership(
14331        &self,
14332        membership: &Ipv6MulticastMembership,
14333    ) -> Self::DropIpv6MembershipResponseFut;
14334    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
14335            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
14336        > + Send;
14337    fn r#set_ipv6_multicast_interface(
14338        &self,
14339        value: u64,
14340    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
14341    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
14342            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
14343        > + Send;
14344    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
14345    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
14346        + Send;
14347    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
14348    -> Self::SetIpv6UnicastHopsResponseFut;
14349    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
14350        + Send;
14351    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
14352    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
14353            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
14354        > + Send;
14355    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
14356    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
14357            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
14358        > + Send;
14359    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
14360    type SetIpv6MulticastHopsResponseFut: std::future::Future<
14361            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
14362        > + Send;
14363    fn r#set_ipv6_multicast_hops(
14364        &self,
14365        value: &OptionalUint8,
14366    ) -> Self::SetIpv6MulticastHopsResponseFut;
14367    type GetIpv6MulticastHopsResponseFut: std::future::Future<
14368            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
14369        > + Send;
14370    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
14371    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
14372            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
14373        > + Send;
14374    fn r#set_ipv6_multicast_loopback(
14375        &self,
14376        value: bool,
14377    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
14378    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
14379            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
14380        > + Send;
14381    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
14382    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
14383        + Send;
14384    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
14385    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
14386        + Send;
14387    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
14388    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
14389            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
14390        > + Send;
14391    fn r#set_ipv6_receive_traffic_class(
14392        &self,
14393        value: bool,
14394    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
14395    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
14396            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
14397        > + Send;
14398    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
14399    type SetIpv6TrafficClassResponseFut: std::future::Future<
14400            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
14401        > + Send;
14402    fn r#set_ipv6_traffic_class(
14403        &self,
14404        value: &OptionalUint8,
14405    ) -> Self::SetIpv6TrafficClassResponseFut;
14406    type GetIpv6TrafficClassResponseFut: std::future::Future<
14407            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
14408        > + Send;
14409    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
14410    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
14411            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
14412        > + Send;
14413    fn r#set_ipv6_receive_packet_info(
14414        &self,
14415        value: bool,
14416    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
14417    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
14418            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
14419        > + Send;
14420    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
14421    type GetOriginalDestinationResponseFut: std::future::Future<
14422            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
14423        > + Send;
14424    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
14425}
14426#[derive(Debug)]
14427#[cfg(target_os = "fuchsia")]
14428pub struct BaseNetworkSocketSynchronousProxy {
14429    client: fidl::client::sync::Client,
14430}
14431
14432#[cfg(target_os = "fuchsia")]
14433impl fidl::endpoints::SynchronousProxy for BaseNetworkSocketSynchronousProxy {
14434    type Proxy = BaseNetworkSocketProxy;
14435    type Protocol = BaseNetworkSocketMarker;
14436
14437    fn from_channel(inner: fidl::Channel) -> Self {
14438        Self::new(inner)
14439    }
14440
14441    fn into_channel(self) -> fidl::Channel {
14442        self.client.into_channel()
14443    }
14444
14445    fn as_channel(&self) -> &fidl::Channel {
14446        self.client.as_channel()
14447    }
14448}
14449
14450#[cfg(target_os = "fuchsia")]
14451impl BaseNetworkSocketSynchronousProxy {
14452    pub fn new(channel: fidl::Channel) -> Self {
14453        let protocol_name =
14454            <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
14455        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
14456    }
14457
14458    pub fn into_channel(self) -> fidl::Channel {
14459        self.client.into_channel()
14460    }
14461
14462    /// Waits until an event arrives and returns it. It is safe for other
14463    /// threads to make concurrent requests while waiting for an event.
14464    pub fn wait_for_event(
14465        &self,
14466        deadline: zx::MonotonicInstant,
14467    ) -> Result<BaseNetworkSocketEvent, fidl::Error> {
14468        BaseNetworkSocketEvent::decode(self.client.wait_for_event(deadline)?)
14469    }
14470
14471    pub fn r#clone(
14472        &self,
14473        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
14474    ) -> Result<(), fidl::Error> {
14475        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
14476            (request,),
14477            0x20d8a7aba2168a79,
14478            fidl::encoding::DynamicFlags::empty(),
14479        )
14480    }
14481
14482    /// Terminates the connection.
14483    ///
14484    /// After calling `Close`, the client must not send any other requests.
14485    ///
14486    /// Servers, after sending the status response, should close the connection
14487    /// regardless of status and without sending an epitaph.
14488    ///
14489    /// Closing the client end of the channel should be semantically equivalent
14490    /// to calling `Close` without knowing when the close has completed or its
14491    /// status.
14492    pub fn r#close(
14493        &self,
14494        ___deadline: zx::MonotonicInstant,
14495    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
14496        let _response = self.client.send_query::<
14497            fidl::encoding::EmptyPayload,
14498            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
14499        >(
14500            (),
14501            0x5ac5d459ad7f657e,
14502            fidl::encoding::DynamicFlags::empty(),
14503            ___deadline,
14504        )?;
14505        Ok(_response.map(|x| x))
14506    }
14507
14508    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
14509        let _response = self.client.send_query::<
14510            fidl::encoding::EmptyPayload,
14511            fidl_fuchsia_unknown::QueryableQueryResponse,
14512        >(
14513            (),
14514            0x2658edee9decfc06,
14515            fidl::encoding::DynamicFlags::empty(),
14516            ___deadline,
14517        )?;
14518        Ok(_response.protocol)
14519    }
14520
14521    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
14522    pub fn r#set_reuse_address(
14523        &self,
14524        mut value: bool,
14525        ___deadline: zx::MonotonicInstant,
14526    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
14527        let _response =
14528            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
14529                fidl::encoding::EmptyStruct,
14530                fidl_fuchsia_posix::Errno,
14531            >>(
14532                (value,),
14533                0x1fd74ee8b9a4a876,
14534                fidl::encoding::DynamicFlags::empty(),
14535                ___deadline,
14536            )?;
14537        Ok(_response.map(|x| x))
14538    }
14539
14540    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
14541    pub fn r#get_reuse_address(
14542        &self,
14543        ___deadline: zx::MonotonicInstant,
14544    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
14545        let _response = self
14546            .client
14547            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14548                BaseSocketGetReuseAddressResponse,
14549                fidl_fuchsia_posix::Errno,
14550            >>(
14551                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
14552            )?;
14553        Ok(_response.map(|x| x.value))
14554    }
14555
14556    /// Get `SOL_SOCKET` -> `SO_ERROR`.
14557    /// Returns the last error if there is an error set on the socket.
14558    pub fn r#get_error(
14559        &self,
14560        ___deadline: zx::MonotonicInstant,
14561    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
14562        let _response =
14563            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14564                fidl::encoding::EmptyStruct,
14565                fidl_fuchsia_posix::Errno,
14566            >>(
14567                (),
14568                0x5aad39b33e5f6ebb,
14569                fidl::encoding::DynamicFlags::empty(),
14570                ___deadline,
14571            )?;
14572        Ok(_response.map(|x| x))
14573    }
14574
14575    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
14576    pub fn r#set_broadcast(
14577        &self,
14578        mut value: bool,
14579        ___deadline: zx::MonotonicInstant,
14580    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
14581        let _response =
14582            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
14583                fidl::encoding::EmptyStruct,
14584                fidl_fuchsia_posix::Errno,
14585            >>(
14586                (value,),
14587                0x6023e081ce3cd947,
14588                fidl::encoding::DynamicFlags::empty(),
14589                ___deadline,
14590            )?;
14591        Ok(_response.map(|x| x))
14592    }
14593
14594    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
14595    pub fn r#get_broadcast(
14596        &self,
14597        ___deadline: zx::MonotonicInstant,
14598    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
14599        let _response =
14600            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14601                BaseSocketGetBroadcastResponse,
14602                fidl_fuchsia_posix::Errno,
14603            >>(
14604                (),
14605                0x68796fc556f9780d,
14606                fidl::encoding::DynamicFlags::empty(),
14607                ___deadline,
14608            )?;
14609        Ok(_response.map(|x| x.value))
14610    }
14611
14612    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
14613    pub fn r#set_send_buffer(
14614        &self,
14615        mut value_bytes: u64,
14616        ___deadline: zx::MonotonicInstant,
14617    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
14618        let _response =
14619            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
14620                fidl::encoding::EmptyStruct,
14621                fidl_fuchsia_posix::Errno,
14622            >>(
14623                (value_bytes,),
14624                0x756eac32d73a7a70,
14625                fidl::encoding::DynamicFlags::empty(),
14626                ___deadline,
14627            )?;
14628        Ok(_response.map(|x| x))
14629    }
14630
14631    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
14632    pub fn r#get_send_buffer(
14633        &self,
14634        ___deadline: zx::MonotonicInstant,
14635    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
14636        let _response = self
14637            .client
14638            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14639                BaseSocketGetSendBufferResponse,
14640                fidl_fuchsia_posix::Errno,
14641            >>(
14642                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
14643            )?;
14644        Ok(_response.map(|x| x.value_bytes))
14645    }
14646
14647    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
14648    pub fn r#set_receive_buffer(
14649        &self,
14650        mut value_bytes: u64,
14651        ___deadline: zx::MonotonicInstant,
14652    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
14653        let _response =
14654            self.client
14655                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
14656                    fidl::encoding::EmptyStruct,
14657                    fidl_fuchsia_posix::Errno,
14658                >>(
14659                    (value_bytes,),
14660                    0x6b0cf2f1919c7001,
14661                    fidl::encoding::DynamicFlags::empty(),
14662                    ___deadline,
14663                )?;
14664        Ok(_response.map(|x| x))
14665    }
14666
14667    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
14668    pub fn r#get_receive_buffer(
14669        &self,
14670        ___deadline: zx::MonotonicInstant,
14671    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
14672        let _response = self
14673            .client
14674            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14675                BaseSocketGetReceiveBufferResponse,
14676                fidl_fuchsia_posix::Errno,
14677            >>(
14678                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
14679            )?;
14680        Ok(_response.map(|x| x.value_bytes))
14681    }
14682
14683    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
14684    pub fn r#set_keep_alive(
14685        &self,
14686        mut value: bool,
14687        ___deadline: zx::MonotonicInstant,
14688    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
14689        let _response =
14690            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
14691                fidl::encoding::EmptyStruct,
14692                fidl_fuchsia_posix::Errno,
14693            >>(
14694                (value,),
14695                0x572df8f0b920d2c7,
14696                fidl::encoding::DynamicFlags::empty(),
14697                ___deadline,
14698            )?;
14699        Ok(_response.map(|x| x))
14700    }
14701
14702    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
14703    pub fn r#get_keep_alive(
14704        &self,
14705        ___deadline: zx::MonotonicInstant,
14706    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
14707        let _response =
14708            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14709                BaseSocketGetKeepAliveResponse,
14710                fidl_fuchsia_posix::Errno,
14711            >>(
14712                (),
14713                0x2dd29d3215f2c9d2,
14714                fidl::encoding::DynamicFlags::empty(),
14715                ___deadline,
14716            )?;
14717        Ok(_response.map(|x| x.value))
14718    }
14719
14720    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
14721    pub fn r#set_out_of_band_inline(
14722        &self,
14723        mut value: bool,
14724        ___deadline: zx::MonotonicInstant,
14725    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
14726        let _response =
14727            self.client
14728                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
14729                    fidl::encoding::EmptyStruct,
14730                    fidl_fuchsia_posix::Errno,
14731                >>(
14732                    (value,),
14733                    0x3ecb49968bee439,
14734                    fidl::encoding::DynamicFlags::empty(),
14735                    ___deadline,
14736                )?;
14737        Ok(_response.map(|x| x))
14738    }
14739
14740    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
14741    pub fn r#get_out_of_band_inline(
14742        &self,
14743        ___deadline: zx::MonotonicInstant,
14744    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
14745        let _response = self
14746            .client
14747            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14748                BaseSocketGetOutOfBandInlineResponse,
14749                fidl_fuchsia_posix::Errno,
14750            >>(
14751                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
14752            )?;
14753        Ok(_response.map(|x| x.value))
14754    }
14755
14756    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
14757    pub fn r#set_no_check(
14758        &self,
14759        mut value: bool,
14760        ___deadline: zx::MonotonicInstant,
14761    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
14762        let _response =
14763            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
14764                fidl::encoding::EmptyStruct,
14765                fidl_fuchsia_posix::Errno,
14766            >>(
14767                (value,),
14768                0x6bbf00c53a4c78c2,
14769                fidl::encoding::DynamicFlags::empty(),
14770                ___deadline,
14771            )?;
14772        Ok(_response.map(|x| x))
14773    }
14774
14775    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
14776    pub fn r#get_no_check(
14777        &self,
14778        ___deadline: zx::MonotonicInstant,
14779    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
14780        let _response =
14781            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14782                BaseSocketGetNoCheckResponse,
14783                fidl_fuchsia_posix::Errno,
14784            >>(
14785                (),
14786                0x2cd4249286417694,
14787                fidl::encoding::DynamicFlags::empty(),
14788                ___deadline,
14789            )?;
14790        Ok(_response.map(|x| x.value))
14791    }
14792
14793    /// Set `SOL_SOCKET` -> `SO_LINGER`.
14794    pub fn r#set_linger(
14795        &self,
14796        mut linger: bool,
14797        mut length_secs: u32,
14798        ___deadline: zx::MonotonicInstant,
14799    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
14800        let _response =
14801            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
14802                fidl::encoding::EmptyStruct,
14803                fidl_fuchsia_posix::Errno,
14804            >>(
14805                (linger, length_secs),
14806                0x45386351246e998e,
14807                fidl::encoding::DynamicFlags::empty(),
14808                ___deadline,
14809            )?;
14810        Ok(_response.map(|x| x))
14811    }
14812
14813    /// Get `SOL_SOCKET` -> `SO_LINGER`.
14814    pub fn r#get_linger(
14815        &self,
14816        ___deadline: zx::MonotonicInstant,
14817    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
14818        let _response =
14819            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14820                BaseSocketGetLingerResponse,
14821                fidl_fuchsia_posix::Errno,
14822            >>(
14823                (),
14824                0x48eb20fc5ccb0e45,
14825                fidl::encoding::DynamicFlags::empty(),
14826                ___deadline,
14827            )?;
14828        Ok(_response.map(|x| (x.linger, x.length_secs)))
14829    }
14830
14831    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
14832    pub fn r#set_reuse_port(
14833        &self,
14834        mut value: bool,
14835        ___deadline: zx::MonotonicInstant,
14836    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
14837        let _response =
14838            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
14839                fidl::encoding::EmptyStruct,
14840                fidl_fuchsia_posix::Errno,
14841            >>(
14842                (value,),
14843                0x24dd3e5cb36d9ccb,
14844                fidl::encoding::DynamicFlags::empty(),
14845                ___deadline,
14846            )?;
14847        Ok(_response.map(|x| x))
14848    }
14849
14850    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
14851    pub fn r#get_reuse_port(
14852        &self,
14853        ___deadline: zx::MonotonicInstant,
14854    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
14855        let _response =
14856            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14857                BaseSocketGetReusePortResponse,
14858                fidl_fuchsia_posix::Errno,
14859            >>(
14860                (),
14861                0x7a112c1ab54ff828,
14862                fidl::encoding::DynamicFlags::empty(),
14863                ___deadline,
14864            )?;
14865        Ok(_response.map(|x| x.value))
14866    }
14867
14868    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
14869    pub fn r#get_accept_conn(
14870        &self,
14871        ___deadline: zx::MonotonicInstant,
14872    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
14873        let _response = self
14874            .client
14875            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14876                BaseSocketGetAcceptConnResponse,
14877                fidl_fuchsia_posix::Errno,
14878            >>(
14879                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
14880            )?;
14881        Ok(_response.map(|x| x.value))
14882    }
14883
14884    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
14885    pub fn r#set_bind_to_device(
14886        &self,
14887        mut value: &str,
14888        ___deadline: zx::MonotonicInstant,
14889    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
14890        let _response =
14891            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
14892                fidl::encoding::EmptyStruct,
14893                fidl_fuchsia_posix::Errno,
14894            >>(
14895                (value,),
14896                0x2118b483f28aafc4,
14897                fidl::encoding::DynamicFlags::empty(),
14898                ___deadline,
14899            )?;
14900        Ok(_response.map(|x| x))
14901    }
14902
14903    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
14904    pub fn r#get_bind_to_device(
14905        &self,
14906        ___deadline: zx::MonotonicInstant,
14907    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
14908        let _response = self
14909            .client
14910            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14911                BaseSocketGetBindToDeviceResponse,
14912                fidl_fuchsia_posix::Errno,
14913            >>(
14914                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
14915            )?;
14916        Ok(_response.map(|x| x.value))
14917    }
14918
14919    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
14920    /// If `value` is 0, this clears the bound interface.
14921    pub fn r#set_bind_to_interface_index(
14922        &self,
14923        mut value: u64,
14924        ___deadline: zx::MonotonicInstant,
14925    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
14926        let _response =
14927            self.client
14928                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
14929                    fidl::encoding::EmptyStruct,
14930                    fidl_fuchsia_posix::Errno,
14931                >>(
14932                    (value,),
14933                    0x6e387a0def00821,
14934                    fidl::encoding::DynamicFlags::empty(),
14935                    ___deadline,
14936                )?;
14937        Ok(_response.map(|x| x))
14938    }
14939
14940    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
14941    pub fn r#get_bind_to_interface_index(
14942        &self,
14943        ___deadline: zx::MonotonicInstant,
14944    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
14945        let _response = self
14946            .client
14947            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14948                BaseSocketGetBindToInterfaceIndexResponse,
14949                fidl_fuchsia_posix::Errno,
14950            >>(
14951                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
14952            )?;
14953        Ok(_response.map(|x| x.value))
14954    }
14955
14956    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
14957    pub fn r#set_timestamp(
14958        &self,
14959        mut value: TimestampOption,
14960        ___deadline: zx::MonotonicInstant,
14961    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
14962        let _response =
14963            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
14964                fidl::encoding::EmptyStruct,
14965                fidl_fuchsia_posix::Errno,
14966            >>(
14967                (value,),
14968                0x285d6516c263d839,
14969                fidl::encoding::DynamicFlags::empty(),
14970                ___deadline,
14971            )?;
14972        Ok(_response.map(|x| x))
14973    }
14974
14975    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
14976    pub fn r#get_timestamp(
14977        &self,
14978        ___deadline: zx::MonotonicInstant,
14979    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
14980        let _response =
14981            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
14982                BaseSocketGetTimestampResponse,
14983                fidl_fuchsia_posix::Errno,
14984            >>(
14985                (),
14986                0x49f2fffbbcc2bd27,
14987                fidl::encoding::DynamicFlags::empty(),
14988                ___deadline,
14989            )?;
14990        Ok(_response.map(|x| x.value))
14991    }
14992
14993    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
14994    /// unlike the standard SO_MARK, this API has multiple mark domains and each
14995    /// mark can be set independently in each domain.
14996    pub fn r#set_mark(
14997        &self,
14998        mut domain: fidl_fuchsia_net::MarkDomain,
14999        mut mark: &OptionalUint32,
15000        ___deadline: zx::MonotonicInstant,
15001    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
15002        let _response =
15003            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
15004                fidl::encoding::EmptyStruct,
15005                fidl_fuchsia_posix::Errno,
15006            >>(
15007                (domain, mark),
15008                0x6ead6de09f653236,
15009                fidl::encoding::DynamicFlags::empty(),
15010                ___deadline,
15011            )?;
15012        Ok(_response.map(|x| x))
15013    }
15014
15015    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
15016    /// unlike the standard SO_MARK, this API has multiple mark domains and each
15017    /// mark can be retrieved independently in each domain.
15018    pub fn r#get_mark(
15019        &self,
15020        mut domain: fidl_fuchsia_net::MarkDomain,
15021        ___deadline: zx::MonotonicInstant,
15022    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
15023        let _response =
15024            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
15025                BaseSocketGetMarkResponse,
15026                fidl_fuchsia_posix::Errno,
15027            >>(
15028                (domain,),
15029                0x57a2752c61d93d47,
15030                fidl::encoding::DynamicFlags::empty(),
15031                ___deadline,
15032            )?;
15033        Ok(_response.map(|x| x.mark))
15034    }
15035
15036    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
15037    pub fn r#get_cookie(
15038        &self,
15039        ___deadline: zx::MonotonicInstant,
15040    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
15041        let _response =
15042            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15043                BaseSocketGetCookieResponse,
15044                fidl_fuchsia_posix::Errno,
15045            >>(
15046                (),
15047                0x2c2f47fd8f924e52,
15048                fidl::encoding::DynamicFlags::empty(),
15049                ___deadline,
15050            )?;
15051        Ok(_response.map(|x| x.value))
15052    }
15053
15054    /// Sets the local address used for the socket.
15055    pub fn r#bind(
15056        &self,
15057        mut addr: &fidl_fuchsia_net::SocketAddress,
15058        ___deadline: zx::MonotonicInstant,
15059    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
15060        let _response =
15061            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
15062                fidl::encoding::EmptyStruct,
15063                fidl_fuchsia_posix::Errno,
15064            >>(
15065                (addr,),
15066                0x4bc6400ae92125d,
15067                fidl::encoding::DynamicFlags::empty(),
15068                ___deadline,
15069            )?;
15070        Ok(_response.map(|x| x))
15071    }
15072
15073    /// Initiates a connection to a remote address.
15074    pub fn r#connect(
15075        &self,
15076        mut addr: &fidl_fuchsia_net::SocketAddress,
15077        ___deadline: zx::MonotonicInstant,
15078    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
15079        let _response =
15080            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
15081                fidl::encoding::EmptyStruct,
15082                fidl_fuchsia_posix::Errno,
15083            >>(
15084                (addr,),
15085                0x5f05f19bfdd38871,
15086                fidl::encoding::DynamicFlags::empty(),
15087                ___deadline,
15088            )?;
15089        Ok(_response.map(|x| x))
15090    }
15091
15092    /// Clears connection information from this socket.
15093    pub fn r#disconnect(
15094        &self,
15095        ___deadline: zx::MonotonicInstant,
15096    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
15097        let _response =
15098            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15099                fidl::encoding::EmptyStruct,
15100                fidl_fuchsia_posix::Errno,
15101            >>(
15102                (),
15103                0x74e63b91f7b29b2,
15104                fidl::encoding::DynamicFlags::empty(),
15105                ___deadline,
15106            )?;
15107        Ok(_response.map(|x| x))
15108    }
15109
15110    /// Retrieves the local socket address.
15111    pub fn r#get_sock_name(
15112        &self,
15113        ___deadline: zx::MonotonicInstant,
15114    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
15115        let _response = self
15116            .client
15117            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15118                BaseNetworkSocketGetSockNameResponse,
15119                fidl_fuchsia_posix::Errno,
15120            >>(
15121                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
15122            )?;
15123        Ok(_response.map(|x| x.addr))
15124    }
15125
15126    /// Retrieves the remote socket address.
15127    pub fn r#get_peer_name(
15128        &self,
15129        ___deadline: zx::MonotonicInstant,
15130    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
15131        let _response = self
15132            .client
15133            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15134                BaseNetworkSocketGetPeerNameResponse,
15135                fidl_fuchsia_posix::Errno,
15136            >>(
15137                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
15138            )?;
15139        Ok(_response.map(|x| x.addr))
15140    }
15141
15142    /// Shuts down part of the socket.
15143    pub fn r#shutdown(
15144        &self,
15145        mut mode: ShutdownMode,
15146        ___deadline: zx::MonotonicInstant,
15147    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
15148        let _response =
15149            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
15150                fidl::encoding::EmptyStruct,
15151                fidl_fuchsia_posix::Errno,
15152            >>(
15153                (mode,),
15154                0x247f38b6db68c336,
15155                fidl::encoding::DynamicFlags::empty(),
15156                ___deadline,
15157            )?;
15158        Ok(_response.map(|x| x))
15159    }
15160
15161    /// Set `SOL_IP` -> `IP_TOS`.
15162    pub fn r#set_ip_type_of_service(
15163        &self,
15164        mut value: u8,
15165        ___deadline: zx::MonotonicInstant,
15166    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
15167        let _response = self.client.send_query::<
15168            BaseNetworkSocketSetIpTypeOfServiceRequest,
15169            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15170        >(
15171            (value,),
15172            0x995c600475b6d46,
15173            fidl::encoding::DynamicFlags::empty(),
15174            ___deadline,
15175        )?;
15176        Ok(_response.map(|x| x))
15177    }
15178
15179    /// Get `SOL_IP` -> `IP_TOS`.
15180    pub fn r#get_ip_type_of_service(
15181        &self,
15182        ___deadline: zx::MonotonicInstant,
15183    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
15184        let _response = self
15185            .client
15186            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15187                BaseNetworkSocketGetIpTypeOfServiceResponse,
15188                fidl_fuchsia_posix::Errno,
15189            >>(
15190                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
15191            )?;
15192        Ok(_response.map(|x| x.value))
15193    }
15194
15195    /// Set `SOL_IP` -> `IP_TTL`.
15196    pub fn r#set_ip_ttl(
15197        &self,
15198        mut value: &OptionalUint8,
15199        ___deadline: zx::MonotonicInstant,
15200    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
15201        let _response =
15202            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
15203                fidl::encoding::EmptyStruct,
15204                fidl_fuchsia_posix::Errno,
15205            >>(
15206                (value,),
15207                0x29e2424b433ae1ef,
15208                fidl::encoding::DynamicFlags::empty(),
15209                ___deadline,
15210            )?;
15211        Ok(_response.map(|x| x))
15212    }
15213
15214    /// Get `SOL_IP` -> `IP_TTL`.
15215    pub fn r#get_ip_ttl(
15216        &self,
15217        ___deadline: zx::MonotonicInstant,
15218    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
15219        let _response = self
15220            .client
15221            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15222                BaseNetworkSocketGetIpTtlResponse,
15223                fidl_fuchsia_posix::Errno,
15224            >>(
15225                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
15226            )?;
15227        Ok(_response.map(|x| x.value))
15228    }
15229
15230    /// Set `SOL_IP` -> `IP_PKTINFO`.
15231    pub fn r#set_ip_packet_info(
15232        &self,
15233        mut value: bool,
15234        ___deadline: zx::MonotonicInstant,
15235    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
15236        let _response =
15237            self.client
15238                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
15239                    fidl::encoding::EmptyStruct,
15240                    fidl_fuchsia_posix::Errno,
15241                >>(
15242                    (value,),
15243                    0x392d16bee20c0e16,
15244                    fidl::encoding::DynamicFlags::empty(),
15245                    ___deadline,
15246                )?;
15247        Ok(_response.map(|x| x))
15248    }
15249
15250    /// Get `SOL_IP` -> `IP_PKTINFO`.
15251    pub fn r#get_ip_packet_info(
15252        &self,
15253        ___deadline: zx::MonotonicInstant,
15254    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
15255        let _response = self
15256            .client
15257            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15258                BaseNetworkSocketGetIpPacketInfoResponse,
15259                fidl_fuchsia_posix::Errno,
15260            >>(
15261                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
15262            )?;
15263        Ok(_response.map(|x| x.value))
15264    }
15265
15266    /// Set `SOL_IP` -> `IP_RECVTOS`.
15267    pub fn r#set_ip_receive_type_of_service(
15268        &self,
15269        mut value: bool,
15270        ___deadline: zx::MonotonicInstant,
15271    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
15272        let _response = self.client.send_query::<
15273            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
15274            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15275        >(
15276            (value,),
15277            0x6c4f6714995f84ef,
15278            fidl::encoding::DynamicFlags::empty(),
15279            ___deadline,
15280        )?;
15281        Ok(_response.map(|x| x))
15282    }
15283
15284    /// Get `SOL_IP` -> `IP_RECVTOS`.
15285    pub fn r#get_ip_receive_type_of_service(
15286        &self,
15287        ___deadline: zx::MonotonicInstant,
15288    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
15289        let _response = self
15290            .client
15291            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15292                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
15293                fidl_fuchsia_posix::Errno,
15294            >>(
15295                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
15296            )?;
15297        Ok(_response.map(|x| x.value))
15298    }
15299
15300    /// Set `SOL_IP` -> `IP_RECVTTL`.
15301    pub fn r#set_ip_receive_ttl(
15302        &self,
15303        mut value: bool,
15304        ___deadline: zx::MonotonicInstant,
15305    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
15306        let _response =
15307            self.client
15308                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
15309                    fidl::encoding::EmptyStruct,
15310                    fidl_fuchsia_posix::Errno,
15311                >>(
15312                    (value,),
15313                    0x46f15be0ce0ab82b,
15314                    fidl::encoding::DynamicFlags::empty(),
15315                    ___deadline,
15316                )?;
15317        Ok(_response.map(|x| x))
15318    }
15319
15320    /// Get `SOL_IP` -> `IP_RECVTTL`.
15321    pub fn r#get_ip_receive_ttl(
15322        &self,
15323        ___deadline: zx::MonotonicInstant,
15324    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
15325        let _response = self
15326            .client
15327            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15328                BaseNetworkSocketGetIpReceiveTtlResponse,
15329                fidl_fuchsia_posix::Errno,
15330            >>(
15331                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
15332            )?;
15333        Ok(_response.map(|x| x.value))
15334    }
15335
15336    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
15337    pub fn r#set_ip_multicast_interface(
15338        &self,
15339        mut iface: u64,
15340        mut address: &fidl_fuchsia_net::Ipv4Address,
15341        ___deadline: zx::MonotonicInstant,
15342    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
15343        let _response = self.client.send_query::<
15344            BaseNetworkSocketSetIpMulticastInterfaceRequest,
15345            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15346        >(
15347            (iface, address,),
15348            0x752fbfa9b12befe,
15349            fidl::encoding::DynamicFlags::empty(),
15350            ___deadline,
15351        )?;
15352        Ok(_response.map(|x| x))
15353    }
15354
15355    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
15356    pub fn r#get_ip_multicast_interface(
15357        &self,
15358        ___deadline: zx::MonotonicInstant,
15359    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
15360        let _response = self
15361            .client
15362            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15363                BaseNetworkSocketGetIpMulticastInterfaceResponse,
15364                fidl_fuchsia_posix::Errno,
15365            >>(
15366                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
15367            )?;
15368        Ok(_response.map(|x| x.value))
15369    }
15370
15371    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
15372    pub fn r#set_ip_multicast_ttl(
15373        &self,
15374        mut value: &OptionalUint8,
15375        ___deadline: zx::MonotonicInstant,
15376    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
15377        let _response =
15378            self.client
15379                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
15380                    fidl::encoding::EmptyStruct,
15381                    fidl_fuchsia_posix::Errno,
15382                >>(
15383                    (value,),
15384                    0x63134d53772916a1,
15385                    fidl::encoding::DynamicFlags::empty(),
15386                    ___deadline,
15387                )?;
15388        Ok(_response.map(|x| x))
15389    }
15390
15391    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
15392    pub fn r#get_ip_multicast_ttl(
15393        &self,
15394        ___deadline: zx::MonotonicInstant,
15395    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
15396        let _response = self
15397            .client
15398            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15399                BaseNetworkSocketGetIpMulticastTtlResponse,
15400                fidl_fuchsia_posix::Errno,
15401            >>(
15402                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
15403            )?;
15404        Ok(_response.map(|x| x.value))
15405    }
15406
15407    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
15408    pub fn r#set_ip_multicast_loopback(
15409        &self,
15410        mut value: bool,
15411        ___deadline: zx::MonotonicInstant,
15412    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
15413        let _response = self.client.send_query::<
15414            BaseNetworkSocketSetIpMulticastLoopbackRequest,
15415            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15416        >(
15417            (value,),
15418            0x20c55c11f00943ea,
15419            fidl::encoding::DynamicFlags::empty(),
15420            ___deadline,
15421        )?;
15422        Ok(_response.map(|x| x))
15423    }
15424
15425    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
15426    pub fn r#get_ip_multicast_loopback(
15427        &self,
15428        ___deadline: zx::MonotonicInstant,
15429    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
15430        let _response = self
15431            .client
15432            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15433                BaseNetworkSocketGetIpMulticastLoopbackResponse,
15434                fidl_fuchsia_posix::Errno,
15435            >>(
15436                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
15437            )?;
15438        Ok(_response.map(|x| x.value))
15439    }
15440
15441    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
15442    pub fn r#add_ip_membership(
15443        &self,
15444        mut membership: &IpMulticastMembership,
15445        ___deadline: zx::MonotonicInstant,
15446    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
15447        let _response =
15448            self.client
15449                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
15450                    fidl::encoding::EmptyStruct,
15451                    fidl_fuchsia_posix::Errno,
15452                >>(
15453                    (membership,),
15454                    0x76bc7df115a3b4d0,
15455                    fidl::encoding::DynamicFlags::empty(),
15456                    ___deadline,
15457                )?;
15458        Ok(_response.map(|x| x))
15459    }
15460
15461    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
15462    pub fn r#drop_ip_membership(
15463        &self,
15464        mut membership: &IpMulticastMembership,
15465        ___deadline: zx::MonotonicInstant,
15466    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
15467        let _response =
15468            self.client
15469                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
15470                    fidl::encoding::EmptyStruct,
15471                    fidl_fuchsia_posix::Errno,
15472                >>(
15473                    (membership,),
15474                    0x2888f3099188d03,
15475                    fidl::encoding::DynamicFlags::empty(),
15476                    ___deadline,
15477                )?;
15478        Ok(_response.map(|x| x))
15479    }
15480
15481    /// Set `SOL_IP` -> `IP_TRANSPARENT`
15482    pub fn r#set_ip_transparent(
15483        &self,
15484        mut value: bool,
15485        ___deadline: zx::MonotonicInstant,
15486    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
15487        let _response =
15488            self.client
15489                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
15490                    fidl::encoding::EmptyStruct,
15491                    fidl_fuchsia_posix::Errno,
15492                >>(
15493                    (value,),
15494                    0x1ae532b0c066e3a0,
15495                    fidl::encoding::DynamicFlags::empty(),
15496                    ___deadline,
15497                )?;
15498        Ok(_response.map(|x| x))
15499    }
15500
15501    /// Get `SOL_IP` -> `IP_TRANSPARENT`
15502    pub fn r#get_ip_transparent(
15503        &self,
15504        ___deadline: zx::MonotonicInstant,
15505    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
15506        let _response = self
15507            .client
15508            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15509                BaseNetworkSocketGetIpTransparentResponse,
15510                fidl_fuchsia_posix::Errno,
15511            >>(
15512                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
15513            )?;
15514        Ok(_response.map(|x| x.value))
15515    }
15516
15517    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
15518    pub fn r#set_ip_receive_original_destination_address(
15519        &self,
15520        mut value: bool,
15521        ___deadline: zx::MonotonicInstant,
15522    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
15523        let _response = self.client.send_query::<
15524            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
15525            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15526        >(
15527            (value,),
15528            0x4722b4ce52f7840,
15529            fidl::encoding::DynamicFlags::empty(),
15530            ___deadline,
15531        )?;
15532        Ok(_response.map(|x| x))
15533    }
15534
15535    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
15536    pub fn r#get_ip_receive_original_destination_address(
15537        &self,
15538        ___deadline: zx::MonotonicInstant,
15539    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
15540        let _response = self
15541            .client
15542            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15543                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
15544                fidl_fuchsia_posix::Errno,
15545            >>(
15546                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
15547            )?;
15548        Ok(_response.map(|x| x.value))
15549    }
15550
15551    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
15552    pub fn r#add_ipv6_membership(
15553        &self,
15554        mut membership: &Ipv6MulticastMembership,
15555        ___deadline: zx::MonotonicInstant,
15556    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
15557        let _response =
15558            self.client
15559                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
15560                    fidl::encoding::EmptyStruct,
15561                    fidl_fuchsia_posix::Errno,
15562                >>(
15563                    (membership,),
15564                    0x7c94727acb4ea4b3,
15565                    fidl::encoding::DynamicFlags::empty(),
15566                    ___deadline,
15567                )?;
15568        Ok(_response.map(|x| x))
15569    }
15570
15571    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
15572    pub fn r#drop_ipv6_membership(
15573        &self,
15574        mut membership: &Ipv6MulticastMembership,
15575        ___deadline: zx::MonotonicInstant,
15576    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
15577        let _response = self.client.send_query::<
15578            BaseNetworkSocketDropIpv6MembershipRequest,
15579            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15580        >(
15581            (membership,),
15582            0x42104c70ccaba304,
15583            fidl::encoding::DynamicFlags::empty(),
15584            ___deadline,
15585        )?;
15586        Ok(_response.map(|x| x))
15587    }
15588
15589    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
15590    pub fn r#set_ipv6_multicast_interface(
15591        &self,
15592        mut value: u64,
15593        ___deadline: zx::MonotonicInstant,
15594    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
15595        let _response = self.client.send_query::<
15596            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
15597            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15598        >(
15599            (value,),
15600            0x135f76db3774ab3b,
15601            fidl::encoding::DynamicFlags::empty(),
15602            ___deadline,
15603        )?;
15604        Ok(_response.map(|x| x))
15605    }
15606
15607    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
15608    pub fn r#get_ipv6_multicast_interface(
15609        &self,
15610        ___deadline: zx::MonotonicInstant,
15611    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
15612        let _response = self
15613            .client
15614            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15615                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
15616                fidl_fuchsia_posix::Errno,
15617            >>(
15618                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
15619            )?;
15620        Ok(_response.map(|x| x.value))
15621    }
15622
15623    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
15624    pub fn r#set_ipv6_unicast_hops(
15625        &self,
15626        mut value: &OptionalUint8,
15627        ___deadline: zx::MonotonicInstant,
15628    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
15629        let _response = self.client.send_query::<
15630            BaseNetworkSocketSetIpv6UnicastHopsRequest,
15631            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15632        >(
15633            (value,),
15634            0x157d51e98f462859,
15635            fidl::encoding::DynamicFlags::empty(),
15636            ___deadline,
15637        )?;
15638        Ok(_response.map(|x| x))
15639    }
15640
15641    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
15642    pub fn r#get_ipv6_unicast_hops(
15643        &self,
15644        ___deadline: zx::MonotonicInstant,
15645    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
15646        let _response = self
15647            .client
15648            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15649                BaseNetworkSocketGetIpv6UnicastHopsResponse,
15650                fidl_fuchsia_posix::Errno,
15651            >>(
15652                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
15653            )?;
15654        Ok(_response.map(|x| x.value))
15655    }
15656
15657    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
15658    pub fn r#set_ipv6_receive_hop_limit(
15659        &self,
15660        mut value: bool,
15661        ___deadline: zx::MonotonicInstant,
15662    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
15663        let _response = self.client.send_query::<
15664            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
15665            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15666        >(
15667            (value,),
15668            0x5c24808ed2e84a1e,
15669            fidl::encoding::DynamicFlags::empty(),
15670            ___deadline,
15671        )?;
15672        Ok(_response.map(|x| x))
15673    }
15674
15675    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
15676    pub fn r#get_ipv6_receive_hop_limit(
15677        &self,
15678        ___deadline: zx::MonotonicInstant,
15679    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
15680        let _response = self
15681            .client
15682            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15683                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
15684                fidl_fuchsia_posix::Errno,
15685            >>(
15686                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
15687            )?;
15688        Ok(_response.map(|x| x.value))
15689    }
15690
15691    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
15692    pub fn r#set_ipv6_multicast_hops(
15693        &self,
15694        mut value: &OptionalUint8,
15695        ___deadline: zx::MonotonicInstant,
15696    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
15697        let _response = self.client.send_query::<
15698            BaseNetworkSocketSetIpv6MulticastHopsRequest,
15699            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15700        >(
15701            (value,),
15702            0x25b9cd4d181f82c1,
15703            fidl::encoding::DynamicFlags::empty(),
15704            ___deadline,
15705        )?;
15706        Ok(_response.map(|x| x))
15707    }
15708
15709    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
15710    pub fn r#get_ipv6_multicast_hops(
15711        &self,
15712        ___deadline: zx::MonotonicInstant,
15713    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
15714        let _response = self
15715            .client
15716            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15717                BaseNetworkSocketGetIpv6MulticastHopsResponse,
15718                fidl_fuchsia_posix::Errno,
15719            >>(
15720                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
15721            )?;
15722        Ok(_response.map(|x| x.value))
15723    }
15724
15725    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
15726    pub fn r#set_ipv6_multicast_loopback(
15727        &self,
15728        mut value: bool,
15729        ___deadline: zx::MonotonicInstant,
15730    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
15731        let _response = self.client.send_query::<
15732            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
15733            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15734        >(
15735            (value,),
15736            0x55701c409ff41b40,
15737            fidl::encoding::DynamicFlags::empty(),
15738            ___deadline,
15739        )?;
15740        Ok(_response.map(|x| x))
15741    }
15742
15743    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
15744    pub fn r#get_ipv6_multicast_loopback(
15745        &self,
15746        ___deadline: zx::MonotonicInstant,
15747    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
15748        let _response = self
15749            .client
15750            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15751                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
15752                fidl_fuchsia_posix::Errno,
15753            >>(
15754                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
15755            )?;
15756        Ok(_response.map(|x| x.value))
15757    }
15758
15759    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
15760    pub fn r#set_ipv6_only(
15761        &self,
15762        mut value: bool,
15763        ___deadline: zx::MonotonicInstant,
15764    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
15765        let _response =
15766            self.client
15767                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
15768                    fidl::encoding::EmptyStruct,
15769                    fidl_fuchsia_posix::Errno,
15770                >>(
15771                    (value,),
15772                    0x4873f1364758cbba,
15773                    fidl::encoding::DynamicFlags::empty(),
15774                    ___deadline,
15775                )?;
15776        Ok(_response.map(|x| x))
15777    }
15778
15779    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
15780    pub fn r#get_ipv6_only(
15781        &self,
15782        ___deadline: zx::MonotonicInstant,
15783    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
15784        let _response = self
15785            .client
15786            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15787                BaseNetworkSocketGetIpv6OnlyResponse,
15788                fidl_fuchsia_posix::Errno,
15789            >>(
15790                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
15791            )?;
15792        Ok(_response.map(|x| x.value))
15793    }
15794
15795    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
15796    pub fn r#set_ipv6_receive_traffic_class(
15797        &self,
15798        mut value: bool,
15799        ___deadline: zx::MonotonicInstant,
15800    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
15801        let _response = self.client.send_query::<
15802            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
15803            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15804        >(
15805            (value,),
15806            0x58f07c8788d099a0,
15807            fidl::encoding::DynamicFlags::empty(),
15808            ___deadline,
15809        )?;
15810        Ok(_response.map(|x| x))
15811    }
15812
15813    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
15814    pub fn r#get_ipv6_receive_traffic_class(
15815        &self,
15816        ___deadline: zx::MonotonicInstant,
15817    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
15818        let _response = self
15819            .client
15820            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15821                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
15822                fidl_fuchsia_posix::Errno,
15823            >>(
15824                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
15825            )?;
15826        Ok(_response.map(|x| x.value))
15827    }
15828
15829    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
15830    pub fn r#set_ipv6_traffic_class(
15831        &self,
15832        mut value: &OptionalUint8,
15833        ___deadline: zx::MonotonicInstant,
15834    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
15835        let _response = self.client.send_query::<
15836            BaseNetworkSocketSetIpv6TrafficClassRequest,
15837            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15838        >(
15839            (value,),
15840            0x6af077800c5a0b4f,
15841            fidl::encoding::DynamicFlags::empty(),
15842            ___deadline,
15843        )?;
15844        Ok(_response.map(|x| x))
15845    }
15846
15847    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
15848    pub fn r#get_ipv6_traffic_class(
15849        &self,
15850        ___deadline: zx::MonotonicInstant,
15851    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
15852        let _response = self
15853            .client
15854            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15855                BaseNetworkSocketGetIpv6TrafficClassResponse,
15856                fidl_fuchsia_posix::Errno,
15857            >>(
15858                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
15859            )?;
15860        Ok(_response.map(|x| x.value))
15861    }
15862
15863    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
15864    pub fn r#set_ipv6_receive_packet_info(
15865        &self,
15866        mut value: bool,
15867        ___deadline: zx::MonotonicInstant,
15868    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
15869        let _response = self.client.send_query::<
15870            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
15871            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
15872        >(
15873            (value,),
15874            0x19259775b1a92768,
15875            fidl::encoding::DynamicFlags::empty(),
15876            ___deadline,
15877        )?;
15878        Ok(_response.map(|x| x))
15879    }
15880
15881    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
15882    pub fn r#get_ipv6_receive_packet_info(
15883        &self,
15884        ___deadline: zx::MonotonicInstant,
15885    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
15886        let _response = self
15887            .client
15888            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15889                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
15890                fidl_fuchsia_posix::Errno,
15891            >>(
15892                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
15893            )?;
15894        Ok(_response.map(|x| x.value))
15895    }
15896
15897    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
15898    pub fn r#get_original_destination(
15899        &self,
15900        ___deadline: zx::MonotonicInstant,
15901    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
15902        let _response = self
15903            .client
15904            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
15905                BaseNetworkSocketGetOriginalDestinationResponse,
15906                fidl_fuchsia_posix::Errno,
15907            >>(
15908                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
15909            )?;
15910        Ok(_response.map(|x| x.value))
15911    }
15912}
15913
15914#[cfg(target_os = "fuchsia")]
15915impl From<BaseNetworkSocketSynchronousProxy> for zx::Handle {
15916    fn from(value: BaseNetworkSocketSynchronousProxy) -> Self {
15917        value.into_channel().into()
15918    }
15919}
15920
15921#[cfg(target_os = "fuchsia")]
15922impl From<fidl::Channel> for BaseNetworkSocketSynchronousProxy {
15923    fn from(value: fidl::Channel) -> Self {
15924        Self::new(value)
15925    }
15926}
15927
15928#[cfg(target_os = "fuchsia")]
15929impl fidl::endpoints::FromClient for BaseNetworkSocketSynchronousProxy {
15930    type Protocol = BaseNetworkSocketMarker;
15931
15932    fn from_client(value: fidl::endpoints::ClientEnd<BaseNetworkSocketMarker>) -> Self {
15933        Self::new(value.into_channel())
15934    }
15935}
15936
15937#[derive(Debug, Clone)]
15938pub struct BaseNetworkSocketProxy {
15939    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
15940}
15941
15942impl fidl::endpoints::Proxy for BaseNetworkSocketProxy {
15943    type Protocol = BaseNetworkSocketMarker;
15944
15945    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
15946        Self::new(inner)
15947    }
15948
15949    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
15950        self.client.into_channel().map_err(|client| Self { client })
15951    }
15952
15953    fn as_channel(&self) -> &::fidl::AsyncChannel {
15954        self.client.as_channel()
15955    }
15956}
15957
15958impl BaseNetworkSocketProxy {
15959    /// Create a new Proxy for fuchsia.posix.socket/BaseNetworkSocket.
15960    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
15961        let protocol_name =
15962            <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
15963        Self { client: fidl::client::Client::new(channel, protocol_name) }
15964    }
15965
15966    /// Get a Stream of events from the remote end of the protocol.
15967    ///
15968    /// # Panics
15969    ///
15970    /// Panics if the event stream was already taken.
15971    pub fn take_event_stream(&self) -> BaseNetworkSocketEventStream {
15972        BaseNetworkSocketEventStream { event_receiver: self.client.take_event_receiver() }
15973    }
15974
15975    pub fn r#clone(
15976        &self,
15977        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
15978    ) -> Result<(), fidl::Error> {
15979        BaseNetworkSocketProxyInterface::r#clone(self, request)
15980    }
15981
15982    /// Terminates the connection.
15983    ///
15984    /// After calling `Close`, the client must not send any other requests.
15985    ///
15986    /// Servers, after sending the status response, should close the connection
15987    /// regardless of status and without sending an epitaph.
15988    ///
15989    /// Closing the client end of the channel should be semantically equivalent
15990    /// to calling `Close` without knowing when the close has completed or its
15991    /// status.
15992    pub fn r#close(
15993        &self,
15994    ) -> fidl::client::QueryResponseFut<
15995        fidl_fuchsia_unknown::CloseableCloseResult,
15996        fidl::encoding::DefaultFuchsiaResourceDialect,
15997    > {
15998        BaseNetworkSocketProxyInterface::r#close(self)
15999    }
16000
16001    pub fn r#query(
16002        &self,
16003    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
16004    {
16005        BaseNetworkSocketProxyInterface::r#query(self)
16006    }
16007
16008    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
16009    pub fn r#set_reuse_address(
16010        &self,
16011        mut value: bool,
16012    ) -> fidl::client::QueryResponseFut<
16013        BaseSocketSetReuseAddressResult,
16014        fidl::encoding::DefaultFuchsiaResourceDialect,
16015    > {
16016        BaseNetworkSocketProxyInterface::r#set_reuse_address(self, value)
16017    }
16018
16019    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
16020    pub fn r#get_reuse_address(
16021        &self,
16022    ) -> fidl::client::QueryResponseFut<
16023        BaseSocketGetReuseAddressResult,
16024        fidl::encoding::DefaultFuchsiaResourceDialect,
16025    > {
16026        BaseNetworkSocketProxyInterface::r#get_reuse_address(self)
16027    }
16028
16029    /// Get `SOL_SOCKET` -> `SO_ERROR`.
16030    /// Returns the last error if there is an error set on the socket.
16031    pub fn r#get_error(
16032        &self,
16033    ) -> fidl::client::QueryResponseFut<
16034        BaseSocketGetErrorResult,
16035        fidl::encoding::DefaultFuchsiaResourceDialect,
16036    > {
16037        BaseNetworkSocketProxyInterface::r#get_error(self)
16038    }
16039
16040    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
16041    pub fn r#set_broadcast(
16042        &self,
16043        mut value: bool,
16044    ) -> fidl::client::QueryResponseFut<
16045        BaseSocketSetBroadcastResult,
16046        fidl::encoding::DefaultFuchsiaResourceDialect,
16047    > {
16048        BaseNetworkSocketProxyInterface::r#set_broadcast(self, value)
16049    }
16050
16051    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
16052    pub fn r#get_broadcast(
16053        &self,
16054    ) -> fidl::client::QueryResponseFut<
16055        BaseSocketGetBroadcastResult,
16056        fidl::encoding::DefaultFuchsiaResourceDialect,
16057    > {
16058        BaseNetworkSocketProxyInterface::r#get_broadcast(self)
16059    }
16060
16061    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
16062    pub fn r#set_send_buffer(
16063        &self,
16064        mut value_bytes: u64,
16065    ) -> fidl::client::QueryResponseFut<
16066        BaseSocketSetSendBufferResult,
16067        fidl::encoding::DefaultFuchsiaResourceDialect,
16068    > {
16069        BaseNetworkSocketProxyInterface::r#set_send_buffer(self, value_bytes)
16070    }
16071
16072    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
16073    pub fn r#get_send_buffer(
16074        &self,
16075    ) -> fidl::client::QueryResponseFut<
16076        BaseSocketGetSendBufferResult,
16077        fidl::encoding::DefaultFuchsiaResourceDialect,
16078    > {
16079        BaseNetworkSocketProxyInterface::r#get_send_buffer(self)
16080    }
16081
16082    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
16083    pub fn r#set_receive_buffer(
16084        &self,
16085        mut value_bytes: u64,
16086    ) -> fidl::client::QueryResponseFut<
16087        BaseSocketSetReceiveBufferResult,
16088        fidl::encoding::DefaultFuchsiaResourceDialect,
16089    > {
16090        BaseNetworkSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
16091    }
16092
16093    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
16094    pub fn r#get_receive_buffer(
16095        &self,
16096    ) -> fidl::client::QueryResponseFut<
16097        BaseSocketGetReceiveBufferResult,
16098        fidl::encoding::DefaultFuchsiaResourceDialect,
16099    > {
16100        BaseNetworkSocketProxyInterface::r#get_receive_buffer(self)
16101    }
16102
16103    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
16104    pub fn r#set_keep_alive(
16105        &self,
16106        mut value: bool,
16107    ) -> fidl::client::QueryResponseFut<
16108        BaseSocketSetKeepAliveResult,
16109        fidl::encoding::DefaultFuchsiaResourceDialect,
16110    > {
16111        BaseNetworkSocketProxyInterface::r#set_keep_alive(self, value)
16112    }
16113
16114    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
16115    pub fn r#get_keep_alive(
16116        &self,
16117    ) -> fidl::client::QueryResponseFut<
16118        BaseSocketGetKeepAliveResult,
16119        fidl::encoding::DefaultFuchsiaResourceDialect,
16120    > {
16121        BaseNetworkSocketProxyInterface::r#get_keep_alive(self)
16122    }
16123
16124    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
16125    pub fn r#set_out_of_band_inline(
16126        &self,
16127        mut value: bool,
16128    ) -> fidl::client::QueryResponseFut<
16129        BaseSocketSetOutOfBandInlineResult,
16130        fidl::encoding::DefaultFuchsiaResourceDialect,
16131    > {
16132        BaseNetworkSocketProxyInterface::r#set_out_of_band_inline(self, value)
16133    }
16134
16135    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
16136    pub fn r#get_out_of_band_inline(
16137        &self,
16138    ) -> fidl::client::QueryResponseFut<
16139        BaseSocketGetOutOfBandInlineResult,
16140        fidl::encoding::DefaultFuchsiaResourceDialect,
16141    > {
16142        BaseNetworkSocketProxyInterface::r#get_out_of_band_inline(self)
16143    }
16144
16145    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
16146    pub fn r#set_no_check(
16147        &self,
16148        mut value: bool,
16149    ) -> fidl::client::QueryResponseFut<
16150        BaseSocketSetNoCheckResult,
16151        fidl::encoding::DefaultFuchsiaResourceDialect,
16152    > {
16153        BaseNetworkSocketProxyInterface::r#set_no_check(self, value)
16154    }
16155
16156    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
16157    pub fn r#get_no_check(
16158        &self,
16159    ) -> fidl::client::QueryResponseFut<
16160        BaseSocketGetNoCheckResult,
16161        fidl::encoding::DefaultFuchsiaResourceDialect,
16162    > {
16163        BaseNetworkSocketProxyInterface::r#get_no_check(self)
16164    }
16165
16166    /// Set `SOL_SOCKET` -> `SO_LINGER`.
16167    pub fn r#set_linger(
16168        &self,
16169        mut linger: bool,
16170        mut length_secs: u32,
16171    ) -> fidl::client::QueryResponseFut<
16172        BaseSocketSetLingerResult,
16173        fidl::encoding::DefaultFuchsiaResourceDialect,
16174    > {
16175        BaseNetworkSocketProxyInterface::r#set_linger(self, linger, length_secs)
16176    }
16177
16178    /// Get `SOL_SOCKET` -> `SO_LINGER`.
16179    pub fn r#get_linger(
16180        &self,
16181    ) -> fidl::client::QueryResponseFut<
16182        BaseSocketGetLingerResult,
16183        fidl::encoding::DefaultFuchsiaResourceDialect,
16184    > {
16185        BaseNetworkSocketProxyInterface::r#get_linger(self)
16186    }
16187
16188    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
16189    pub fn r#set_reuse_port(
16190        &self,
16191        mut value: bool,
16192    ) -> fidl::client::QueryResponseFut<
16193        BaseSocketSetReusePortResult,
16194        fidl::encoding::DefaultFuchsiaResourceDialect,
16195    > {
16196        BaseNetworkSocketProxyInterface::r#set_reuse_port(self, value)
16197    }
16198
16199    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
16200    pub fn r#get_reuse_port(
16201        &self,
16202    ) -> fidl::client::QueryResponseFut<
16203        BaseSocketGetReusePortResult,
16204        fidl::encoding::DefaultFuchsiaResourceDialect,
16205    > {
16206        BaseNetworkSocketProxyInterface::r#get_reuse_port(self)
16207    }
16208
16209    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
16210    pub fn r#get_accept_conn(
16211        &self,
16212    ) -> fidl::client::QueryResponseFut<
16213        BaseSocketGetAcceptConnResult,
16214        fidl::encoding::DefaultFuchsiaResourceDialect,
16215    > {
16216        BaseNetworkSocketProxyInterface::r#get_accept_conn(self)
16217    }
16218
16219    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
16220    pub fn r#set_bind_to_device(
16221        &self,
16222        mut value: &str,
16223    ) -> fidl::client::QueryResponseFut<
16224        BaseSocketSetBindToDeviceResult,
16225        fidl::encoding::DefaultFuchsiaResourceDialect,
16226    > {
16227        BaseNetworkSocketProxyInterface::r#set_bind_to_device(self, value)
16228    }
16229
16230    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
16231    pub fn r#get_bind_to_device(
16232        &self,
16233    ) -> fidl::client::QueryResponseFut<
16234        BaseSocketGetBindToDeviceResult,
16235        fidl::encoding::DefaultFuchsiaResourceDialect,
16236    > {
16237        BaseNetworkSocketProxyInterface::r#get_bind_to_device(self)
16238    }
16239
16240    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
16241    /// If `value` is 0, this clears the bound interface.
16242    pub fn r#set_bind_to_interface_index(
16243        &self,
16244        mut value: u64,
16245    ) -> fidl::client::QueryResponseFut<
16246        BaseSocketSetBindToInterfaceIndexResult,
16247        fidl::encoding::DefaultFuchsiaResourceDialect,
16248    > {
16249        BaseNetworkSocketProxyInterface::r#set_bind_to_interface_index(self, value)
16250    }
16251
16252    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
16253    pub fn r#get_bind_to_interface_index(
16254        &self,
16255    ) -> fidl::client::QueryResponseFut<
16256        BaseSocketGetBindToInterfaceIndexResult,
16257        fidl::encoding::DefaultFuchsiaResourceDialect,
16258    > {
16259        BaseNetworkSocketProxyInterface::r#get_bind_to_interface_index(self)
16260    }
16261
16262    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
16263    pub fn r#set_timestamp(
16264        &self,
16265        mut value: TimestampOption,
16266    ) -> fidl::client::QueryResponseFut<
16267        BaseSocketSetTimestampResult,
16268        fidl::encoding::DefaultFuchsiaResourceDialect,
16269    > {
16270        BaseNetworkSocketProxyInterface::r#set_timestamp(self, value)
16271    }
16272
16273    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
16274    pub fn r#get_timestamp(
16275        &self,
16276    ) -> fidl::client::QueryResponseFut<
16277        BaseSocketGetTimestampResult,
16278        fidl::encoding::DefaultFuchsiaResourceDialect,
16279    > {
16280        BaseNetworkSocketProxyInterface::r#get_timestamp(self)
16281    }
16282
16283    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
16284    /// unlike the standard SO_MARK, this API has multiple mark domains and each
16285    /// mark can be set independently in each domain.
16286    pub fn r#set_mark(
16287        &self,
16288        mut domain: fidl_fuchsia_net::MarkDomain,
16289        mut mark: &OptionalUint32,
16290    ) -> fidl::client::QueryResponseFut<
16291        BaseSocketSetMarkResult,
16292        fidl::encoding::DefaultFuchsiaResourceDialect,
16293    > {
16294        BaseNetworkSocketProxyInterface::r#set_mark(self, domain, mark)
16295    }
16296
16297    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
16298    /// unlike the standard SO_MARK, this API has multiple mark domains and each
16299    /// mark can be retrieved independently in each domain.
16300    pub fn r#get_mark(
16301        &self,
16302        mut domain: fidl_fuchsia_net::MarkDomain,
16303    ) -> fidl::client::QueryResponseFut<
16304        BaseSocketGetMarkResult,
16305        fidl::encoding::DefaultFuchsiaResourceDialect,
16306    > {
16307        BaseNetworkSocketProxyInterface::r#get_mark(self, domain)
16308    }
16309
16310    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
16311    pub fn r#get_cookie(
16312        &self,
16313    ) -> fidl::client::QueryResponseFut<
16314        BaseSocketGetCookieResult,
16315        fidl::encoding::DefaultFuchsiaResourceDialect,
16316    > {
16317        BaseNetworkSocketProxyInterface::r#get_cookie(self)
16318    }
16319
16320    /// Sets the local address used for the socket.
16321    pub fn r#bind(
16322        &self,
16323        mut addr: &fidl_fuchsia_net::SocketAddress,
16324    ) -> fidl::client::QueryResponseFut<
16325        BaseNetworkSocketBindResult,
16326        fidl::encoding::DefaultFuchsiaResourceDialect,
16327    > {
16328        BaseNetworkSocketProxyInterface::r#bind(self, addr)
16329    }
16330
16331    /// Initiates a connection to a remote address.
16332    pub fn r#connect(
16333        &self,
16334        mut addr: &fidl_fuchsia_net::SocketAddress,
16335    ) -> fidl::client::QueryResponseFut<
16336        BaseNetworkSocketConnectResult,
16337        fidl::encoding::DefaultFuchsiaResourceDialect,
16338    > {
16339        BaseNetworkSocketProxyInterface::r#connect(self, addr)
16340    }
16341
16342    /// Clears connection information from this socket.
16343    pub fn r#disconnect(
16344        &self,
16345    ) -> fidl::client::QueryResponseFut<
16346        BaseNetworkSocketDisconnectResult,
16347        fidl::encoding::DefaultFuchsiaResourceDialect,
16348    > {
16349        BaseNetworkSocketProxyInterface::r#disconnect(self)
16350    }
16351
16352    /// Retrieves the local socket address.
16353    pub fn r#get_sock_name(
16354        &self,
16355    ) -> fidl::client::QueryResponseFut<
16356        BaseNetworkSocketGetSockNameResult,
16357        fidl::encoding::DefaultFuchsiaResourceDialect,
16358    > {
16359        BaseNetworkSocketProxyInterface::r#get_sock_name(self)
16360    }
16361
16362    /// Retrieves the remote socket address.
16363    pub fn r#get_peer_name(
16364        &self,
16365    ) -> fidl::client::QueryResponseFut<
16366        BaseNetworkSocketGetPeerNameResult,
16367        fidl::encoding::DefaultFuchsiaResourceDialect,
16368    > {
16369        BaseNetworkSocketProxyInterface::r#get_peer_name(self)
16370    }
16371
16372    /// Shuts down part of the socket.
16373    pub fn r#shutdown(
16374        &self,
16375        mut mode: ShutdownMode,
16376    ) -> fidl::client::QueryResponseFut<
16377        BaseNetworkSocketShutdownResult,
16378        fidl::encoding::DefaultFuchsiaResourceDialect,
16379    > {
16380        BaseNetworkSocketProxyInterface::r#shutdown(self, mode)
16381    }
16382
16383    /// Set `SOL_IP` -> `IP_TOS`.
16384    pub fn r#set_ip_type_of_service(
16385        &self,
16386        mut value: u8,
16387    ) -> fidl::client::QueryResponseFut<
16388        BaseNetworkSocketSetIpTypeOfServiceResult,
16389        fidl::encoding::DefaultFuchsiaResourceDialect,
16390    > {
16391        BaseNetworkSocketProxyInterface::r#set_ip_type_of_service(self, value)
16392    }
16393
16394    /// Get `SOL_IP` -> `IP_TOS`.
16395    pub fn r#get_ip_type_of_service(
16396        &self,
16397    ) -> fidl::client::QueryResponseFut<
16398        BaseNetworkSocketGetIpTypeOfServiceResult,
16399        fidl::encoding::DefaultFuchsiaResourceDialect,
16400    > {
16401        BaseNetworkSocketProxyInterface::r#get_ip_type_of_service(self)
16402    }
16403
16404    /// Set `SOL_IP` -> `IP_TTL`.
16405    pub fn r#set_ip_ttl(
16406        &self,
16407        mut value: &OptionalUint8,
16408    ) -> fidl::client::QueryResponseFut<
16409        BaseNetworkSocketSetIpTtlResult,
16410        fidl::encoding::DefaultFuchsiaResourceDialect,
16411    > {
16412        BaseNetworkSocketProxyInterface::r#set_ip_ttl(self, value)
16413    }
16414
16415    /// Get `SOL_IP` -> `IP_TTL`.
16416    pub fn r#get_ip_ttl(
16417        &self,
16418    ) -> fidl::client::QueryResponseFut<
16419        BaseNetworkSocketGetIpTtlResult,
16420        fidl::encoding::DefaultFuchsiaResourceDialect,
16421    > {
16422        BaseNetworkSocketProxyInterface::r#get_ip_ttl(self)
16423    }
16424
16425    /// Set `SOL_IP` -> `IP_PKTINFO`.
16426    pub fn r#set_ip_packet_info(
16427        &self,
16428        mut value: bool,
16429    ) -> fidl::client::QueryResponseFut<
16430        BaseNetworkSocketSetIpPacketInfoResult,
16431        fidl::encoding::DefaultFuchsiaResourceDialect,
16432    > {
16433        BaseNetworkSocketProxyInterface::r#set_ip_packet_info(self, value)
16434    }
16435
16436    /// Get `SOL_IP` -> `IP_PKTINFO`.
16437    pub fn r#get_ip_packet_info(
16438        &self,
16439    ) -> fidl::client::QueryResponseFut<
16440        BaseNetworkSocketGetIpPacketInfoResult,
16441        fidl::encoding::DefaultFuchsiaResourceDialect,
16442    > {
16443        BaseNetworkSocketProxyInterface::r#get_ip_packet_info(self)
16444    }
16445
16446    /// Set `SOL_IP` -> `IP_RECVTOS`.
16447    pub fn r#set_ip_receive_type_of_service(
16448        &self,
16449        mut value: bool,
16450    ) -> fidl::client::QueryResponseFut<
16451        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
16452        fidl::encoding::DefaultFuchsiaResourceDialect,
16453    > {
16454        BaseNetworkSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
16455    }
16456
16457    /// Get `SOL_IP` -> `IP_RECVTOS`.
16458    pub fn r#get_ip_receive_type_of_service(
16459        &self,
16460    ) -> fidl::client::QueryResponseFut<
16461        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
16462        fidl::encoding::DefaultFuchsiaResourceDialect,
16463    > {
16464        BaseNetworkSocketProxyInterface::r#get_ip_receive_type_of_service(self)
16465    }
16466
16467    /// Set `SOL_IP` -> `IP_RECVTTL`.
16468    pub fn r#set_ip_receive_ttl(
16469        &self,
16470        mut value: bool,
16471    ) -> fidl::client::QueryResponseFut<
16472        BaseNetworkSocketSetIpReceiveTtlResult,
16473        fidl::encoding::DefaultFuchsiaResourceDialect,
16474    > {
16475        BaseNetworkSocketProxyInterface::r#set_ip_receive_ttl(self, value)
16476    }
16477
16478    /// Get `SOL_IP` -> `IP_RECVTTL`.
16479    pub fn r#get_ip_receive_ttl(
16480        &self,
16481    ) -> fidl::client::QueryResponseFut<
16482        BaseNetworkSocketGetIpReceiveTtlResult,
16483        fidl::encoding::DefaultFuchsiaResourceDialect,
16484    > {
16485        BaseNetworkSocketProxyInterface::r#get_ip_receive_ttl(self)
16486    }
16487
16488    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
16489    pub fn r#set_ip_multicast_interface(
16490        &self,
16491        mut iface: u64,
16492        mut address: &fidl_fuchsia_net::Ipv4Address,
16493    ) -> fidl::client::QueryResponseFut<
16494        BaseNetworkSocketSetIpMulticastInterfaceResult,
16495        fidl::encoding::DefaultFuchsiaResourceDialect,
16496    > {
16497        BaseNetworkSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
16498    }
16499
16500    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
16501    pub fn r#get_ip_multicast_interface(
16502        &self,
16503    ) -> fidl::client::QueryResponseFut<
16504        BaseNetworkSocketGetIpMulticastInterfaceResult,
16505        fidl::encoding::DefaultFuchsiaResourceDialect,
16506    > {
16507        BaseNetworkSocketProxyInterface::r#get_ip_multicast_interface(self)
16508    }
16509
16510    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
16511    pub fn r#set_ip_multicast_ttl(
16512        &self,
16513        mut value: &OptionalUint8,
16514    ) -> fidl::client::QueryResponseFut<
16515        BaseNetworkSocketSetIpMulticastTtlResult,
16516        fidl::encoding::DefaultFuchsiaResourceDialect,
16517    > {
16518        BaseNetworkSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
16519    }
16520
16521    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
16522    pub fn r#get_ip_multicast_ttl(
16523        &self,
16524    ) -> fidl::client::QueryResponseFut<
16525        BaseNetworkSocketGetIpMulticastTtlResult,
16526        fidl::encoding::DefaultFuchsiaResourceDialect,
16527    > {
16528        BaseNetworkSocketProxyInterface::r#get_ip_multicast_ttl(self)
16529    }
16530
16531    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
16532    pub fn r#set_ip_multicast_loopback(
16533        &self,
16534        mut value: bool,
16535    ) -> fidl::client::QueryResponseFut<
16536        BaseNetworkSocketSetIpMulticastLoopbackResult,
16537        fidl::encoding::DefaultFuchsiaResourceDialect,
16538    > {
16539        BaseNetworkSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
16540    }
16541
16542    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
16543    pub fn r#get_ip_multicast_loopback(
16544        &self,
16545    ) -> fidl::client::QueryResponseFut<
16546        BaseNetworkSocketGetIpMulticastLoopbackResult,
16547        fidl::encoding::DefaultFuchsiaResourceDialect,
16548    > {
16549        BaseNetworkSocketProxyInterface::r#get_ip_multicast_loopback(self)
16550    }
16551
16552    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
16553    pub fn r#add_ip_membership(
16554        &self,
16555        mut membership: &IpMulticastMembership,
16556    ) -> fidl::client::QueryResponseFut<
16557        BaseNetworkSocketAddIpMembershipResult,
16558        fidl::encoding::DefaultFuchsiaResourceDialect,
16559    > {
16560        BaseNetworkSocketProxyInterface::r#add_ip_membership(self, membership)
16561    }
16562
16563    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
16564    pub fn r#drop_ip_membership(
16565        &self,
16566        mut membership: &IpMulticastMembership,
16567    ) -> fidl::client::QueryResponseFut<
16568        BaseNetworkSocketDropIpMembershipResult,
16569        fidl::encoding::DefaultFuchsiaResourceDialect,
16570    > {
16571        BaseNetworkSocketProxyInterface::r#drop_ip_membership(self, membership)
16572    }
16573
16574    /// Set `SOL_IP` -> `IP_TRANSPARENT`
16575    pub fn r#set_ip_transparent(
16576        &self,
16577        mut value: bool,
16578    ) -> fidl::client::QueryResponseFut<
16579        BaseNetworkSocketSetIpTransparentResult,
16580        fidl::encoding::DefaultFuchsiaResourceDialect,
16581    > {
16582        BaseNetworkSocketProxyInterface::r#set_ip_transparent(self, value)
16583    }
16584
16585    /// Get `SOL_IP` -> `IP_TRANSPARENT`
16586    pub fn r#get_ip_transparent(
16587        &self,
16588    ) -> fidl::client::QueryResponseFut<
16589        BaseNetworkSocketGetIpTransparentResult,
16590        fidl::encoding::DefaultFuchsiaResourceDialect,
16591    > {
16592        BaseNetworkSocketProxyInterface::r#get_ip_transparent(self)
16593    }
16594
16595    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
16596    pub fn r#set_ip_receive_original_destination_address(
16597        &self,
16598        mut value: bool,
16599    ) -> fidl::client::QueryResponseFut<
16600        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
16601        fidl::encoding::DefaultFuchsiaResourceDialect,
16602    > {
16603        BaseNetworkSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
16604    }
16605
16606    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
16607    pub fn r#get_ip_receive_original_destination_address(
16608        &self,
16609    ) -> fidl::client::QueryResponseFut<
16610        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
16611        fidl::encoding::DefaultFuchsiaResourceDialect,
16612    > {
16613        BaseNetworkSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
16614    }
16615
16616    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
16617    pub fn r#add_ipv6_membership(
16618        &self,
16619        mut membership: &Ipv6MulticastMembership,
16620    ) -> fidl::client::QueryResponseFut<
16621        BaseNetworkSocketAddIpv6MembershipResult,
16622        fidl::encoding::DefaultFuchsiaResourceDialect,
16623    > {
16624        BaseNetworkSocketProxyInterface::r#add_ipv6_membership(self, membership)
16625    }
16626
16627    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
16628    pub fn r#drop_ipv6_membership(
16629        &self,
16630        mut membership: &Ipv6MulticastMembership,
16631    ) -> fidl::client::QueryResponseFut<
16632        BaseNetworkSocketDropIpv6MembershipResult,
16633        fidl::encoding::DefaultFuchsiaResourceDialect,
16634    > {
16635        BaseNetworkSocketProxyInterface::r#drop_ipv6_membership(self, membership)
16636    }
16637
16638    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
16639    pub fn r#set_ipv6_multicast_interface(
16640        &self,
16641        mut value: u64,
16642    ) -> fidl::client::QueryResponseFut<
16643        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
16644        fidl::encoding::DefaultFuchsiaResourceDialect,
16645    > {
16646        BaseNetworkSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
16647    }
16648
16649    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
16650    pub fn r#get_ipv6_multicast_interface(
16651        &self,
16652    ) -> fidl::client::QueryResponseFut<
16653        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
16654        fidl::encoding::DefaultFuchsiaResourceDialect,
16655    > {
16656        BaseNetworkSocketProxyInterface::r#get_ipv6_multicast_interface(self)
16657    }
16658
16659    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
16660    pub fn r#set_ipv6_unicast_hops(
16661        &self,
16662        mut value: &OptionalUint8,
16663    ) -> fidl::client::QueryResponseFut<
16664        BaseNetworkSocketSetIpv6UnicastHopsResult,
16665        fidl::encoding::DefaultFuchsiaResourceDialect,
16666    > {
16667        BaseNetworkSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
16668    }
16669
16670    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
16671    pub fn r#get_ipv6_unicast_hops(
16672        &self,
16673    ) -> fidl::client::QueryResponseFut<
16674        BaseNetworkSocketGetIpv6UnicastHopsResult,
16675        fidl::encoding::DefaultFuchsiaResourceDialect,
16676    > {
16677        BaseNetworkSocketProxyInterface::r#get_ipv6_unicast_hops(self)
16678    }
16679
16680    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
16681    pub fn r#set_ipv6_receive_hop_limit(
16682        &self,
16683        mut value: bool,
16684    ) -> fidl::client::QueryResponseFut<
16685        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
16686        fidl::encoding::DefaultFuchsiaResourceDialect,
16687    > {
16688        BaseNetworkSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
16689    }
16690
16691    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
16692    pub fn r#get_ipv6_receive_hop_limit(
16693        &self,
16694    ) -> fidl::client::QueryResponseFut<
16695        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
16696        fidl::encoding::DefaultFuchsiaResourceDialect,
16697    > {
16698        BaseNetworkSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
16699    }
16700
16701    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
16702    pub fn r#set_ipv6_multicast_hops(
16703        &self,
16704        mut value: &OptionalUint8,
16705    ) -> fidl::client::QueryResponseFut<
16706        BaseNetworkSocketSetIpv6MulticastHopsResult,
16707        fidl::encoding::DefaultFuchsiaResourceDialect,
16708    > {
16709        BaseNetworkSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
16710    }
16711
16712    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
16713    pub fn r#get_ipv6_multicast_hops(
16714        &self,
16715    ) -> fidl::client::QueryResponseFut<
16716        BaseNetworkSocketGetIpv6MulticastHopsResult,
16717        fidl::encoding::DefaultFuchsiaResourceDialect,
16718    > {
16719        BaseNetworkSocketProxyInterface::r#get_ipv6_multicast_hops(self)
16720    }
16721
16722    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
16723    pub fn r#set_ipv6_multicast_loopback(
16724        &self,
16725        mut value: bool,
16726    ) -> fidl::client::QueryResponseFut<
16727        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
16728        fidl::encoding::DefaultFuchsiaResourceDialect,
16729    > {
16730        BaseNetworkSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
16731    }
16732
16733    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
16734    pub fn r#get_ipv6_multicast_loopback(
16735        &self,
16736    ) -> fidl::client::QueryResponseFut<
16737        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
16738        fidl::encoding::DefaultFuchsiaResourceDialect,
16739    > {
16740        BaseNetworkSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
16741    }
16742
16743    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
16744    pub fn r#set_ipv6_only(
16745        &self,
16746        mut value: bool,
16747    ) -> fidl::client::QueryResponseFut<
16748        BaseNetworkSocketSetIpv6OnlyResult,
16749        fidl::encoding::DefaultFuchsiaResourceDialect,
16750    > {
16751        BaseNetworkSocketProxyInterface::r#set_ipv6_only(self, value)
16752    }
16753
16754    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
16755    pub fn r#get_ipv6_only(
16756        &self,
16757    ) -> fidl::client::QueryResponseFut<
16758        BaseNetworkSocketGetIpv6OnlyResult,
16759        fidl::encoding::DefaultFuchsiaResourceDialect,
16760    > {
16761        BaseNetworkSocketProxyInterface::r#get_ipv6_only(self)
16762    }
16763
16764    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
16765    pub fn r#set_ipv6_receive_traffic_class(
16766        &self,
16767        mut value: bool,
16768    ) -> fidl::client::QueryResponseFut<
16769        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
16770        fidl::encoding::DefaultFuchsiaResourceDialect,
16771    > {
16772        BaseNetworkSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
16773    }
16774
16775    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
16776    pub fn r#get_ipv6_receive_traffic_class(
16777        &self,
16778    ) -> fidl::client::QueryResponseFut<
16779        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
16780        fidl::encoding::DefaultFuchsiaResourceDialect,
16781    > {
16782        BaseNetworkSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
16783    }
16784
16785    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
16786    pub fn r#set_ipv6_traffic_class(
16787        &self,
16788        mut value: &OptionalUint8,
16789    ) -> fidl::client::QueryResponseFut<
16790        BaseNetworkSocketSetIpv6TrafficClassResult,
16791        fidl::encoding::DefaultFuchsiaResourceDialect,
16792    > {
16793        BaseNetworkSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
16794    }
16795
16796    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
16797    pub fn r#get_ipv6_traffic_class(
16798        &self,
16799    ) -> fidl::client::QueryResponseFut<
16800        BaseNetworkSocketGetIpv6TrafficClassResult,
16801        fidl::encoding::DefaultFuchsiaResourceDialect,
16802    > {
16803        BaseNetworkSocketProxyInterface::r#get_ipv6_traffic_class(self)
16804    }
16805
16806    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
16807    pub fn r#set_ipv6_receive_packet_info(
16808        &self,
16809        mut value: bool,
16810    ) -> fidl::client::QueryResponseFut<
16811        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
16812        fidl::encoding::DefaultFuchsiaResourceDialect,
16813    > {
16814        BaseNetworkSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
16815    }
16816
16817    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
16818    pub fn r#get_ipv6_receive_packet_info(
16819        &self,
16820    ) -> fidl::client::QueryResponseFut<
16821        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
16822        fidl::encoding::DefaultFuchsiaResourceDialect,
16823    > {
16824        BaseNetworkSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
16825    }
16826
16827    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
16828    pub fn r#get_original_destination(
16829        &self,
16830    ) -> fidl::client::QueryResponseFut<
16831        BaseNetworkSocketGetOriginalDestinationResult,
16832        fidl::encoding::DefaultFuchsiaResourceDialect,
16833    > {
16834        BaseNetworkSocketProxyInterface::r#get_original_destination(self)
16835    }
16836}
16837
16838impl BaseNetworkSocketProxyInterface for BaseNetworkSocketProxy {
16839    fn r#clone(
16840        &self,
16841        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
16842    ) -> Result<(), fidl::Error> {
16843        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
16844            (request,),
16845            0x20d8a7aba2168a79,
16846            fidl::encoding::DynamicFlags::empty(),
16847        )
16848    }
16849
16850    type CloseResponseFut = fidl::client::QueryResponseFut<
16851        fidl_fuchsia_unknown::CloseableCloseResult,
16852        fidl::encoding::DefaultFuchsiaResourceDialect,
16853    >;
16854    fn r#close(&self) -> Self::CloseResponseFut {
16855        fn _decode(
16856            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16857        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
16858            let _response = fidl::client::decode_transaction_body::<
16859                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
16860                fidl::encoding::DefaultFuchsiaResourceDialect,
16861                0x5ac5d459ad7f657e,
16862            >(_buf?)?;
16863            Ok(_response.map(|x| x))
16864        }
16865        self.client.send_query_and_decode::<
16866            fidl::encoding::EmptyPayload,
16867            fidl_fuchsia_unknown::CloseableCloseResult,
16868        >(
16869            (),
16870            0x5ac5d459ad7f657e,
16871            fidl::encoding::DynamicFlags::empty(),
16872            _decode,
16873        )
16874    }
16875
16876    type QueryResponseFut =
16877        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
16878    fn r#query(&self) -> Self::QueryResponseFut {
16879        fn _decode(
16880            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16881        ) -> Result<Vec<u8>, fidl::Error> {
16882            let _response = fidl::client::decode_transaction_body::<
16883                fidl_fuchsia_unknown::QueryableQueryResponse,
16884                fidl::encoding::DefaultFuchsiaResourceDialect,
16885                0x2658edee9decfc06,
16886            >(_buf?)?;
16887            Ok(_response.protocol)
16888        }
16889        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
16890            (),
16891            0x2658edee9decfc06,
16892            fidl::encoding::DynamicFlags::empty(),
16893            _decode,
16894        )
16895    }
16896
16897    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
16898        BaseSocketSetReuseAddressResult,
16899        fidl::encoding::DefaultFuchsiaResourceDialect,
16900    >;
16901    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
16902        fn _decode(
16903            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16904        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
16905            let _response = fidl::client::decode_transaction_body::<
16906                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16907                fidl::encoding::DefaultFuchsiaResourceDialect,
16908                0x1fd74ee8b9a4a876,
16909            >(_buf?)?;
16910            Ok(_response.map(|x| x))
16911        }
16912        self.client.send_query_and_decode::<
16913            BaseSocketSetReuseAddressRequest,
16914            BaseSocketSetReuseAddressResult,
16915        >(
16916            (value,),
16917            0x1fd74ee8b9a4a876,
16918            fidl::encoding::DynamicFlags::empty(),
16919            _decode,
16920        )
16921    }
16922
16923    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
16924        BaseSocketGetReuseAddressResult,
16925        fidl::encoding::DefaultFuchsiaResourceDialect,
16926    >;
16927    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
16928        fn _decode(
16929            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16930        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
16931            let _response = fidl::client::decode_transaction_body::<
16932                fidl::encoding::ResultType<
16933                    BaseSocketGetReuseAddressResponse,
16934                    fidl_fuchsia_posix::Errno,
16935                >,
16936                fidl::encoding::DefaultFuchsiaResourceDialect,
16937                0x67b7206b8d1bc0a5,
16938            >(_buf?)?;
16939            Ok(_response.map(|x| x.value))
16940        }
16941        self.client
16942            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
16943                (),
16944                0x67b7206b8d1bc0a5,
16945                fidl::encoding::DynamicFlags::empty(),
16946                _decode,
16947            )
16948    }
16949
16950    type GetErrorResponseFut = fidl::client::QueryResponseFut<
16951        BaseSocketGetErrorResult,
16952        fidl::encoding::DefaultFuchsiaResourceDialect,
16953    >;
16954    fn r#get_error(&self) -> Self::GetErrorResponseFut {
16955        fn _decode(
16956            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16957        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
16958            let _response = fidl::client::decode_transaction_body::<
16959                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16960                fidl::encoding::DefaultFuchsiaResourceDialect,
16961                0x5aad39b33e5f6ebb,
16962            >(_buf?)?;
16963            Ok(_response.map(|x| x))
16964        }
16965        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
16966            (),
16967            0x5aad39b33e5f6ebb,
16968            fidl::encoding::DynamicFlags::empty(),
16969            _decode,
16970        )
16971    }
16972
16973    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
16974        BaseSocketSetBroadcastResult,
16975        fidl::encoding::DefaultFuchsiaResourceDialect,
16976    >;
16977    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
16978        fn _decode(
16979            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
16980        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
16981            let _response = fidl::client::decode_transaction_body::<
16982                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
16983                fidl::encoding::DefaultFuchsiaResourceDialect,
16984                0x6023e081ce3cd947,
16985            >(_buf?)?;
16986            Ok(_response.map(|x| x))
16987        }
16988        self.client
16989            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
16990                (value,),
16991                0x6023e081ce3cd947,
16992                fidl::encoding::DynamicFlags::empty(),
16993                _decode,
16994            )
16995    }
16996
16997    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
16998        BaseSocketGetBroadcastResult,
16999        fidl::encoding::DefaultFuchsiaResourceDialect,
17000    >;
17001    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
17002        fn _decode(
17003            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17004        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
17005            let _response = fidl::client::decode_transaction_body::<
17006                fidl::encoding::ResultType<
17007                    BaseSocketGetBroadcastResponse,
17008                    fidl_fuchsia_posix::Errno,
17009                >,
17010                fidl::encoding::DefaultFuchsiaResourceDialect,
17011                0x68796fc556f9780d,
17012            >(_buf?)?;
17013            Ok(_response.map(|x| x.value))
17014        }
17015        self.client
17016            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
17017                (),
17018                0x68796fc556f9780d,
17019                fidl::encoding::DynamicFlags::empty(),
17020                _decode,
17021            )
17022    }
17023
17024    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
17025        BaseSocketSetSendBufferResult,
17026        fidl::encoding::DefaultFuchsiaResourceDialect,
17027    >;
17028    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
17029        fn _decode(
17030            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17031        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
17032            let _response = fidl::client::decode_transaction_body::<
17033                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17034                fidl::encoding::DefaultFuchsiaResourceDialect,
17035                0x756eac32d73a7a70,
17036            >(_buf?)?;
17037            Ok(_response.map(|x| x))
17038        }
17039        self.client
17040            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
17041                (value_bytes,),
17042                0x756eac32d73a7a70,
17043                fidl::encoding::DynamicFlags::empty(),
17044                _decode,
17045            )
17046    }
17047
17048    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
17049        BaseSocketGetSendBufferResult,
17050        fidl::encoding::DefaultFuchsiaResourceDialect,
17051    >;
17052    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
17053        fn _decode(
17054            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17055        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
17056            let _response = fidl::client::decode_transaction_body::<
17057                fidl::encoding::ResultType<
17058                    BaseSocketGetSendBufferResponse,
17059                    fidl_fuchsia_posix::Errno,
17060                >,
17061                fidl::encoding::DefaultFuchsiaResourceDialect,
17062                0x78a52fd9c7b2410b,
17063            >(_buf?)?;
17064            Ok(_response.map(|x| x.value_bytes))
17065        }
17066        self.client
17067            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
17068                (),
17069                0x78a52fd9c7b2410b,
17070                fidl::encoding::DynamicFlags::empty(),
17071                _decode,
17072            )
17073    }
17074
17075    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
17076        BaseSocketSetReceiveBufferResult,
17077        fidl::encoding::DefaultFuchsiaResourceDialect,
17078    >;
17079    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
17080        fn _decode(
17081            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17082        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
17083            let _response = fidl::client::decode_transaction_body::<
17084                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17085                fidl::encoding::DefaultFuchsiaResourceDialect,
17086                0x6b0cf2f1919c7001,
17087            >(_buf?)?;
17088            Ok(_response.map(|x| x))
17089        }
17090        self.client.send_query_and_decode::<
17091            BaseSocketSetReceiveBufferRequest,
17092            BaseSocketSetReceiveBufferResult,
17093        >(
17094            (value_bytes,),
17095            0x6b0cf2f1919c7001,
17096            fidl::encoding::DynamicFlags::empty(),
17097            _decode,
17098        )
17099    }
17100
17101    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
17102        BaseSocketGetReceiveBufferResult,
17103        fidl::encoding::DefaultFuchsiaResourceDialect,
17104    >;
17105    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
17106        fn _decode(
17107            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17108        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
17109            let _response = fidl::client::decode_transaction_body::<
17110                fidl::encoding::ResultType<
17111                    BaseSocketGetReceiveBufferResponse,
17112                    fidl_fuchsia_posix::Errno,
17113                >,
17114                fidl::encoding::DefaultFuchsiaResourceDialect,
17115                0x14c1a4b64f709e5c,
17116            >(_buf?)?;
17117            Ok(_response.map(|x| x.value_bytes))
17118        }
17119        self.client.send_query_and_decode::<
17120            fidl::encoding::EmptyPayload,
17121            BaseSocketGetReceiveBufferResult,
17122        >(
17123            (),
17124            0x14c1a4b64f709e5c,
17125            fidl::encoding::DynamicFlags::empty(),
17126            _decode,
17127        )
17128    }
17129
17130    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
17131        BaseSocketSetKeepAliveResult,
17132        fidl::encoding::DefaultFuchsiaResourceDialect,
17133    >;
17134    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
17135        fn _decode(
17136            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17137        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
17138            let _response = fidl::client::decode_transaction_body::<
17139                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17140                fidl::encoding::DefaultFuchsiaResourceDialect,
17141                0x572df8f0b920d2c7,
17142            >(_buf?)?;
17143            Ok(_response.map(|x| x))
17144        }
17145        self.client
17146            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
17147                (value,),
17148                0x572df8f0b920d2c7,
17149                fidl::encoding::DynamicFlags::empty(),
17150                _decode,
17151            )
17152    }
17153
17154    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
17155        BaseSocketGetKeepAliveResult,
17156        fidl::encoding::DefaultFuchsiaResourceDialect,
17157    >;
17158    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
17159        fn _decode(
17160            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17161        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
17162            let _response = fidl::client::decode_transaction_body::<
17163                fidl::encoding::ResultType<
17164                    BaseSocketGetKeepAliveResponse,
17165                    fidl_fuchsia_posix::Errno,
17166                >,
17167                fidl::encoding::DefaultFuchsiaResourceDialect,
17168                0x2dd29d3215f2c9d2,
17169            >(_buf?)?;
17170            Ok(_response.map(|x| x.value))
17171        }
17172        self.client
17173            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
17174                (),
17175                0x2dd29d3215f2c9d2,
17176                fidl::encoding::DynamicFlags::empty(),
17177                _decode,
17178            )
17179    }
17180
17181    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
17182        BaseSocketSetOutOfBandInlineResult,
17183        fidl::encoding::DefaultFuchsiaResourceDialect,
17184    >;
17185    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
17186        fn _decode(
17187            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17188        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
17189            let _response = fidl::client::decode_transaction_body::<
17190                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17191                fidl::encoding::DefaultFuchsiaResourceDialect,
17192                0x3ecb49968bee439,
17193            >(_buf?)?;
17194            Ok(_response.map(|x| x))
17195        }
17196        self.client.send_query_and_decode::<
17197            BaseSocketSetOutOfBandInlineRequest,
17198            BaseSocketSetOutOfBandInlineResult,
17199        >(
17200            (value,),
17201            0x3ecb49968bee439,
17202            fidl::encoding::DynamicFlags::empty(),
17203            _decode,
17204        )
17205    }
17206
17207    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
17208        BaseSocketGetOutOfBandInlineResult,
17209        fidl::encoding::DefaultFuchsiaResourceDialect,
17210    >;
17211    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
17212        fn _decode(
17213            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17214        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
17215            let _response = fidl::client::decode_transaction_body::<
17216                fidl::encoding::ResultType<
17217                    BaseSocketGetOutOfBandInlineResponse,
17218                    fidl_fuchsia_posix::Errno,
17219                >,
17220                fidl::encoding::DefaultFuchsiaResourceDialect,
17221                0x348c1ab3aeca1745,
17222            >(_buf?)?;
17223            Ok(_response.map(|x| x.value))
17224        }
17225        self.client.send_query_and_decode::<
17226            fidl::encoding::EmptyPayload,
17227            BaseSocketGetOutOfBandInlineResult,
17228        >(
17229            (),
17230            0x348c1ab3aeca1745,
17231            fidl::encoding::DynamicFlags::empty(),
17232            _decode,
17233        )
17234    }
17235
17236    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
17237        BaseSocketSetNoCheckResult,
17238        fidl::encoding::DefaultFuchsiaResourceDialect,
17239    >;
17240    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
17241        fn _decode(
17242            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17243        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
17244            let _response = fidl::client::decode_transaction_body::<
17245                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17246                fidl::encoding::DefaultFuchsiaResourceDialect,
17247                0x6bbf00c53a4c78c2,
17248            >(_buf?)?;
17249            Ok(_response.map(|x| x))
17250        }
17251        self.client
17252            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
17253                (value,),
17254                0x6bbf00c53a4c78c2,
17255                fidl::encoding::DynamicFlags::empty(),
17256                _decode,
17257            )
17258    }
17259
17260    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
17261        BaseSocketGetNoCheckResult,
17262        fidl::encoding::DefaultFuchsiaResourceDialect,
17263    >;
17264    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
17265        fn _decode(
17266            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17267        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
17268            let _response = fidl::client::decode_transaction_body::<
17269                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
17270                fidl::encoding::DefaultFuchsiaResourceDialect,
17271                0x2cd4249286417694,
17272            >(_buf?)?;
17273            Ok(_response.map(|x| x.value))
17274        }
17275        self.client
17276            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
17277                (),
17278                0x2cd4249286417694,
17279                fidl::encoding::DynamicFlags::empty(),
17280                _decode,
17281            )
17282    }
17283
17284    type SetLingerResponseFut = fidl::client::QueryResponseFut<
17285        BaseSocketSetLingerResult,
17286        fidl::encoding::DefaultFuchsiaResourceDialect,
17287    >;
17288    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
17289        fn _decode(
17290            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17291        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
17292            let _response = fidl::client::decode_transaction_body::<
17293                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17294                fidl::encoding::DefaultFuchsiaResourceDialect,
17295                0x45386351246e998e,
17296            >(_buf?)?;
17297            Ok(_response.map(|x| x))
17298        }
17299        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
17300            (linger, length_secs),
17301            0x45386351246e998e,
17302            fidl::encoding::DynamicFlags::empty(),
17303            _decode,
17304        )
17305    }
17306
17307    type GetLingerResponseFut = fidl::client::QueryResponseFut<
17308        BaseSocketGetLingerResult,
17309        fidl::encoding::DefaultFuchsiaResourceDialect,
17310    >;
17311    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
17312        fn _decode(
17313            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17314        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
17315            let _response = fidl::client::decode_transaction_body::<
17316                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
17317                fidl::encoding::DefaultFuchsiaResourceDialect,
17318                0x48eb20fc5ccb0e45,
17319            >(_buf?)?;
17320            Ok(_response.map(|x| (x.linger, x.length_secs)))
17321        }
17322        self.client
17323            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
17324                (),
17325                0x48eb20fc5ccb0e45,
17326                fidl::encoding::DynamicFlags::empty(),
17327                _decode,
17328            )
17329    }
17330
17331    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
17332        BaseSocketSetReusePortResult,
17333        fidl::encoding::DefaultFuchsiaResourceDialect,
17334    >;
17335    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
17336        fn _decode(
17337            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17338        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
17339            let _response = fidl::client::decode_transaction_body::<
17340                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17341                fidl::encoding::DefaultFuchsiaResourceDialect,
17342                0x24dd3e5cb36d9ccb,
17343            >(_buf?)?;
17344            Ok(_response.map(|x| x))
17345        }
17346        self.client
17347            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
17348                (value,),
17349                0x24dd3e5cb36d9ccb,
17350                fidl::encoding::DynamicFlags::empty(),
17351                _decode,
17352            )
17353    }
17354
17355    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
17356        BaseSocketGetReusePortResult,
17357        fidl::encoding::DefaultFuchsiaResourceDialect,
17358    >;
17359    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
17360        fn _decode(
17361            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17362        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
17363            let _response = fidl::client::decode_transaction_body::<
17364                fidl::encoding::ResultType<
17365                    BaseSocketGetReusePortResponse,
17366                    fidl_fuchsia_posix::Errno,
17367                >,
17368                fidl::encoding::DefaultFuchsiaResourceDialect,
17369                0x7a112c1ab54ff828,
17370            >(_buf?)?;
17371            Ok(_response.map(|x| x.value))
17372        }
17373        self.client
17374            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
17375                (),
17376                0x7a112c1ab54ff828,
17377                fidl::encoding::DynamicFlags::empty(),
17378                _decode,
17379            )
17380    }
17381
17382    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
17383        BaseSocketGetAcceptConnResult,
17384        fidl::encoding::DefaultFuchsiaResourceDialect,
17385    >;
17386    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
17387        fn _decode(
17388            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17389        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
17390            let _response = fidl::client::decode_transaction_body::<
17391                fidl::encoding::ResultType<
17392                    BaseSocketGetAcceptConnResponse,
17393                    fidl_fuchsia_posix::Errno,
17394                >,
17395                fidl::encoding::DefaultFuchsiaResourceDialect,
17396                0x67ce6db6c2ec8966,
17397            >(_buf?)?;
17398            Ok(_response.map(|x| x.value))
17399        }
17400        self.client
17401            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
17402                (),
17403                0x67ce6db6c2ec8966,
17404                fidl::encoding::DynamicFlags::empty(),
17405                _decode,
17406            )
17407    }
17408
17409    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
17410        BaseSocketSetBindToDeviceResult,
17411        fidl::encoding::DefaultFuchsiaResourceDialect,
17412    >;
17413    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
17414        fn _decode(
17415            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17416        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
17417            let _response = fidl::client::decode_transaction_body::<
17418                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17419                fidl::encoding::DefaultFuchsiaResourceDialect,
17420                0x2118b483f28aafc4,
17421            >(_buf?)?;
17422            Ok(_response.map(|x| x))
17423        }
17424        self.client.send_query_and_decode::<
17425            BaseSocketSetBindToDeviceRequest,
17426            BaseSocketSetBindToDeviceResult,
17427        >(
17428            (value,),
17429            0x2118b483f28aafc4,
17430            fidl::encoding::DynamicFlags::empty(),
17431            _decode,
17432        )
17433    }
17434
17435    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
17436        BaseSocketGetBindToDeviceResult,
17437        fidl::encoding::DefaultFuchsiaResourceDialect,
17438    >;
17439    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
17440        fn _decode(
17441            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17442        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
17443            let _response = fidl::client::decode_transaction_body::<
17444                fidl::encoding::ResultType<
17445                    BaseSocketGetBindToDeviceResponse,
17446                    fidl_fuchsia_posix::Errno,
17447                >,
17448                fidl::encoding::DefaultFuchsiaResourceDialect,
17449                0x1ab1fbf0ef7906c8,
17450            >(_buf?)?;
17451            Ok(_response.map(|x| x.value))
17452        }
17453        self.client
17454            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
17455                (),
17456                0x1ab1fbf0ef7906c8,
17457                fidl::encoding::DynamicFlags::empty(),
17458                _decode,
17459            )
17460    }
17461
17462    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
17463        BaseSocketSetBindToInterfaceIndexResult,
17464        fidl::encoding::DefaultFuchsiaResourceDialect,
17465    >;
17466    fn r#set_bind_to_interface_index(
17467        &self,
17468        mut value: u64,
17469    ) -> Self::SetBindToInterfaceIndexResponseFut {
17470        fn _decode(
17471            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17472        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
17473            let _response = fidl::client::decode_transaction_body::<
17474                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17475                fidl::encoding::DefaultFuchsiaResourceDialect,
17476                0x6e387a0def00821,
17477            >(_buf?)?;
17478            Ok(_response.map(|x| x))
17479        }
17480        self.client.send_query_and_decode::<
17481            BaseSocketSetBindToInterfaceIndexRequest,
17482            BaseSocketSetBindToInterfaceIndexResult,
17483        >(
17484            (value,),
17485            0x6e387a0def00821,
17486            fidl::encoding::DynamicFlags::empty(),
17487            _decode,
17488        )
17489    }
17490
17491    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
17492        BaseSocketGetBindToInterfaceIndexResult,
17493        fidl::encoding::DefaultFuchsiaResourceDialect,
17494    >;
17495    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
17496        fn _decode(
17497            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17498        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
17499            let _response = fidl::client::decode_transaction_body::<
17500                fidl::encoding::ResultType<
17501                    BaseSocketGetBindToInterfaceIndexResponse,
17502                    fidl_fuchsia_posix::Errno,
17503                >,
17504                fidl::encoding::DefaultFuchsiaResourceDialect,
17505                0x59c31dd3e3078295,
17506            >(_buf?)?;
17507            Ok(_response.map(|x| x.value))
17508        }
17509        self.client.send_query_and_decode::<
17510            fidl::encoding::EmptyPayload,
17511            BaseSocketGetBindToInterfaceIndexResult,
17512        >(
17513            (),
17514            0x59c31dd3e3078295,
17515            fidl::encoding::DynamicFlags::empty(),
17516            _decode,
17517        )
17518    }
17519
17520    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
17521        BaseSocketSetTimestampResult,
17522        fidl::encoding::DefaultFuchsiaResourceDialect,
17523    >;
17524    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
17525        fn _decode(
17526            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17527        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
17528            let _response = fidl::client::decode_transaction_body::<
17529                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17530                fidl::encoding::DefaultFuchsiaResourceDialect,
17531                0x285d6516c263d839,
17532            >(_buf?)?;
17533            Ok(_response.map(|x| x))
17534        }
17535        self.client
17536            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
17537                (value,),
17538                0x285d6516c263d839,
17539                fidl::encoding::DynamicFlags::empty(),
17540                _decode,
17541            )
17542    }
17543
17544    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
17545        BaseSocketGetTimestampResult,
17546        fidl::encoding::DefaultFuchsiaResourceDialect,
17547    >;
17548    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
17549        fn _decode(
17550            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17551        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
17552            let _response = fidl::client::decode_transaction_body::<
17553                fidl::encoding::ResultType<
17554                    BaseSocketGetTimestampResponse,
17555                    fidl_fuchsia_posix::Errno,
17556                >,
17557                fidl::encoding::DefaultFuchsiaResourceDialect,
17558                0x49f2fffbbcc2bd27,
17559            >(_buf?)?;
17560            Ok(_response.map(|x| x.value))
17561        }
17562        self.client
17563            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
17564                (),
17565                0x49f2fffbbcc2bd27,
17566                fidl::encoding::DynamicFlags::empty(),
17567                _decode,
17568            )
17569    }
17570
17571    type SetMarkResponseFut = fidl::client::QueryResponseFut<
17572        BaseSocketSetMarkResult,
17573        fidl::encoding::DefaultFuchsiaResourceDialect,
17574    >;
17575    fn r#set_mark(
17576        &self,
17577        mut domain: fidl_fuchsia_net::MarkDomain,
17578        mut mark: &OptionalUint32,
17579    ) -> Self::SetMarkResponseFut {
17580        fn _decode(
17581            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17582        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
17583            let _response = fidl::client::decode_transaction_body::<
17584                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17585                fidl::encoding::DefaultFuchsiaResourceDialect,
17586                0x6ead6de09f653236,
17587            >(_buf?)?;
17588            Ok(_response.map(|x| x))
17589        }
17590        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
17591            (domain, mark),
17592            0x6ead6de09f653236,
17593            fidl::encoding::DynamicFlags::empty(),
17594            _decode,
17595        )
17596    }
17597
17598    type GetMarkResponseFut = fidl::client::QueryResponseFut<
17599        BaseSocketGetMarkResult,
17600        fidl::encoding::DefaultFuchsiaResourceDialect,
17601    >;
17602    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
17603        fn _decode(
17604            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17605        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
17606            let _response = fidl::client::decode_transaction_body::<
17607                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
17608                fidl::encoding::DefaultFuchsiaResourceDialect,
17609                0x57a2752c61d93d47,
17610            >(_buf?)?;
17611            Ok(_response.map(|x| x.mark))
17612        }
17613        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
17614            (domain,),
17615            0x57a2752c61d93d47,
17616            fidl::encoding::DynamicFlags::empty(),
17617            _decode,
17618        )
17619    }
17620
17621    type GetCookieResponseFut = fidl::client::QueryResponseFut<
17622        BaseSocketGetCookieResult,
17623        fidl::encoding::DefaultFuchsiaResourceDialect,
17624    >;
17625    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
17626        fn _decode(
17627            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17628        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
17629            let _response = fidl::client::decode_transaction_body::<
17630                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
17631                fidl::encoding::DefaultFuchsiaResourceDialect,
17632                0x2c2f47fd8f924e52,
17633            >(_buf?)?;
17634            Ok(_response.map(|x| x.value))
17635        }
17636        self.client
17637            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
17638                (),
17639                0x2c2f47fd8f924e52,
17640                fidl::encoding::DynamicFlags::empty(),
17641                _decode,
17642            )
17643    }
17644
17645    type BindResponseFut = fidl::client::QueryResponseFut<
17646        BaseNetworkSocketBindResult,
17647        fidl::encoding::DefaultFuchsiaResourceDialect,
17648    >;
17649    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
17650        fn _decode(
17651            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17652        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
17653            let _response = fidl::client::decode_transaction_body::<
17654                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17655                fidl::encoding::DefaultFuchsiaResourceDialect,
17656                0x4bc6400ae92125d,
17657            >(_buf?)?;
17658            Ok(_response.map(|x| x))
17659        }
17660        self.client
17661            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
17662                (addr,),
17663                0x4bc6400ae92125d,
17664                fidl::encoding::DynamicFlags::empty(),
17665                _decode,
17666            )
17667    }
17668
17669    type ConnectResponseFut = fidl::client::QueryResponseFut<
17670        BaseNetworkSocketConnectResult,
17671        fidl::encoding::DefaultFuchsiaResourceDialect,
17672    >;
17673    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
17674        fn _decode(
17675            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17676        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
17677            let _response = fidl::client::decode_transaction_body::<
17678                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17679                fidl::encoding::DefaultFuchsiaResourceDialect,
17680                0x5f05f19bfdd38871,
17681            >(_buf?)?;
17682            Ok(_response.map(|x| x))
17683        }
17684        self.client.send_query_and_decode::<
17685            BaseNetworkSocketConnectRequest,
17686            BaseNetworkSocketConnectResult,
17687        >(
17688            (addr,),
17689            0x5f05f19bfdd38871,
17690            fidl::encoding::DynamicFlags::empty(),
17691            _decode,
17692        )
17693    }
17694
17695    type DisconnectResponseFut = fidl::client::QueryResponseFut<
17696        BaseNetworkSocketDisconnectResult,
17697        fidl::encoding::DefaultFuchsiaResourceDialect,
17698    >;
17699    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
17700        fn _decode(
17701            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17702        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
17703            let _response = fidl::client::decode_transaction_body::<
17704                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17705                fidl::encoding::DefaultFuchsiaResourceDialect,
17706                0x74e63b91f7b29b2,
17707            >(_buf?)?;
17708            Ok(_response.map(|x| x))
17709        }
17710        self.client.send_query_and_decode::<
17711            fidl::encoding::EmptyPayload,
17712            BaseNetworkSocketDisconnectResult,
17713        >(
17714            (),
17715            0x74e63b91f7b29b2,
17716            fidl::encoding::DynamicFlags::empty(),
17717            _decode,
17718        )
17719    }
17720
17721    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
17722        BaseNetworkSocketGetSockNameResult,
17723        fidl::encoding::DefaultFuchsiaResourceDialect,
17724    >;
17725    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
17726        fn _decode(
17727            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17728        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
17729            let _response = fidl::client::decode_transaction_body::<
17730                fidl::encoding::ResultType<
17731                    BaseNetworkSocketGetSockNameResponse,
17732                    fidl_fuchsia_posix::Errno,
17733                >,
17734                fidl::encoding::DefaultFuchsiaResourceDialect,
17735                0x475f23f84a1a4f85,
17736            >(_buf?)?;
17737            Ok(_response.map(|x| x.addr))
17738        }
17739        self.client.send_query_and_decode::<
17740            fidl::encoding::EmptyPayload,
17741            BaseNetworkSocketGetSockNameResult,
17742        >(
17743            (),
17744            0x475f23f84a1a4f85,
17745            fidl::encoding::DynamicFlags::empty(),
17746            _decode,
17747        )
17748    }
17749
17750    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
17751        BaseNetworkSocketGetPeerNameResult,
17752        fidl::encoding::DefaultFuchsiaResourceDialect,
17753    >;
17754    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
17755        fn _decode(
17756            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17757        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
17758            let _response = fidl::client::decode_transaction_body::<
17759                fidl::encoding::ResultType<
17760                    BaseNetworkSocketGetPeerNameResponse,
17761                    fidl_fuchsia_posix::Errno,
17762                >,
17763                fidl::encoding::DefaultFuchsiaResourceDialect,
17764                0x1ffecf4bd5b6432e,
17765            >(_buf?)?;
17766            Ok(_response.map(|x| x.addr))
17767        }
17768        self.client.send_query_and_decode::<
17769            fidl::encoding::EmptyPayload,
17770            BaseNetworkSocketGetPeerNameResult,
17771        >(
17772            (),
17773            0x1ffecf4bd5b6432e,
17774            fidl::encoding::DynamicFlags::empty(),
17775            _decode,
17776        )
17777    }
17778
17779    type ShutdownResponseFut = fidl::client::QueryResponseFut<
17780        BaseNetworkSocketShutdownResult,
17781        fidl::encoding::DefaultFuchsiaResourceDialect,
17782    >;
17783    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
17784        fn _decode(
17785            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17786        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
17787            let _response = fidl::client::decode_transaction_body::<
17788                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17789                fidl::encoding::DefaultFuchsiaResourceDialect,
17790                0x247f38b6db68c336,
17791            >(_buf?)?;
17792            Ok(_response.map(|x| x))
17793        }
17794        self.client.send_query_and_decode::<
17795            BaseNetworkSocketShutdownRequest,
17796            BaseNetworkSocketShutdownResult,
17797        >(
17798            (mode,),
17799            0x247f38b6db68c336,
17800            fidl::encoding::DynamicFlags::empty(),
17801            _decode,
17802        )
17803    }
17804
17805    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
17806        BaseNetworkSocketSetIpTypeOfServiceResult,
17807        fidl::encoding::DefaultFuchsiaResourceDialect,
17808    >;
17809    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
17810        fn _decode(
17811            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17812        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
17813            let _response = fidl::client::decode_transaction_body::<
17814                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17815                fidl::encoding::DefaultFuchsiaResourceDialect,
17816                0x995c600475b6d46,
17817            >(_buf?)?;
17818            Ok(_response.map(|x| x))
17819        }
17820        self.client.send_query_and_decode::<
17821            BaseNetworkSocketSetIpTypeOfServiceRequest,
17822            BaseNetworkSocketSetIpTypeOfServiceResult,
17823        >(
17824            (value,),
17825            0x995c600475b6d46,
17826            fidl::encoding::DynamicFlags::empty(),
17827            _decode,
17828        )
17829    }
17830
17831    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
17832        BaseNetworkSocketGetIpTypeOfServiceResult,
17833        fidl::encoding::DefaultFuchsiaResourceDialect,
17834    >;
17835    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
17836        fn _decode(
17837            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17838        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
17839            let _response = fidl::client::decode_transaction_body::<
17840                fidl::encoding::ResultType<
17841                    BaseNetworkSocketGetIpTypeOfServiceResponse,
17842                    fidl_fuchsia_posix::Errno,
17843                >,
17844                fidl::encoding::DefaultFuchsiaResourceDialect,
17845                0x3814a04259f75fcb,
17846            >(_buf?)?;
17847            Ok(_response.map(|x| x.value))
17848        }
17849        self.client.send_query_and_decode::<
17850            fidl::encoding::EmptyPayload,
17851            BaseNetworkSocketGetIpTypeOfServiceResult,
17852        >(
17853            (),
17854            0x3814a04259f75fcb,
17855            fidl::encoding::DynamicFlags::empty(),
17856            _decode,
17857        )
17858    }
17859
17860    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
17861        BaseNetworkSocketSetIpTtlResult,
17862        fidl::encoding::DefaultFuchsiaResourceDialect,
17863    >;
17864    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
17865        fn _decode(
17866            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17867        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
17868            let _response = fidl::client::decode_transaction_body::<
17869                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17870                fidl::encoding::DefaultFuchsiaResourceDialect,
17871                0x29e2424b433ae1ef,
17872            >(_buf?)?;
17873            Ok(_response.map(|x| x))
17874        }
17875        self.client.send_query_and_decode::<
17876            BaseNetworkSocketSetIpTtlRequest,
17877            BaseNetworkSocketSetIpTtlResult,
17878        >(
17879            (value,),
17880            0x29e2424b433ae1ef,
17881            fidl::encoding::DynamicFlags::empty(),
17882            _decode,
17883        )
17884    }
17885
17886    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
17887        BaseNetworkSocketGetIpTtlResult,
17888        fidl::encoding::DefaultFuchsiaResourceDialect,
17889    >;
17890    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
17891        fn _decode(
17892            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17893        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
17894            let _response = fidl::client::decode_transaction_body::<
17895                fidl::encoding::ResultType<
17896                    BaseNetworkSocketGetIpTtlResponse,
17897                    fidl_fuchsia_posix::Errno,
17898                >,
17899                fidl::encoding::DefaultFuchsiaResourceDialect,
17900                0x47e47fa1f24da471,
17901            >(_buf?)?;
17902            Ok(_response.map(|x| x.value))
17903        }
17904        self.client
17905            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
17906                (),
17907                0x47e47fa1f24da471,
17908                fidl::encoding::DynamicFlags::empty(),
17909                _decode,
17910            )
17911    }
17912
17913    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
17914        BaseNetworkSocketSetIpPacketInfoResult,
17915        fidl::encoding::DefaultFuchsiaResourceDialect,
17916    >;
17917    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
17918        fn _decode(
17919            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17920        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
17921            let _response = fidl::client::decode_transaction_body::<
17922                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17923                fidl::encoding::DefaultFuchsiaResourceDialect,
17924                0x392d16bee20c0e16,
17925            >(_buf?)?;
17926            Ok(_response.map(|x| x))
17927        }
17928        self.client.send_query_and_decode::<
17929            BaseNetworkSocketSetIpPacketInfoRequest,
17930            BaseNetworkSocketSetIpPacketInfoResult,
17931        >(
17932            (value,),
17933            0x392d16bee20c0e16,
17934            fidl::encoding::DynamicFlags::empty(),
17935            _decode,
17936        )
17937    }
17938
17939    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
17940        BaseNetworkSocketGetIpPacketInfoResult,
17941        fidl::encoding::DefaultFuchsiaResourceDialect,
17942    >;
17943    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
17944        fn _decode(
17945            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17946        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
17947            let _response = fidl::client::decode_transaction_body::<
17948                fidl::encoding::ResultType<
17949                    BaseNetworkSocketGetIpPacketInfoResponse,
17950                    fidl_fuchsia_posix::Errno,
17951                >,
17952                fidl::encoding::DefaultFuchsiaResourceDialect,
17953                0x54b505f242280740,
17954            >(_buf?)?;
17955            Ok(_response.map(|x| x.value))
17956        }
17957        self.client.send_query_and_decode::<
17958            fidl::encoding::EmptyPayload,
17959            BaseNetworkSocketGetIpPacketInfoResult,
17960        >(
17961            (),
17962            0x54b505f242280740,
17963            fidl::encoding::DynamicFlags::empty(),
17964            _decode,
17965        )
17966    }
17967
17968    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
17969        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
17970        fidl::encoding::DefaultFuchsiaResourceDialect,
17971    >;
17972    fn r#set_ip_receive_type_of_service(
17973        &self,
17974        mut value: bool,
17975    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
17976        fn _decode(
17977            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
17978        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
17979            let _response = fidl::client::decode_transaction_body::<
17980                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
17981                fidl::encoding::DefaultFuchsiaResourceDialect,
17982                0x6c4f6714995f84ef,
17983            >(_buf?)?;
17984            Ok(_response.map(|x| x))
17985        }
17986        self.client.send_query_and_decode::<
17987            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
17988            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
17989        >(
17990            (value,),
17991            0x6c4f6714995f84ef,
17992            fidl::encoding::DynamicFlags::empty(),
17993            _decode,
17994        )
17995    }
17996
17997    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
17998        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
17999        fidl::encoding::DefaultFuchsiaResourceDialect,
18000    >;
18001    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
18002        fn _decode(
18003            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18004        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
18005            let _response = fidl::client::decode_transaction_body::<
18006                fidl::encoding::ResultType<
18007                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
18008                    fidl_fuchsia_posix::Errno,
18009                >,
18010                fidl::encoding::DefaultFuchsiaResourceDialect,
18011                0x4158ba7dc2795960,
18012            >(_buf?)?;
18013            Ok(_response.map(|x| x.value))
18014        }
18015        self.client.send_query_and_decode::<
18016            fidl::encoding::EmptyPayload,
18017            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
18018        >(
18019            (),
18020            0x4158ba7dc2795960,
18021            fidl::encoding::DynamicFlags::empty(),
18022            _decode,
18023        )
18024    }
18025
18026    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
18027        BaseNetworkSocketSetIpReceiveTtlResult,
18028        fidl::encoding::DefaultFuchsiaResourceDialect,
18029    >;
18030    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
18031        fn _decode(
18032            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18033        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
18034            let _response = fidl::client::decode_transaction_body::<
18035                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18036                fidl::encoding::DefaultFuchsiaResourceDialect,
18037                0x46f15be0ce0ab82b,
18038            >(_buf?)?;
18039            Ok(_response.map(|x| x))
18040        }
18041        self.client.send_query_and_decode::<
18042            BaseNetworkSocketSetIpReceiveTtlRequest,
18043            BaseNetworkSocketSetIpReceiveTtlResult,
18044        >(
18045            (value,),
18046            0x46f15be0ce0ab82b,
18047            fidl::encoding::DynamicFlags::empty(),
18048            _decode,
18049        )
18050    }
18051
18052    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
18053        BaseNetworkSocketGetIpReceiveTtlResult,
18054        fidl::encoding::DefaultFuchsiaResourceDialect,
18055    >;
18056    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
18057        fn _decode(
18058            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18059        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
18060            let _response = fidl::client::decode_transaction_body::<
18061                fidl::encoding::ResultType<
18062                    BaseNetworkSocketGetIpReceiveTtlResponse,
18063                    fidl_fuchsia_posix::Errno,
18064                >,
18065                fidl::encoding::DefaultFuchsiaResourceDialect,
18066                0x678ddd5a5dfa2eb5,
18067            >(_buf?)?;
18068            Ok(_response.map(|x| x.value))
18069        }
18070        self.client.send_query_and_decode::<
18071            fidl::encoding::EmptyPayload,
18072            BaseNetworkSocketGetIpReceiveTtlResult,
18073        >(
18074            (),
18075            0x678ddd5a5dfa2eb5,
18076            fidl::encoding::DynamicFlags::empty(),
18077            _decode,
18078        )
18079    }
18080
18081    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18082        BaseNetworkSocketSetIpMulticastInterfaceResult,
18083        fidl::encoding::DefaultFuchsiaResourceDialect,
18084    >;
18085    fn r#set_ip_multicast_interface(
18086        &self,
18087        mut iface: u64,
18088        mut address: &fidl_fuchsia_net::Ipv4Address,
18089    ) -> Self::SetIpMulticastInterfaceResponseFut {
18090        fn _decode(
18091            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18092        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
18093            let _response = fidl::client::decode_transaction_body::<
18094                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18095                fidl::encoding::DefaultFuchsiaResourceDialect,
18096                0x752fbfa9b12befe,
18097            >(_buf?)?;
18098            Ok(_response.map(|x| x))
18099        }
18100        self.client.send_query_and_decode::<
18101            BaseNetworkSocketSetIpMulticastInterfaceRequest,
18102            BaseNetworkSocketSetIpMulticastInterfaceResult,
18103        >(
18104            (iface, address,),
18105            0x752fbfa9b12befe,
18106            fidl::encoding::DynamicFlags::empty(),
18107            _decode,
18108        )
18109    }
18110
18111    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18112        BaseNetworkSocketGetIpMulticastInterfaceResult,
18113        fidl::encoding::DefaultFuchsiaResourceDialect,
18114    >;
18115    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
18116        fn _decode(
18117            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18118        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
18119            let _response = fidl::client::decode_transaction_body::<
18120                fidl::encoding::ResultType<
18121                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
18122                    fidl_fuchsia_posix::Errno,
18123                >,
18124                fidl::encoding::DefaultFuchsiaResourceDialect,
18125                0x320bd14c4df046c4,
18126            >(_buf?)?;
18127            Ok(_response.map(|x| x.value))
18128        }
18129        self.client.send_query_and_decode::<
18130            fidl::encoding::EmptyPayload,
18131            BaseNetworkSocketGetIpMulticastInterfaceResult,
18132        >(
18133            (),
18134            0x320bd14c4df046c4,
18135            fidl::encoding::DynamicFlags::empty(),
18136            _decode,
18137        )
18138    }
18139
18140    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
18141        BaseNetworkSocketSetIpMulticastTtlResult,
18142        fidl::encoding::DefaultFuchsiaResourceDialect,
18143    >;
18144    fn r#set_ip_multicast_ttl(
18145        &self,
18146        mut value: &OptionalUint8,
18147    ) -> Self::SetIpMulticastTtlResponseFut {
18148        fn _decode(
18149            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18150        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
18151            let _response = fidl::client::decode_transaction_body::<
18152                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18153                fidl::encoding::DefaultFuchsiaResourceDialect,
18154                0x63134d53772916a1,
18155            >(_buf?)?;
18156            Ok(_response.map(|x| x))
18157        }
18158        self.client.send_query_and_decode::<
18159            BaseNetworkSocketSetIpMulticastTtlRequest,
18160            BaseNetworkSocketSetIpMulticastTtlResult,
18161        >(
18162            (value,),
18163            0x63134d53772916a1,
18164            fidl::encoding::DynamicFlags::empty(),
18165            _decode,
18166        )
18167    }
18168
18169    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
18170        BaseNetworkSocketGetIpMulticastTtlResult,
18171        fidl::encoding::DefaultFuchsiaResourceDialect,
18172    >;
18173    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
18174        fn _decode(
18175            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18176        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
18177            let _response = fidl::client::decode_transaction_body::<
18178                fidl::encoding::ResultType<
18179                    BaseNetworkSocketGetIpMulticastTtlResponse,
18180                    fidl_fuchsia_posix::Errno,
18181                >,
18182                fidl::encoding::DefaultFuchsiaResourceDialect,
18183                0x4665cd378f39e1a,
18184            >(_buf?)?;
18185            Ok(_response.map(|x| x.value))
18186        }
18187        self.client.send_query_and_decode::<
18188            fidl::encoding::EmptyPayload,
18189            BaseNetworkSocketGetIpMulticastTtlResult,
18190        >(
18191            (),
18192            0x4665cd378f39e1a,
18193            fidl::encoding::DynamicFlags::empty(),
18194            _decode,
18195        )
18196    }
18197
18198    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18199        BaseNetworkSocketSetIpMulticastLoopbackResult,
18200        fidl::encoding::DefaultFuchsiaResourceDialect,
18201    >;
18202    fn r#set_ip_multicast_loopback(
18203        &self,
18204        mut value: bool,
18205    ) -> Self::SetIpMulticastLoopbackResponseFut {
18206        fn _decode(
18207            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18208        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
18209            let _response = fidl::client::decode_transaction_body::<
18210                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18211                fidl::encoding::DefaultFuchsiaResourceDialect,
18212                0x20c55c11f00943ea,
18213            >(_buf?)?;
18214            Ok(_response.map(|x| x))
18215        }
18216        self.client.send_query_and_decode::<
18217            BaseNetworkSocketSetIpMulticastLoopbackRequest,
18218            BaseNetworkSocketSetIpMulticastLoopbackResult,
18219        >(
18220            (value,),
18221            0x20c55c11f00943ea,
18222            fidl::encoding::DynamicFlags::empty(),
18223            _decode,
18224        )
18225    }
18226
18227    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18228        BaseNetworkSocketGetIpMulticastLoopbackResult,
18229        fidl::encoding::DefaultFuchsiaResourceDialect,
18230    >;
18231    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
18232        fn _decode(
18233            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18234        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
18235            let _response = fidl::client::decode_transaction_body::<
18236                fidl::encoding::ResultType<
18237                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
18238                    fidl_fuchsia_posix::Errno,
18239                >,
18240                fidl::encoding::DefaultFuchsiaResourceDialect,
18241                0x3b6b26ff558298f2,
18242            >(_buf?)?;
18243            Ok(_response.map(|x| x.value))
18244        }
18245        self.client.send_query_and_decode::<
18246            fidl::encoding::EmptyPayload,
18247            BaseNetworkSocketGetIpMulticastLoopbackResult,
18248        >(
18249            (),
18250            0x3b6b26ff558298f2,
18251            fidl::encoding::DynamicFlags::empty(),
18252            _decode,
18253        )
18254    }
18255
18256    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
18257        BaseNetworkSocketAddIpMembershipResult,
18258        fidl::encoding::DefaultFuchsiaResourceDialect,
18259    >;
18260    fn r#add_ip_membership(
18261        &self,
18262        mut membership: &IpMulticastMembership,
18263    ) -> Self::AddIpMembershipResponseFut {
18264        fn _decode(
18265            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18266        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
18267            let _response = fidl::client::decode_transaction_body::<
18268                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18269                fidl::encoding::DefaultFuchsiaResourceDialect,
18270                0x76bc7df115a3b4d0,
18271            >(_buf?)?;
18272            Ok(_response.map(|x| x))
18273        }
18274        self.client.send_query_and_decode::<
18275            BaseNetworkSocketAddIpMembershipRequest,
18276            BaseNetworkSocketAddIpMembershipResult,
18277        >(
18278            (membership,),
18279            0x76bc7df115a3b4d0,
18280            fidl::encoding::DynamicFlags::empty(),
18281            _decode,
18282        )
18283    }
18284
18285    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
18286        BaseNetworkSocketDropIpMembershipResult,
18287        fidl::encoding::DefaultFuchsiaResourceDialect,
18288    >;
18289    fn r#drop_ip_membership(
18290        &self,
18291        mut membership: &IpMulticastMembership,
18292    ) -> Self::DropIpMembershipResponseFut {
18293        fn _decode(
18294            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18295        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
18296            let _response = fidl::client::decode_transaction_body::<
18297                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18298                fidl::encoding::DefaultFuchsiaResourceDialect,
18299                0x2888f3099188d03,
18300            >(_buf?)?;
18301            Ok(_response.map(|x| x))
18302        }
18303        self.client.send_query_and_decode::<
18304            BaseNetworkSocketDropIpMembershipRequest,
18305            BaseNetworkSocketDropIpMembershipResult,
18306        >(
18307            (membership,),
18308            0x2888f3099188d03,
18309            fidl::encoding::DynamicFlags::empty(),
18310            _decode,
18311        )
18312    }
18313
18314    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
18315        BaseNetworkSocketSetIpTransparentResult,
18316        fidl::encoding::DefaultFuchsiaResourceDialect,
18317    >;
18318    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
18319        fn _decode(
18320            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18321        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
18322            let _response = fidl::client::decode_transaction_body::<
18323                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18324                fidl::encoding::DefaultFuchsiaResourceDialect,
18325                0x1ae532b0c066e3a0,
18326            >(_buf?)?;
18327            Ok(_response.map(|x| x))
18328        }
18329        self.client.send_query_and_decode::<
18330            BaseNetworkSocketSetIpTransparentRequest,
18331            BaseNetworkSocketSetIpTransparentResult,
18332        >(
18333            (value,),
18334            0x1ae532b0c066e3a0,
18335            fidl::encoding::DynamicFlags::empty(),
18336            _decode,
18337        )
18338    }
18339
18340    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
18341        BaseNetworkSocketGetIpTransparentResult,
18342        fidl::encoding::DefaultFuchsiaResourceDialect,
18343    >;
18344    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
18345        fn _decode(
18346            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18347        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
18348            let _response = fidl::client::decode_transaction_body::<
18349                fidl::encoding::ResultType<
18350                    BaseNetworkSocketGetIpTransparentResponse,
18351                    fidl_fuchsia_posix::Errno,
18352                >,
18353                fidl::encoding::DefaultFuchsiaResourceDialect,
18354                0x51d43695962ebfb5,
18355            >(_buf?)?;
18356            Ok(_response.map(|x| x.value))
18357        }
18358        self.client.send_query_and_decode::<
18359            fidl::encoding::EmptyPayload,
18360            BaseNetworkSocketGetIpTransparentResult,
18361        >(
18362            (),
18363            0x51d43695962ebfb5,
18364            fidl::encoding::DynamicFlags::empty(),
18365            _decode,
18366        )
18367    }
18368
18369    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
18370        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
18371        fidl::encoding::DefaultFuchsiaResourceDialect,
18372    >;
18373    fn r#set_ip_receive_original_destination_address(
18374        &self,
18375        mut value: bool,
18376    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
18377        fn _decode(
18378            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18379        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
18380        {
18381            let _response = fidl::client::decode_transaction_body::<
18382                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18383                fidl::encoding::DefaultFuchsiaResourceDialect,
18384                0x4722b4ce52f7840,
18385            >(_buf?)?;
18386            Ok(_response.map(|x| x))
18387        }
18388        self.client.send_query_and_decode::<
18389            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
18390            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
18391        >(
18392            (value,),
18393            0x4722b4ce52f7840,
18394            fidl::encoding::DynamicFlags::empty(),
18395            _decode,
18396        )
18397    }
18398
18399    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
18400        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
18401        fidl::encoding::DefaultFuchsiaResourceDialect,
18402    >;
18403    fn r#get_ip_receive_original_destination_address(
18404        &self,
18405    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
18406        fn _decode(
18407            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18408        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
18409        {
18410            let _response = fidl::client::decode_transaction_body::<
18411                fidl::encoding::ResultType<
18412                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
18413                    fidl_fuchsia_posix::Errno,
18414                >,
18415                fidl::encoding::DefaultFuchsiaResourceDialect,
18416                0x2a0e7dc5d6bfdfe9,
18417            >(_buf?)?;
18418            Ok(_response.map(|x| x.value))
18419        }
18420        self.client.send_query_and_decode::<
18421            fidl::encoding::EmptyPayload,
18422            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
18423        >(
18424            (),
18425            0x2a0e7dc5d6bfdfe9,
18426            fidl::encoding::DynamicFlags::empty(),
18427            _decode,
18428        )
18429    }
18430
18431    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
18432        BaseNetworkSocketAddIpv6MembershipResult,
18433        fidl::encoding::DefaultFuchsiaResourceDialect,
18434    >;
18435    fn r#add_ipv6_membership(
18436        &self,
18437        mut membership: &Ipv6MulticastMembership,
18438    ) -> Self::AddIpv6MembershipResponseFut {
18439        fn _decode(
18440            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18441        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
18442            let _response = fidl::client::decode_transaction_body::<
18443                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18444                fidl::encoding::DefaultFuchsiaResourceDialect,
18445                0x7c94727acb4ea4b3,
18446            >(_buf?)?;
18447            Ok(_response.map(|x| x))
18448        }
18449        self.client.send_query_and_decode::<
18450            BaseNetworkSocketAddIpv6MembershipRequest,
18451            BaseNetworkSocketAddIpv6MembershipResult,
18452        >(
18453            (membership,),
18454            0x7c94727acb4ea4b3,
18455            fidl::encoding::DynamicFlags::empty(),
18456            _decode,
18457        )
18458    }
18459
18460    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
18461        BaseNetworkSocketDropIpv6MembershipResult,
18462        fidl::encoding::DefaultFuchsiaResourceDialect,
18463    >;
18464    fn r#drop_ipv6_membership(
18465        &self,
18466        mut membership: &Ipv6MulticastMembership,
18467    ) -> Self::DropIpv6MembershipResponseFut {
18468        fn _decode(
18469            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18470        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
18471            let _response = fidl::client::decode_transaction_body::<
18472                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18473                fidl::encoding::DefaultFuchsiaResourceDialect,
18474                0x42104c70ccaba304,
18475            >(_buf?)?;
18476            Ok(_response.map(|x| x))
18477        }
18478        self.client.send_query_and_decode::<
18479            BaseNetworkSocketDropIpv6MembershipRequest,
18480            BaseNetworkSocketDropIpv6MembershipResult,
18481        >(
18482            (membership,),
18483            0x42104c70ccaba304,
18484            fidl::encoding::DynamicFlags::empty(),
18485            _decode,
18486        )
18487    }
18488
18489    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18490        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
18491        fidl::encoding::DefaultFuchsiaResourceDialect,
18492    >;
18493    fn r#set_ipv6_multicast_interface(
18494        &self,
18495        mut value: u64,
18496    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
18497        fn _decode(
18498            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18499        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
18500            let _response = fidl::client::decode_transaction_body::<
18501                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18502                fidl::encoding::DefaultFuchsiaResourceDialect,
18503                0x135f76db3774ab3b,
18504            >(_buf?)?;
18505            Ok(_response.map(|x| x))
18506        }
18507        self.client.send_query_and_decode::<
18508            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
18509            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
18510        >(
18511            (value,),
18512            0x135f76db3774ab3b,
18513            fidl::encoding::DynamicFlags::empty(),
18514            _decode,
18515        )
18516    }
18517
18518    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
18519        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
18520        fidl::encoding::DefaultFuchsiaResourceDialect,
18521    >;
18522    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
18523        fn _decode(
18524            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18525        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
18526            let _response = fidl::client::decode_transaction_body::<
18527                fidl::encoding::ResultType<
18528                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
18529                    fidl_fuchsia_posix::Errno,
18530                >,
18531                fidl::encoding::DefaultFuchsiaResourceDialect,
18532                0x1f26fcdd348f1882,
18533            >(_buf?)?;
18534            Ok(_response.map(|x| x.value))
18535        }
18536        self.client.send_query_and_decode::<
18537            fidl::encoding::EmptyPayload,
18538            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
18539        >(
18540            (),
18541            0x1f26fcdd348f1882,
18542            fidl::encoding::DynamicFlags::empty(),
18543            _decode,
18544        )
18545    }
18546
18547    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
18548        BaseNetworkSocketSetIpv6UnicastHopsResult,
18549        fidl::encoding::DefaultFuchsiaResourceDialect,
18550    >;
18551    fn r#set_ipv6_unicast_hops(
18552        &self,
18553        mut value: &OptionalUint8,
18554    ) -> Self::SetIpv6UnicastHopsResponseFut {
18555        fn _decode(
18556            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18557        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
18558            let _response = fidl::client::decode_transaction_body::<
18559                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18560                fidl::encoding::DefaultFuchsiaResourceDialect,
18561                0x157d51e98f462859,
18562            >(_buf?)?;
18563            Ok(_response.map(|x| x))
18564        }
18565        self.client.send_query_and_decode::<
18566            BaseNetworkSocketSetIpv6UnicastHopsRequest,
18567            BaseNetworkSocketSetIpv6UnicastHopsResult,
18568        >(
18569            (value,),
18570            0x157d51e98f462859,
18571            fidl::encoding::DynamicFlags::empty(),
18572            _decode,
18573        )
18574    }
18575
18576    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
18577        BaseNetworkSocketGetIpv6UnicastHopsResult,
18578        fidl::encoding::DefaultFuchsiaResourceDialect,
18579    >;
18580    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
18581        fn _decode(
18582            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18583        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
18584            let _response = fidl::client::decode_transaction_body::<
18585                fidl::encoding::ResultType<
18586                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
18587                    fidl_fuchsia_posix::Errno,
18588                >,
18589                fidl::encoding::DefaultFuchsiaResourceDialect,
18590                0x21f4641cad8bd8d2,
18591            >(_buf?)?;
18592            Ok(_response.map(|x| x.value))
18593        }
18594        self.client.send_query_and_decode::<
18595            fidl::encoding::EmptyPayload,
18596            BaseNetworkSocketGetIpv6UnicastHopsResult,
18597        >(
18598            (),
18599            0x21f4641cad8bd8d2,
18600            fidl::encoding::DynamicFlags::empty(),
18601            _decode,
18602        )
18603    }
18604
18605    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
18606        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
18607        fidl::encoding::DefaultFuchsiaResourceDialect,
18608    >;
18609    fn r#set_ipv6_receive_hop_limit(
18610        &self,
18611        mut value: bool,
18612    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
18613        fn _decode(
18614            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18615        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
18616            let _response = fidl::client::decode_transaction_body::<
18617                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18618                fidl::encoding::DefaultFuchsiaResourceDialect,
18619                0x5c24808ed2e84a1e,
18620            >(_buf?)?;
18621            Ok(_response.map(|x| x))
18622        }
18623        self.client.send_query_and_decode::<
18624            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
18625            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
18626        >(
18627            (value,),
18628            0x5c24808ed2e84a1e,
18629            fidl::encoding::DynamicFlags::empty(),
18630            _decode,
18631        )
18632    }
18633
18634    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
18635        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
18636        fidl::encoding::DefaultFuchsiaResourceDialect,
18637    >;
18638    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
18639        fn _decode(
18640            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18641        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
18642            let _response = fidl::client::decode_transaction_body::<
18643                fidl::encoding::ResultType<
18644                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
18645                    fidl_fuchsia_posix::Errno,
18646                >,
18647                fidl::encoding::DefaultFuchsiaResourceDialect,
18648                0x341e06689885b4c0,
18649            >(_buf?)?;
18650            Ok(_response.map(|x| x.value))
18651        }
18652        self.client.send_query_and_decode::<
18653            fidl::encoding::EmptyPayload,
18654            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
18655        >(
18656            (),
18657            0x341e06689885b4c0,
18658            fidl::encoding::DynamicFlags::empty(),
18659            _decode,
18660        )
18661    }
18662
18663    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
18664        BaseNetworkSocketSetIpv6MulticastHopsResult,
18665        fidl::encoding::DefaultFuchsiaResourceDialect,
18666    >;
18667    fn r#set_ipv6_multicast_hops(
18668        &self,
18669        mut value: &OptionalUint8,
18670    ) -> Self::SetIpv6MulticastHopsResponseFut {
18671        fn _decode(
18672            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18673        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
18674            let _response = fidl::client::decode_transaction_body::<
18675                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18676                fidl::encoding::DefaultFuchsiaResourceDialect,
18677                0x25b9cd4d181f82c1,
18678            >(_buf?)?;
18679            Ok(_response.map(|x| x))
18680        }
18681        self.client.send_query_and_decode::<
18682            BaseNetworkSocketSetIpv6MulticastHopsRequest,
18683            BaseNetworkSocketSetIpv6MulticastHopsResult,
18684        >(
18685            (value,),
18686            0x25b9cd4d181f82c1,
18687            fidl::encoding::DynamicFlags::empty(),
18688            _decode,
18689        )
18690    }
18691
18692    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
18693        BaseNetworkSocketGetIpv6MulticastHopsResult,
18694        fidl::encoding::DefaultFuchsiaResourceDialect,
18695    >;
18696    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
18697        fn _decode(
18698            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18699        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
18700            let _response = fidl::client::decode_transaction_body::<
18701                fidl::encoding::ResultType<
18702                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
18703                    fidl_fuchsia_posix::Errno,
18704                >,
18705                fidl::encoding::DefaultFuchsiaResourceDialect,
18706                0x52916948a365012a,
18707            >(_buf?)?;
18708            Ok(_response.map(|x| x.value))
18709        }
18710        self.client.send_query_and_decode::<
18711            fidl::encoding::EmptyPayload,
18712            BaseNetworkSocketGetIpv6MulticastHopsResult,
18713        >(
18714            (),
18715            0x52916948a365012a,
18716            fidl::encoding::DynamicFlags::empty(),
18717            _decode,
18718        )
18719    }
18720
18721    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18722        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
18723        fidl::encoding::DefaultFuchsiaResourceDialect,
18724    >;
18725    fn r#set_ipv6_multicast_loopback(
18726        &self,
18727        mut value: bool,
18728    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
18729        fn _decode(
18730            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18731        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
18732            let _response = fidl::client::decode_transaction_body::<
18733                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18734                fidl::encoding::DefaultFuchsiaResourceDialect,
18735                0x55701c409ff41b40,
18736            >(_buf?)?;
18737            Ok(_response.map(|x| x))
18738        }
18739        self.client.send_query_and_decode::<
18740            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
18741            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
18742        >(
18743            (value,),
18744            0x55701c409ff41b40,
18745            fidl::encoding::DynamicFlags::empty(),
18746            _decode,
18747        )
18748    }
18749
18750    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
18751        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
18752        fidl::encoding::DefaultFuchsiaResourceDialect,
18753    >;
18754    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
18755        fn _decode(
18756            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18757        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
18758            let _response = fidl::client::decode_transaction_body::<
18759                fidl::encoding::ResultType<
18760                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
18761                    fidl_fuchsia_posix::Errno,
18762                >,
18763                fidl::encoding::DefaultFuchsiaResourceDialect,
18764                0x4415b701fde319c3,
18765            >(_buf?)?;
18766            Ok(_response.map(|x| x.value))
18767        }
18768        self.client.send_query_and_decode::<
18769            fidl::encoding::EmptyPayload,
18770            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
18771        >(
18772            (),
18773            0x4415b701fde319c3,
18774            fidl::encoding::DynamicFlags::empty(),
18775            _decode,
18776        )
18777    }
18778
18779    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
18780        BaseNetworkSocketSetIpv6OnlyResult,
18781        fidl::encoding::DefaultFuchsiaResourceDialect,
18782    >;
18783    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
18784        fn _decode(
18785            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18786        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
18787            let _response = fidl::client::decode_transaction_body::<
18788                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18789                fidl::encoding::DefaultFuchsiaResourceDialect,
18790                0x4873f1364758cbba,
18791            >(_buf?)?;
18792            Ok(_response.map(|x| x))
18793        }
18794        self.client.send_query_and_decode::<
18795            BaseNetworkSocketSetIpv6OnlyRequest,
18796            BaseNetworkSocketSetIpv6OnlyResult,
18797        >(
18798            (value,),
18799            0x4873f1364758cbba,
18800            fidl::encoding::DynamicFlags::empty(),
18801            _decode,
18802        )
18803    }
18804
18805    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
18806        BaseNetworkSocketGetIpv6OnlyResult,
18807        fidl::encoding::DefaultFuchsiaResourceDialect,
18808    >;
18809    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
18810        fn _decode(
18811            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18812        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
18813            let _response = fidl::client::decode_transaction_body::<
18814                fidl::encoding::ResultType<
18815                    BaseNetworkSocketGetIpv6OnlyResponse,
18816                    fidl_fuchsia_posix::Errno,
18817                >,
18818                fidl::encoding::DefaultFuchsiaResourceDialect,
18819                0x4aa3340a1a26b89c,
18820            >(_buf?)?;
18821            Ok(_response.map(|x| x.value))
18822        }
18823        self.client.send_query_and_decode::<
18824            fidl::encoding::EmptyPayload,
18825            BaseNetworkSocketGetIpv6OnlyResult,
18826        >(
18827            (),
18828            0x4aa3340a1a26b89c,
18829            fidl::encoding::DynamicFlags::empty(),
18830            _decode,
18831        )
18832    }
18833
18834    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
18835        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
18836        fidl::encoding::DefaultFuchsiaResourceDialect,
18837    >;
18838    fn r#set_ipv6_receive_traffic_class(
18839        &self,
18840        mut value: bool,
18841    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
18842        fn _decode(
18843            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18844        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
18845            let _response = fidl::client::decode_transaction_body::<
18846                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18847                fidl::encoding::DefaultFuchsiaResourceDialect,
18848                0x58f07c8788d099a0,
18849            >(_buf?)?;
18850            Ok(_response.map(|x| x))
18851        }
18852        self.client.send_query_and_decode::<
18853            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
18854            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
18855        >(
18856            (value,),
18857            0x58f07c8788d099a0,
18858            fidl::encoding::DynamicFlags::empty(),
18859            _decode,
18860        )
18861    }
18862
18863    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
18864        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
18865        fidl::encoding::DefaultFuchsiaResourceDialect,
18866    >;
18867    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
18868        fn _decode(
18869            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18870        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
18871            let _response = fidl::client::decode_transaction_body::<
18872                fidl::encoding::ResultType<
18873                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
18874                    fidl_fuchsia_posix::Errno,
18875                >,
18876                fidl::encoding::DefaultFuchsiaResourceDialect,
18877                0x2e334df1da553ffa,
18878            >(_buf?)?;
18879            Ok(_response.map(|x| x.value))
18880        }
18881        self.client.send_query_and_decode::<
18882            fidl::encoding::EmptyPayload,
18883            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
18884        >(
18885            (),
18886            0x2e334df1da553ffa,
18887            fidl::encoding::DynamicFlags::empty(),
18888            _decode,
18889        )
18890    }
18891
18892    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
18893        BaseNetworkSocketSetIpv6TrafficClassResult,
18894        fidl::encoding::DefaultFuchsiaResourceDialect,
18895    >;
18896    fn r#set_ipv6_traffic_class(
18897        &self,
18898        mut value: &OptionalUint8,
18899    ) -> Self::SetIpv6TrafficClassResponseFut {
18900        fn _decode(
18901            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18902        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
18903            let _response = fidl::client::decode_transaction_body::<
18904                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18905                fidl::encoding::DefaultFuchsiaResourceDialect,
18906                0x6af077800c5a0b4f,
18907            >(_buf?)?;
18908            Ok(_response.map(|x| x))
18909        }
18910        self.client.send_query_and_decode::<
18911            BaseNetworkSocketSetIpv6TrafficClassRequest,
18912            BaseNetworkSocketSetIpv6TrafficClassResult,
18913        >(
18914            (value,),
18915            0x6af077800c5a0b4f,
18916            fidl::encoding::DynamicFlags::empty(),
18917            _decode,
18918        )
18919    }
18920
18921    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
18922        BaseNetworkSocketGetIpv6TrafficClassResult,
18923        fidl::encoding::DefaultFuchsiaResourceDialect,
18924    >;
18925    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
18926        fn _decode(
18927            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18928        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
18929            let _response = fidl::client::decode_transaction_body::<
18930                fidl::encoding::ResultType<
18931                    BaseNetworkSocketGetIpv6TrafficClassResponse,
18932                    fidl_fuchsia_posix::Errno,
18933                >,
18934                fidl::encoding::DefaultFuchsiaResourceDialect,
18935                0x6baf6eed8fc2f04,
18936            >(_buf?)?;
18937            Ok(_response.map(|x| x.value))
18938        }
18939        self.client.send_query_and_decode::<
18940            fidl::encoding::EmptyPayload,
18941            BaseNetworkSocketGetIpv6TrafficClassResult,
18942        >(
18943            (),
18944            0x6baf6eed8fc2f04,
18945            fidl::encoding::DynamicFlags::empty(),
18946            _decode,
18947        )
18948    }
18949
18950    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
18951        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
18952        fidl::encoding::DefaultFuchsiaResourceDialect,
18953    >;
18954    fn r#set_ipv6_receive_packet_info(
18955        &self,
18956        mut value: bool,
18957    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
18958        fn _decode(
18959            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18960        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
18961            let _response = fidl::client::decode_transaction_body::<
18962                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
18963                fidl::encoding::DefaultFuchsiaResourceDialect,
18964                0x19259775b1a92768,
18965            >(_buf?)?;
18966            Ok(_response.map(|x| x))
18967        }
18968        self.client.send_query_and_decode::<
18969            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
18970            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
18971        >(
18972            (value,),
18973            0x19259775b1a92768,
18974            fidl::encoding::DynamicFlags::empty(),
18975            _decode,
18976        )
18977    }
18978
18979    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
18980        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
18981        fidl::encoding::DefaultFuchsiaResourceDialect,
18982    >;
18983    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
18984        fn _decode(
18985            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
18986        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
18987            let _response = fidl::client::decode_transaction_body::<
18988                fidl::encoding::ResultType<
18989                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
18990                    fidl_fuchsia_posix::Errno,
18991                >,
18992                fidl::encoding::DefaultFuchsiaResourceDialect,
18993                0x7acd4a2775baec75,
18994            >(_buf?)?;
18995            Ok(_response.map(|x| x.value))
18996        }
18997        self.client.send_query_and_decode::<
18998            fidl::encoding::EmptyPayload,
18999            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
19000        >(
19001            (),
19002            0x7acd4a2775baec75,
19003            fidl::encoding::DynamicFlags::empty(),
19004            _decode,
19005        )
19006    }
19007
19008    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
19009        BaseNetworkSocketGetOriginalDestinationResult,
19010        fidl::encoding::DefaultFuchsiaResourceDialect,
19011    >;
19012    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
19013        fn _decode(
19014            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
19015        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
19016            let _response = fidl::client::decode_transaction_body::<
19017                fidl::encoding::ResultType<
19018                    BaseNetworkSocketGetOriginalDestinationResponse,
19019                    fidl_fuchsia_posix::Errno,
19020                >,
19021                fidl::encoding::DefaultFuchsiaResourceDialect,
19022                0x38bf28f0dafdbac0,
19023            >(_buf?)?;
19024            Ok(_response.map(|x| x.value))
19025        }
19026        self.client.send_query_and_decode::<
19027            fidl::encoding::EmptyPayload,
19028            BaseNetworkSocketGetOriginalDestinationResult,
19029        >(
19030            (),
19031            0x38bf28f0dafdbac0,
19032            fidl::encoding::DynamicFlags::empty(),
19033            _decode,
19034        )
19035    }
19036}
19037
19038pub struct BaseNetworkSocketEventStream {
19039    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
19040}
19041
19042impl std::marker::Unpin for BaseNetworkSocketEventStream {}
19043
19044impl futures::stream::FusedStream for BaseNetworkSocketEventStream {
19045    fn is_terminated(&self) -> bool {
19046        self.event_receiver.is_terminated()
19047    }
19048}
19049
19050impl futures::Stream for BaseNetworkSocketEventStream {
19051    type Item = Result<BaseNetworkSocketEvent, fidl::Error>;
19052
19053    fn poll_next(
19054        mut self: std::pin::Pin<&mut Self>,
19055        cx: &mut std::task::Context<'_>,
19056    ) -> std::task::Poll<Option<Self::Item>> {
19057        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
19058            &mut self.event_receiver,
19059            cx
19060        )?) {
19061            Some(buf) => std::task::Poll::Ready(Some(BaseNetworkSocketEvent::decode(buf))),
19062            None => std::task::Poll::Ready(None),
19063        }
19064    }
19065}
19066
19067#[derive(Debug)]
19068pub enum BaseNetworkSocketEvent {}
19069
19070impl BaseNetworkSocketEvent {
19071    /// Decodes a message buffer as a [`BaseNetworkSocketEvent`].
19072    fn decode(
19073        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
19074    ) -> Result<BaseNetworkSocketEvent, fidl::Error> {
19075        let (bytes, _handles) = buf.split_mut();
19076        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
19077        debug_assert_eq!(tx_header.tx_id, 0);
19078        match tx_header.ordinal {
19079            _ => Err(fidl::Error::UnknownOrdinal {
19080                ordinal: tx_header.ordinal,
19081                protocol_name:
19082                    <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
19083            }),
19084        }
19085    }
19086}
19087
19088/// A Stream of incoming requests for fuchsia.posix.socket/BaseNetworkSocket.
19089pub struct BaseNetworkSocketRequestStream {
19090    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
19091    is_terminated: bool,
19092}
19093
19094impl std::marker::Unpin for BaseNetworkSocketRequestStream {}
19095
19096impl futures::stream::FusedStream for BaseNetworkSocketRequestStream {
19097    fn is_terminated(&self) -> bool {
19098        self.is_terminated
19099    }
19100}
19101
19102impl fidl::endpoints::RequestStream for BaseNetworkSocketRequestStream {
19103    type Protocol = BaseNetworkSocketMarker;
19104    type ControlHandle = BaseNetworkSocketControlHandle;
19105
19106    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
19107        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
19108    }
19109
19110    fn control_handle(&self) -> Self::ControlHandle {
19111        BaseNetworkSocketControlHandle { inner: self.inner.clone() }
19112    }
19113
19114    fn into_inner(
19115        self,
19116    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
19117    {
19118        (self.inner, self.is_terminated)
19119    }
19120
19121    fn from_inner(
19122        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
19123        is_terminated: bool,
19124    ) -> Self {
19125        Self { inner, is_terminated }
19126    }
19127}
19128
19129impl futures::Stream for BaseNetworkSocketRequestStream {
19130    type Item = Result<BaseNetworkSocketRequest, fidl::Error>;
19131
19132    fn poll_next(
19133        mut self: std::pin::Pin<&mut Self>,
19134        cx: &mut std::task::Context<'_>,
19135    ) -> std::task::Poll<Option<Self::Item>> {
19136        let this = &mut *self;
19137        if this.inner.check_shutdown(cx) {
19138            this.is_terminated = true;
19139            return std::task::Poll::Ready(None);
19140        }
19141        if this.is_terminated {
19142            panic!("polled BaseNetworkSocketRequestStream after completion");
19143        }
19144        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
19145            |bytes, handles| {
19146                match this.inner.channel().read_etc(cx, bytes, handles) {
19147                    std::task::Poll::Ready(Ok(())) => {}
19148                    std::task::Poll::Pending => return std::task::Poll::Pending,
19149                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
19150                        this.is_terminated = true;
19151                        return std::task::Poll::Ready(None);
19152                    }
19153                    std::task::Poll::Ready(Err(e)) => {
19154                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
19155                            e.into(),
19156                        ))));
19157                    }
19158                }
19159
19160                // A message has been received from the channel
19161                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
19162
19163                std::task::Poll::Ready(Some(match header.ordinal {
19164                    0x20d8a7aba2168a79 => {
19165                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
19166                        let mut req = fidl::new_empty!(
19167                            fidl_fuchsia_unknown::CloneableCloneRequest,
19168                            fidl::encoding::DefaultFuchsiaResourceDialect
19169                        );
19170                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
19171                        let control_handle =
19172                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19173                        Ok(BaseNetworkSocketRequest::Clone { request: req.request, control_handle })
19174                    }
19175                    0x5ac5d459ad7f657e => {
19176                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19177                        let mut req = fidl::new_empty!(
19178                            fidl::encoding::EmptyPayload,
19179                            fidl::encoding::DefaultFuchsiaResourceDialect
19180                        );
19181                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19182                        let control_handle =
19183                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19184                        Ok(BaseNetworkSocketRequest::Close {
19185                            responder: BaseNetworkSocketCloseResponder {
19186                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19187                                tx_id: header.tx_id,
19188                            },
19189                        })
19190                    }
19191                    0x2658edee9decfc06 => {
19192                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19193                        let mut req = fidl::new_empty!(
19194                            fidl::encoding::EmptyPayload,
19195                            fidl::encoding::DefaultFuchsiaResourceDialect
19196                        );
19197                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19198                        let control_handle =
19199                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19200                        Ok(BaseNetworkSocketRequest::Query {
19201                            responder: BaseNetworkSocketQueryResponder {
19202                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19203                                tx_id: header.tx_id,
19204                            },
19205                        })
19206                    }
19207                    0x1fd74ee8b9a4a876 => {
19208                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19209                        let mut req = fidl::new_empty!(
19210                            BaseSocketSetReuseAddressRequest,
19211                            fidl::encoding::DefaultFuchsiaResourceDialect
19212                        );
19213                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
19214                        let control_handle =
19215                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19216                        Ok(BaseNetworkSocketRequest::SetReuseAddress {
19217                            value: req.value,
19218
19219                            responder: BaseNetworkSocketSetReuseAddressResponder {
19220                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19221                                tx_id: header.tx_id,
19222                            },
19223                        })
19224                    }
19225                    0x67b7206b8d1bc0a5 => {
19226                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19227                        let mut req = fidl::new_empty!(
19228                            fidl::encoding::EmptyPayload,
19229                            fidl::encoding::DefaultFuchsiaResourceDialect
19230                        );
19231                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19232                        let control_handle =
19233                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19234                        Ok(BaseNetworkSocketRequest::GetReuseAddress {
19235                            responder: BaseNetworkSocketGetReuseAddressResponder {
19236                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19237                                tx_id: header.tx_id,
19238                            },
19239                        })
19240                    }
19241                    0x5aad39b33e5f6ebb => {
19242                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19243                        let mut req = fidl::new_empty!(
19244                            fidl::encoding::EmptyPayload,
19245                            fidl::encoding::DefaultFuchsiaResourceDialect
19246                        );
19247                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19248                        let control_handle =
19249                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19250                        Ok(BaseNetworkSocketRequest::GetError {
19251                            responder: BaseNetworkSocketGetErrorResponder {
19252                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19253                                tx_id: header.tx_id,
19254                            },
19255                        })
19256                    }
19257                    0x6023e081ce3cd947 => {
19258                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19259                        let mut req = fidl::new_empty!(
19260                            BaseSocketSetBroadcastRequest,
19261                            fidl::encoding::DefaultFuchsiaResourceDialect
19262                        );
19263                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
19264                        let control_handle =
19265                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19266                        Ok(BaseNetworkSocketRequest::SetBroadcast {
19267                            value: req.value,
19268
19269                            responder: BaseNetworkSocketSetBroadcastResponder {
19270                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19271                                tx_id: header.tx_id,
19272                            },
19273                        })
19274                    }
19275                    0x68796fc556f9780d => {
19276                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19277                        let mut req = fidl::new_empty!(
19278                            fidl::encoding::EmptyPayload,
19279                            fidl::encoding::DefaultFuchsiaResourceDialect
19280                        );
19281                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19282                        let control_handle =
19283                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19284                        Ok(BaseNetworkSocketRequest::GetBroadcast {
19285                            responder: BaseNetworkSocketGetBroadcastResponder {
19286                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19287                                tx_id: header.tx_id,
19288                            },
19289                        })
19290                    }
19291                    0x756eac32d73a7a70 => {
19292                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19293                        let mut req = fidl::new_empty!(
19294                            BaseSocketSetSendBufferRequest,
19295                            fidl::encoding::DefaultFuchsiaResourceDialect
19296                        );
19297                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
19298                        let control_handle =
19299                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19300                        Ok(BaseNetworkSocketRequest::SetSendBuffer {
19301                            value_bytes: req.value_bytes,
19302
19303                            responder: BaseNetworkSocketSetSendBufferResponder {
19304                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19305                                tx_id: header.tx_id,
19306                            },
19307                        })
19308                    }
19309                    0x78a52fd9c7b2410b => {
19310                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19311                        let mut req = fidl::new_empty!(
19312                            fidl::encoding::EmptyPayload,
19313                            fidl::encoding::DefaultFuchsiaResourceDialect
19314                        );
19315                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19316                        let control_handle =
19317                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19318                        Ok(BaseNetworkSocketRequest::GetSendBuffer {
19319                            responder: BaseNetworkSocketGetSendBufferResponder {
19320                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19321                                tx_id: header.tx_id,
19322                            },
19323                        })
19324                    }
19325                    0x6b0cf2f1919c7001 => {
19326                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19327                        let mut req = fidl::new_empty!(
19328                            BaseSocketSetReceiveBufferRequest,
19329                            fidl::encoding::DefaultFuchsiaResourceDialect
19330                        );
19331                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
19332                        let control_handle =
19333                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19334                        Ok(BaseNetworkSocketRequest::SetReceiveBuffer {
19335                            value_bytes: req.value_bytes,
19336
19337                            responder: BaseNetworkSocketSetReceiveBufferResponder {
19338                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19339                                tx_id: header.tx_id,
19340                            },
19341                        })
19342                    }
19343                    0x14c1a4b64f709e5c => {
19344                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19345                        let mut req = fidl::new_empty!(
19346                            fidl::encoding::EmptyPayload,
19347                            fidl::encoding::DefaultFuchsiaResourceDialect
19348                        );
19349                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19350                        let control_handle =
19351                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19352                        Ok(BaseNetworkSocketRequest::GetReceiveBuffer {
19353                            responder: BaseNetworkSocketGetReceiveBufferResponder {
19354                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19355                                tx_id: header.tx_id,
19356                            },
19357                        })
19358                    }
19359                    0x572df8f0b920d2c7 => {
19360                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19361                        let mut req = fidl::new_empty!(
19362                            BaseSocketSetKeepAliveRequest,
19363                            fidl::encoding::DefaultFuchsiaResourceDialect
19364                        );
19365                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
19366                        let control_handle =
19367                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19368                        Ok(BaseNetworkSocketRequest::SetKeepAlive {
19369                            value: req.value,
19370
19371                            responder: BaseNetworkSocketSetKeepAliveResponder {
19372                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19373                                tx_id: header.tx_id,
19374                            },
19375                        })
19376                    }
19377                    0x2dd29d3215f2c9d2 => {
19378                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19379                        let mut req = fidl::new_empty!(
19380                            fidl::encoding::EmptyPayload,
19381                            fidl::encoding::DefaultFuchsiaResourceDialect
19382                        );
19383                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19384                        let control_handle =
19385                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19386                        Ok(BaseNetworkSocketRequest::GetKeepAlive {
19387                            responder: BaseNetworkSocketGetKeepAliveResponder {
19388                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19389                                tx_id: header.tx_id,
19390                            },
19391                        })
19392                    }
19393                    0x3ecb49968bee439 => {
19394                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19395                        let mut req = fidl::new_empty!(
19396                            BaseSocketSetOutOfBandInlineRequest,
19397                            fidl::encoding::DefaultFuchsiaResourceDialect
19398                        );
19399                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
19400                        let control_handle =
19401                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19402                        Ok(BaseNetworkSocketRequest::SetOutOfBandInline {
19403                            value: req.value,
19404
19405                            responder: BaseNetworkSocketSetOutOfBandInlineResponder {
19406                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19407                                tx_id: header.tx_id,
19408                            },
19409                        })
19410                    }
19411                    0x348c1ab3aeca1745 => {
19412                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19413                        let mut req = fidl::new_empty!(
19414                            fidl::encoding::EmptyPayload,
19415                            fidl::encoding::DefaultFuchsiaResourceDialect
19416                        );
19417                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19418                        let control_handle =
19419                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19420                        Ok(BaseNetworkSocketRequest::GetOutOfBandInline {
19421                            responder: BaseNetworkSocketGetOutOfBandInlineResponder {
19422                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19423                                tx_id: header.tx_id,
19424                            },
19425                        })
19426                    }
19427                    0x6bbf00c53a4c78c2 => {
19428                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19429                        let mut req = fidl::new_empty!(
19430                            BaseSocketSetNoCheckRequest,
19431                            fidl::encoding::DefaultFuchsiaResourceDialect
19432                        );
19433                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
19434                        let control_handle =
19435                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19436                        Ok(BaseNetworkSocketRequest::SetNoCheck {
19437                            value: req.value,
19438
19439                            responder: BaseNetworkSocketSetNoCheckResponder {
19440                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19441                                tx_id: header.tx_id,
19442                            },
19443                        })
19444                    }
19445                    0x2cd4249286417694 => {
19446                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19447                        let mut req = fidl::new_empty!(
19448                            fidl::encoding::EmptyPayload,
19449                            fidl::encoding::DefaultFuchsiaResourceDialect
19450                        );
19451                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19452                        let control_handle =
19453                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19454                        Ok(BaseNetworkSocketRequest::GetNoCheck {
19455                            responder: BaseNetworkSocketGetNoCheckResponder {
19456                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19457                                tx_id: header.tx_id,
19458                            },
19459                        })
19460                    }
19461                    0x45386351246e998e => {
19462                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19463                        let mut req = fidl::new_empty!(
19464                            BaseSocketSetLingerRequest,
19465                            fidl::encoding::DefaultFuchsiaResourceDialect
19466                        );
19467                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
19468                        let control_handle =
19469                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19470                        Ok(BaseNetworkSocketRequest::SetLinger {
19471                            linger: req.linger,
19472                            length_secs: req.length_secs,
19473
19474                            responder: BaseNetworkSocketSetLingerResponder {
19475                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19476                                tx_id: header.tx_id,
19477                            },
19478                        })
19479                    }
19480                    0x48eb20fc5ccb0e45 => {
19481                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19482                        let mut req = fidl::new_empty!(
19483                            fidl::encoding::EmptyPayload,
19484                            fidl::encoding::DefaultFuchsiaResourceDialect
19485                        );
19486                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19487                        let control_handle =
19488                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19489                        Ok(BaseNetworkSocketRequest::GetLinger {
19490                            responder: BaseNetworkSocketGetLingerResponder {
19491                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19492                                tx_id: header.tx_id,
19493                            },
19494                        })
19495                    }
19496                    0x24dd3e5cb36d9ccb => {
19497                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19498                        let mut req = fidl::new_empty!(
19499                            BaseSocketSetReusePortRequest,
19500                            fidl::encoding::DefaultFuchsiaResourceDialect
19501                        );
19502                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
19503                        let control_handle =
19504                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19505                        Ok(BaseNetworkSocketRequest::SetReusePort {
19506                            value: req.value,
19507
19508                            responder: BaseNetworkSocketSetReusePortResponder {
19509                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19510                                tx_id: header.tx_id,
19511                            },
19512                        })
19513                    }
19514                    0x7a112c1ab54ff828 => {
19515                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19516                        let mut req = fidl::new_empty!(
19517                            fidl::encoding::EmptyPayload,
19518                            fidl::encoding::DefaultFuchsiaResourceDialect
19519                        );
19520                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19521                        let control_handle =
19522                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19523                        Ok(BaseNetworkSocketRequest::GetReusePort {
19524                            responder: BaseNetworkSocketGetReusePortResponder {
19525                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19526                                tx_id: header.tx_id,
19527                            },
19528                        })
19529                    }
19530                    0x67ce6db6c2ec8966 => {
19531                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19532                        let mut req = fidl::new_empty!(
19533                            fidl::encoding::EmptyPayload,
19534                            fidl::encoding::DefaultFuchsiaResourceDialect
19535                        );
19536                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19537                        let control_handle =
19538                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19539                        Ok(BaseNetworkSocketRequest::GetAcceptConn {
19540                            responder: BaseNetworkSocketGetAcceptConnResponder {
19541                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19542                                tx_id: header.tx_id,
19543                            },
19544                        })
19545                    }
19546                    0x2118b483f28aafc4 => {
19547                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19548                        let mut req = fidl::new_empty!(
19549                            BaseSocketSetBindToDeviceRequest,
19550                            fidl::encoding::DefaultFuchsiaResourceDialect
19551                        );
19552                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
19553                        let control_handle =
19554                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19555                        Ok(BaseNetworkSocketRequest::SetBindToDevice {
19556                            value: req.value,
19557
19558                            responder: BaseNetworkSocketSetBindToDeviceResponder {
19559                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19560                                tx_id: header.tx_id,
19561                            },
19562                        })
19563                    }
19564                    0x1ab1fbf0ef7906c8 => {
19565                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19566                        let mut req = fidl::new_empty!(
19567                            fidl::encoding::EmptyPayload,
19568                            fidl::encoding::DefaultFuchsiaResourceDialect
19569                        );
19570                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19571                        let control_handle =
19572                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19573                        Ok(BaseNetworkSocketRequest::GetBindToDevice {
19574                            responder: BaseNetworkSocketGetBindToDeviceResponder {
19575                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19576                                tx_id: header.tx_id,
19577                            },
19578                        })
19579                    }
19580                    0x6e387a0def00821 => {
19581                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19582                        let mut req = fidl::new_empty!(
19583                            BaseSocketSetBindToInterfaceIndexRequest,
19584                            fidl::encoding::DefaultFuchsiaResourceDialect
19585                        );
19586                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
19587                        let control_handle =
19588                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19589                        Ok(BaseNetworkSocketRequest::SetBindToInterfaceIndex {
19590                            value: req.value,
19591
19592                            responder: BaseNetworkSocketSetBindToInterfaceIndexResponder {
19593                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19594                                tx_id: header.tx_id,
19595                            },
19596                        })
19597                    }
19598                    0x59c31dd3e3078295 => {
19599                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19600                        let mut req = fidl::new_empty!(
19601                            fidl::encoding::EmptyPayload,
19602                            fidl::encoding::DefaultFuchsiaResourceDialect
19603                        );
19604                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19605                        let control_handle =
19606                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19607                        Ok(BaseNetworkSocketRequest::GetBindToInterfaceIndex {
19608                            responder: BaseNetworkSocketGetBindToInterfaceIndexResponder {
19609                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19610                                tx_id: header.tx_id,
19611                            },
19612                        })
19613                    }
19614                    0x285d6516c263d839 => {
19615                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19616                        let mut req = fidl::new_empty!(
19617                            BaseSocketSetTimestampRequest,
19618                            fidl::encoding::DefaultFuchsiaResourceDialect
19619                        );
19620                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
19621                        let control_handle =
19622                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19623                        Ok(BaseNetworkSocketRequest::SetTimestamp {
19624                            value: req.value,
19625
19626                            responder: BaseNetworkSocketSetTimestampResponder {
19627                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19628                                tx_id: header.tx_id,
19629                            },
19630                        })
19631                    }
19632                    0x49f2fffbbcc2bd27 => {
19633                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19634                        let mut req = fidl::new_empty!(
19635                            fidl::encoding::EmptyPayload,
19636                            fidl::encoding::DefaultFuchsiaResourceDialect
19637                        );
19638                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19639                        let control_handle =
19640                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19641                        Ok(BaseNetworkSocketRequest::GetTimestamp {
19642                            responder: BaseNetworkSocketGetTimestampResponder {
19643                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19644                                tx_id: header.tx_id,
19645                            },
19646                        })
19647                    }
19648                    0x6ead6de09f653236 => {
19649                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19650                        let mut req = fidl::new_empty!(
19651                            BaseSocketSetMarkRequest,
19652                            fidl::encoding::DefaultFuchsiaResourceDialect
19653                        );
19654                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
19655                        let control_handle =
19656                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19657                        Ok(BaseNetworkSocketRequest::SetMark {
19658                            domain: req.domain,
19659                            mark: req.mark,
19660
19661                            responder: BaseNetworkSocketSetMarkResponder {
19662                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19663                                tx_id: header.tx_id,
19664                            },
19665                        })
19666                    }
19667                    0x57a2752c61d93d47 => {
19668                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19669                        let mut req = fidl::new_empty!(
19670                            BaseSocketGetMarkRequest,
19671                            fidl::encoding::DefaultFuchsiaResourceDialect
19672                        );
19673                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
19674                        let control_handle =
19675                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19676                        Ok(BaseNetworkSocketRequest::GetMark {
19677                            domain: req.domain,
19678
19679                            responder: BaseNetworkSocketGetMarkResponder {
19680                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19681                                tx_id: header.tx_id,
19682                            },
19683                        })
19684                    }
19685                    0x2c2f47fd8f924e52 => {
19686                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19687                        let mut req = fidl::new_empty!(
19688                            fidl::encoding::EmptyPayload,
19689                            fidl::encoding::DefaultFuchsiaResourceDialect
19690                        );
19691                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19692                        let control_handle =
19693                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19694                        Ok(BaseNetworkSocketRequest::GetCookie {
19695                            responder: BaseNetworkSocketGetCookieResponder {
19696                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19697                                tx_id: header.tx_id,
19698                            },
19699                        })
19700                    }
19701                    0x4bc6400ae92125d => {
19702                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19703                        let mut req = fidl::new_empty!(
19704                            BaseNetworkSocketBindRequest,
19705                            fidl::encoding::DefaultFuchsiaResourceDialect
19706                        );
19707                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
19708                        let control_handle =
19709                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19710                        Ok(BaseNetworkSocketRequest::Bind {
19711                            addr: req.addr,
19712
19713                            responder: BaseNetworkSocketBindResponder {
19714                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19715                                tx_id: header.tx_id,
19716                            },
19717                        })
19718                    }
19719                    0x5f05f19bfdd38871 => {
19720                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19721                        let mut req = fidl::new_empty!(
19722                            BaseNetworkSocketConnectRequest,
19723                            fidl::encoding::DefaultFuchsiaResourceDialect
19724                        );
19725                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
19726                        let control_handle =
19727                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19728                        Ok(BaseNetworkSocketRequest::Connect {
19729                            addr: req.addr,
19730
19731                            responder: BaseNetworkSocketConnectResponder {
19732                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19733                                tx_id: header.tx_id,
19734                            },
19735                        })
19736                    }
19737                    0x74e63b91f7b29b2 => {
19738                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19739                        let mut req = fidl::new_empty!(
19740                            fidl::encoding::EmptyPayload,
19741                            fidl::encoding::DefaultFuchsiaResourceDialect
19742                        );
19743                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19744                        let control_handle =
19745                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19746                        Ok(BaseNetworkSocketRequest::Disconnect {
19747                            responder: BaseNetworkSocketDisconnectResponder {
19748                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19749                                tx_id: header.tx_id,
19750                            },
19751                        })
19752                    }
19753                    0x475f23f84a1a4f85 => {
19754                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19755                        let mut req = fidl::new_empty!(
19756                            fidl::encoding::EmptyPayload,
19757                            fidl::encoding::DefaultFuchsiaResourceDialect
19758                        );
19759                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19760                        let control_handle =
19761                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19762                        Ok(BaseNetworkSocketRequest::GetSockName {
19763                            responder: BaseNetworkSocketGetSockNameResponder {
19764                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19765                                tx_id: header.tx_id,
19766                            },
19767                        })
19768                    }
19769                    0x1ffecf4bd5b6432e => {
19770                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19771                        let mut req = fidl::new_empty!(
19772                            fidl::encoding::EmptyPayload,
19773                            fidl::encoding::DefaultFuchsiaResourceDialect
19774                        );
19775                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19776                        let control_handle =
19777                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19778                        Ok(BaseNetworkSocketRequest::GetPeerName {
19779                            responder: BaseNetworkSocketGetPeerNameResponder {
19780                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19781                                tx_id: header.tx_id,
19782                            },
19783                        })
19784                    }
19785                    0x247f38b6db68c336 => {
19786                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19787                        let mut req = fidl::new_empty!(
19788                            BaseNetworkSocketShutdownRequest,
19789                            fidl::encoding::DefaultFuchsiaResourceDialect
19790                        );
19791                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
19792                        let control_handle =
19793                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19794                        Ok(BaseNetworkSocketRequest::Shutdown {
19795                            mode: req.mode,
19796
19797                            responder: BaseNetworkSocketShutdownResponder {
19798                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19799                                tx_id: header.tx_id,
19800                            },
19801                        })
19802                    }
19803                    0x995c600475b6d46 => {
19804                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19805                        let mut req = fidl::new_empty!(
19806                            BaseNetworkSocketSetIpTypeOfServiceRequest,
19807                            fidl::encoding::DefaultFuchsiaResourceDialect
19808                        );
19809                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
19810                        let control_handle =
19811                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19812                        Ok(BaseNetworkSocketRequest::SetIpTypeOfService {
19813                            value: req.value,
19814
19815                            responder: BaseNetworkSocketSetIpTypeOfServiceResponder {
19816                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19817                                tx_id: header.tx_id,
19818                            },
19819                        })
19820                    }
19821                    0x3814a04259f75fcb => {
19822                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19823                        let mut req = fidl::new_empty!(
19824                            fidl::encoding::EmptyPayload,
19825                            fidl::encoding::DefaultFuchsiaResourceDialect
19826                        );
19827                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19828                        let control_handle =
19829                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19830                        Ok(BaseNetworkSocketRequest::GetIpTypeOfService {
19831                            responder: BaseNetworkSocketGetIpTypeOfServiceResponder {
19832                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19833                                tx_id: header.tx_id,
19834                            },
19835                        })
19836                    }
19837                    0x29e2424b433ae1ef => {
19838                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19839                        let mut req = fidl::new_empty!(
19840                            BaseNetworkSocketSetIpTtlRequest,
19841                            fidl::encoding::DefaultFuchsiaResourceDialect
19842                        );
19843                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
19844                        let control_handle =
19845                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19846                        Ok(BaseNetworkSocketRequest::SetIpTtl {
19847                            value: req.value,
19848
19849                            responder: BaseNetworkSocketSetIpTtlResponder {
19850                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19851                                tx_id: header.tx_id,
19852                            },
19853                        })
19854                    }
19855                    0x47e47fa1f24da471 => {
19856                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19857                        let mut req = fidl::new_empty!(
19858                            fidl::encoding::EmptyPayload,
19859                            fidl::encoding::DefaultFuchsiaResourceDialect
19860                        );
19861                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19862                        let control_handle =
19863                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19864                        Ok(BaseNetworkSocketRequest::GetIpTtl {
19865                            responder: BaseNetworkSocketGetIpTtlResponder {
19866                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19867                                tx_id: header.tx_id,
19868                            },
19869                        })
19870                    }
19871                    0x392d16bee20c0e16 => {
19872                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19873                        let mut req = fidl::new_empty!(
19874                            BaseNetworkSocketSetIpPacketInfoRequest,
19875                            fidl::encoding::DefaultFuchsiaResourceDialect
19876                        );
19877                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
19878                        let control_handle =
19879                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19880                        Ok(BaseNetworkSocketRequest::SetIpPacketInfo {
19881                            value: req.value,
19882
19883                            responder: BaseNetworkSocketSetIpPacketInfoResponder {
19884                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19885                                tx_id: header.tx_id,
19886                            },
19887                        })
19888                    }
19889                    0x54b505f242280740 => {
19890                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19891                        let mut req = fidl::new_empty!(
19892                            fidl::encoding::EmptyPayload,
19893                            fidl::encoding::DefaultFuchsiaResourceDialect
19894                        );
19895                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19896                        let control_handle =
19897                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19898                        Ok(BaseNetworkSocketRequest::GetIpPacketInfo {
19899                            responder: BaseNetworkSocketGetIpPacketInfoResponder {
19900                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19901                                tx_id: header.tx_id,
19902                            },
19903                        })
19904                    }
19905                    0x6c4f6714995f84ef => {
19906                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19907                        let mut req = fidl::new_empty!(
19908                            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
19909                            fidl::encoding::DefaultFuchsiaResourceDialect
19910                        );
19911                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
19912                        let control_handle =
19913                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19914                        Ok(BaseNetworkSocketRequest::SetIpReceiveTypeOfService {
19915                            value: req.value,
19916
19917                            responder: BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
19918                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19919                                tx_id: header.tx_id,
19920                            },
19921                        })
19922                    }
19923                    0x4158ba7dc2795960 => {
19924                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19925                        let mut req = fidl::new_empty!(
19926                            fidl::encoding::EmptyPayload,
19927                            fidl::encoding::DefaultFuchsiaResourceDialect
19928                        );
19929                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19930                        let control_handle =
19931                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19932                        Ok(BaseNetworkSocketRequest::GetIpReceiveTypeOfService {
19933                            responder: BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
19934                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19935                                tx_id: header.tx_id,
19936                            },
19937                        })
19938                    }
19939                    0x46f15be0ce0ab82b => {
19940                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19941                        let mut req = fidl::new_empty!(
19942                            BaseNetworkSocketSetIpReceiveTtlRequest,
19943                            fidl::encoding::DefaultFuchsiaResourceDialect
19944                        );
19945                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
19946                        let control_handle =
19947                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19948                        Ok(BaseNetworkSocketRequest::SetIpReceiveTtl {
19949                            value: req.value,
19950
19951                            responder: BaseNetworkSocketSetIpReceiveTtlResponder {
19952                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19953                                tx_id: header.tx_id,
19954                            },
19955                        })
19956                    }
19957                    0x678ddd5a5dfa2eb5 => {
19958                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19959                        let mut req = fidl::new_empty!(
19960                            fidl::encoding::EmptyPayload,
19961                            fidl::encoding::DefaultFuchsiaResourceDialect
19962                        );
19963                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19964                        let control_handle =
19965                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19966                        Ok(BaseNetworkSocketRequest::GetIpReceiveTtl {
19967                            responder: BaseNetworkSocketGetIpReceiveTtlResponder {
19968                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19969                                tx_id: header.tx_id,
19970                            },
19971                        })
19972                    }
19973                    0x752fbfa9b12befe => {
19974                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19975                        let mut req = fidl::new_empty!(
19976                            BaseNetworkSocketSetIpMulticastInterfaceRequest,
19977                            fidl::encoding::DefaultFuchsiaResourceDialect
19978                        );
19979                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
19980                        let control_handle =
19981                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
19982                        Ok(BaseNetworkSocketRequest::SetIpMulticastInterface {
19983                            iface: req.iface,
19984                            address: req.address,
19985
19986                            responder: BaseNetworkSocketSetIpMulticastInterfaceResponder {
19987                                control_handle: std::mem::ManuallyDrop::new(control_handle),
19988                                tx_id: header.tx_id,
19989                            },
19990                        })
19991                    }
19992                    0x320bd14c4df046c4 => {
19993                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
19994                        let mut req = fidl::new_empty!(
19995                            fidl::encoding::EmptyPayload,
19996                            fidl::encoding::DefaultFuchsiaResourceDialect
19997                        );
19998                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
19999                        let control_handle =
20000                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20001                        Ok(BaseNetworkSocketRequest::GetIpMulticastInterface {
20002                            responder: BaseNetworkSocketGetIpMulticastInterfaceResponder {
20003                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20004                                tx_id: header.tx_id,
20005                            },
20006                        })
20007                    }
20008                    0x63134d53772916a1 => {
20009                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20010                        let mut req = fidl::new_empty!(
20011                            BaseNetworkSocketSetIpMulticastTtlRequest,
20012                            fidl::encoding::DefaultFuchsiaResourceDialect
20013                        );
20014                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
20015                        let control_handle =
20016                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20017                        Ok(BaseNetworkSocketRequest::SetIpMulticastTtl {
20018                            value: req.value,
20019
20020                            responder: BaseNetworkSocketSetIpMulticastTtlResponder {
20021                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20022                                tx_id: header.tx_id,
20023                            },
20024                        })
20025                    }
20026                    0x4665cd378f39e1a => {
20027                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20028                        let mut req = fidl::new_empty!(
20029                            fidl::encoding::EmptyPayload,
20030                            fidl::encoding::DefaultFuchsiaResourceDialect
20031                        );
20032                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20033                        let control_handle =
20034                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20035                        Ok(BaseNetworkSocketRequest::GetIpMulticastTtl {
20036                            responder: BaseNetworkSocketGetIpMulticastTtlResponder {
20037                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20038                                tx_id: header.tx_id,
20039                            },
20040                        })
20041                    }
20042                    0x20c55c11f00943ea => {
20043                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20044                        let mut req = fidl::new_empty!(
20045                            BaseNetworkSocketSetIpMulticastLoopbackRequest,
20046                            fidl::encoding::DefaultFuchsiaResourceDialect
20047                        );
20048                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
20049                        let control_handle =
20050                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20051                        Ok(BaseNetworkSocketRequest::SetIpMulticastLoopback {
20052                            value: req.value,
20053
20054                            responder: BaseNetworkSocketSetIpMulticastLoopbackResponder {
20055                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20056                                tx_id: header.tx_id,
20057                            },
20058                        })
20059                    }
20060                    0x3b6b26ff558298f2 => {
20061                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20062                        let mut req = fidl::new_empty!(
20063                            fidl::encoding::EmptyPayload,
20064                            fidl::encoding::DefaultFuchsiaResourceDialect
20065                        );
20066                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20067                        let control_handle =
20068                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20069                        Ok(BaseNetworkSocketRequest::GetIpMulticastLoopback {
20070                            responder: BaseNetworkSocketGetIpMulticastLoopbackResponder {
20071                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20072                                tx_id: header.tx_id,
20073                            },
20074                        })
20075                    }
20076                    0x76bc7df115a3b4d0 => {
20077                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20078                        let mut req = fidl::new_empty!(
20079                            BaseNetworkSocketAddIpMembershipRequest,
20080                            fidl::encoding::DefaultFuchsiaResourceDialect
20081                        );
20082                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20083                        let control_handle =
20084                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20085                        Ok(BaseNetworkSocketRequest::AddIpMembership {
20086                            membership: req.membership,
20087
20088                            responder: BaseNetworkSocketAddIpMembershipResponder {
20089                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20090                                tx_id: header.tx_id,
20091                            },
20092                        })
20093                    }
20094                    0x2888f3099188d03 => {
20095                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20096                        let mut req = fidl::new_empty!(
20097                            BaseNetworkSocketDropIpMembershipRequest,
20098                            fidl::encoding::DefaultFuchsiaResourceDialect
20099                        );
20100                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20101                        let control_handle =
20102                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20103                        Ok(BaseNetworkSocketRequest::DropIpMembership {
20104                            membership: req.membership,
20105
20106                            responder: BaseNetworkSocketDropIpMembershipResponder {
20107                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20108                                tx_id: header.tx_id,
20109                            },
20110                        })
20111                    }
20112                    0x1ae532b0c066e3a0 => {
20113                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20114                        let mut req = fidl::new_empty!(
20115                            BaseNetworkSocketSetIpTransparentRequest,
20116                            fidl::encoding::DefaultFuchsiaResourceDialect
20117                        );
20118                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
20119                        let control_handle =
20120                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20121                        Ok(BaseNetworkSocketRequest::SetIpTransparent {
20122                            value: req.value,
20123
20124                            responder: BaseNetworkSocketSetIpTransparentResponder {
20125                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20126                                tx_id: header.tx_id,
20127                            },
20128                        })
20129                    }
20130                    0x51d43695962ebfb5 => {
20131                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20132                        let mut req = fidl::new_empty!(
20133                            fidl::encoding::EmptyPayload,
20134                            fidl::encoding::DefaultFuchsiaResourceDialect
20135                        );
20136                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20137                        let control_handle =
20138                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20139                        Ok(BaseNetworkSocketRequest::GetIpTransparent {
20140                            responder: BaseNetworkSocketGetIpTransparentResponder {
20141                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20142                                tx_id: header.tx_id,
20143                            },
20144                        })
20145                    }
20146                    0x4722b4ce52f7840 => {
20147                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20148                        let mut req = fidl::new_empty!(
20149                            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
20150                            fidl::encoding::DefaultFuchsiaResourceDialect
20151                        );
20152                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
20153                        let control_handle =
20154                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20155                        Ok(BaseNetworkSocketRequest::SetIpReceiveOriginalDestinationAddress {
20156                            value: req.value,
20157
20158                            responder:
20159                                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
20160                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
20161                                    tx_id: header.tx_id,
20162                                },
20163                        })
20164                    }
20165                    0x2a0e7dc5d6bfdfe9 => {
20166                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20167                        let mut req = fidl::new_empty!(
20168                            fidl::encoding::EmptyPayload,
20169                            fidl::encoding::DefaultFuchsiaResourceDialect
20170                        );
20171                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20172                        let control_handle =
20173                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20174                        Ok(BaseNetworkSocketRequest::GetIpReceiveOriginalDestinationAddress {
20175                            responder:
20176                                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
20177                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
20178                                    tx_id: header.tx_id,
20179                                },
20180                        })
20181                    }
20182                    0x7c94727acb4ea4b3 => {
20183                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20184                        let mut req = fidl::new_empty!(
20185                            BaseNetworkSocketAddIpv6MembershipRequest,
20186                            fidl::encoding::DefaultFuchsiaResourceDialect
20187                        );
20188                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20189                        let control_handle =
20190                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20191                        Ok(BaseNetworkSocketRequest::AddIpv6Membership {
20192                            membership: req.membership,
20193
20194                            responder: BaseNetworkSocketAddIpv6MembershipResponder {
20195                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20196                                tx_id: header.tx_id,
20197                            },
20198                        })
20199                    }
20200                    0x42104c70ccaba304 => {
20201                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20202                        let mut req = fidl::new_empty!(
20203                            BaseNetworkSocketDropIpv6MembershipRequest,
20204                            fidl::encoding::DefaultFuchsiaResourceDialect
20205                        );
20206                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
20207                        let control_handle =
20208                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20209                        Ok(BaseNetworkSocketRequest::DropIpv6Membership {
20210                            membership: req.membership,
20211
20212                            responder: BaseNetworkSocketDropIpv6MembershipResponder {
20213                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20214                                tx_id: header.tx_id,
20215                            },
20216                        })
20217                    }
20218                    0x135f76db3774ab3b => {
20219                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20220                        let mut req = fidl::new_empty!(
20221                            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
20222                            fidl::encoding::DefaultFuchsiaResourceDialect
20223                        );
20224                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
20225                        let control_handle =
20226                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20227                        Ok(BaseNetworkSocketRequest::SetIpv6MulticastInterface {
20228                            value: req.value,
20229
20230                            responder: BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
20231                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20232                                tx_id: header.tx_id,
20233                            },
20234                        })
20235                    }
20236                    0x1f26fcdd348f1882 => {
20237                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20238                        let mut req = fidl::new_empty!(
20239                            fidl::encoding::EmptyPayload,
20240                            fidl::encoding::DefaultFuchsiaResourceDialect
20241                        );
20242                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20243                        let control_handle =
20244                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20245                        Ok(BaseNetworkSocketRequest::GetIpv6MulticastInterface {
20246                            responder: BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
20247                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20248                                tx_id: header.tx_id,
20249                            },
20250                        })
20251                    }
20252                    0x157d51e98f462859 => {
20253                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20254                        let mut req = fidl::new_empty!(
20255                            BaseNetworkSocketSetIpv6UnicastHopsRequest,
20256                            fidl::encoding::DefaultFuchsiaResourceDialect
20257                        );
20258                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
20259                        let control_handle =
20260                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20261                        Ok(BaseNetworkSocketRequest::SetIpv6UnicastHops {
20262                            value: req.value,
20263
20264                            responder: BaseNetworkSocketSetIpv6UnicastHopsResponder {
20265                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20266                                tx_id: header.tx_id,
20267                            },
20268                        })
20269                    }
20270                    0x21f4641cad8bd8d2 => {
20271                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20272                        let mut req = fidl::new_empty!(
20273                            fidl::encoding::EmptyPayload,
20274                            fidl::encoding::DefaultFuchsiaResourceDialect
20275                        );
20276                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20277                        let control_handle =
20278                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20279                        Ok(BaseNetworkSocketRequest::GetIpv6UnicastHops {
20280                            responder: BaseNetworkSocketGetIpv6UnicastHopsResponder {
20281                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20282                                tx_id: header.tx_id,
20283                            },
20284                        })
20285                    }
20286                    0x5c24808ed2e84a1e => {
20287                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20288                        let mut req = fidl::new_empty!(
20289                            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
20290                            fidl::encoding::DefaultFuchsiaResourceDialect
20291                        );
20292                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
20293                        let control_handle =
20294                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20295                        Ok(BaseNetworkSocketRequest::SetIpv6ReceiveHopLimit {
20296                            value: req.value,
20297
20298                            responder: BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
20299                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20300                                tx_id: header.tx_id,
20301                            },
20302                        })
20303                    }
20304                    0x341e06689885b4c0 => {
20305                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20306                        let mut req = fidl::new_empty!(
20307                            fidl::encoding::EmptyPayload,
20308                            fidl::encoding::DefaultFuchsiaResourceDialect
20309                        );
20310                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20311                        let control_handle =
20312                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20313                        Ok(BaseNetworkSocketRequest::GetIpv6ReceiveHopLimit {
20314                            responder: BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
20315                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20316                                tx_id: header.tx_id,
20317                            },
20318                        })
20319                    }
20320                    0x25b9cd4d181f82c1 => {
20321                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20322                        let mut req = fidl::new_empty!(
20323                            BaseNetworkSocketSetIpv6MulticastHopsRequest,
20324                            fidl::encoding::DefaultFuchsiaResourceDialect
20325                        );
20326                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
20327                        let control_handle =
20328                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20329                        Ok(BaseNetworkSocketRequest::SetIpv6MulticastHops {
20330                            value: req.value,
20331
20332                            responder: BaseNetworkSocketSetIpv6MulticastHopsResponder {
20333                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20334                                tx_id: header.tx_id,
20335                            },
20336                        })
20337                    }
20338                    0x52916948a365012a => {
20339                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20340                        let mut req = fidl::new_empty!(
20341                            fidl::encoding::EmptyPayload,
20342                            fidl::encoding::DefaultFuchsiaResourceDialect
20343                        );
20344                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20345                        let control_handle =
20346                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20347                        Ok(BaseNetworkSocketRequest::GetIpv6MulticastHops {
20348                            responder: BaseNetworkSocketGetIpv6MulticastHopsResponder {
20349                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20350                                tx_id: header.tx_id,
20351                            },
20352                        })
20353                    }
20354                    0x55701c409ff41b40 => {
20355                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20356                        let mut req = fidl::new_empty!(
20357                            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
20358                            fidl::encoding::DefaultFuchsiaResourceDialect
20359                        );
20360                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
20361                        let control_handle =
20362                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20363                        Ok(BaseNetworkSocketRequest::SetIpv6MulticastLoopback {
20364                            value: req.value,
20365
20366                            responder: BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
20367                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20368                                tx_id: header.tx_id,
20369                            },
20370                        })
20371                    }
20372                    0x4415b701fde319c3 => {
20373                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20374                        let mut req = fidl::new_empty!(
20375                            fidl::encoding::EmptyPayload,
20376                            fidl::encoding::DefaultFuchsiaResourceDialect
20377                        );
20378                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20379                        let control_handle =
20380                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20381                        Ok(BaseNetworkSocketRequest::GetIpv6MulticastLoopback {
20382                            responder: BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
20383                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20384                                tx_id: header.tx_id,
20385                            },
20386                        })
20387                    }
20388                    0x4873f1364758cbba => {
20389                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20390                        let mut req = fidl::new_empty!(
20391                            BaseNetworkSocketSetIpv6OnlyRequest,
20392                            fidl::encoding::DefaultFuchsiaResourceDialect
20393                        );
20394                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
20395                        let control_handle =
20396                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20397                        Ok(BaseNetworkSocketRequest::SetIpv6Only {
20398                            value: req.value,
20399
20400                            responder: BaseNetworkSocketSetIpv6OnlyResponder {
20401                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20402                                tx_id: header.tx_id,
20403                            },
20404                        })
20405                    }
20406                    0x4aa3340a1a26b89c => {
20407                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20408                        let mut req = fidl::new_empty!(
20409                            fidl::encoding::EmptyPayload,
20410                            fidl::encoding::DefaultFuchsiaResourceDialect
20411                        );
20412                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20413                        let control_handle =
20414                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20415                        Ok(BaseNetworkSocketRequest::GetIpv6Only {
20416                            responder: BaseNetworkSocketGetIpv6OnlyResponder {
20417                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20418                                tx_id: header.tx_id,
20419                            },
20420                        })
20421                    }
20422                    0x58f07c8788d099a0 => {
20423                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20424                        let mut req = fidl::new_empty!(
20425                            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
20426                            fidl::encoding::DefaultFuchsiaResourceDialect
20427                        );
20428                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
20429                        let control_handle =
20430                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20431                        Ok(BaseNetworkSocketRequest::SetIpv6ReceiveTrafficClass {
20432                            value: req.value,
20433
20434                            responder: BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
20435                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20436                                tx_id: header.tx_id,
20437                            },
20438                        })
20439                    }
20440                    0x2e334df1da553ffa => {
20441                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20442                        let mut req = fidl::new_empty!(
20443                            fidl::encoding::EmptyPayload,
20444                            fidl::encoding::DefaultFuchsiaResourceDialect
20445                        );
20446                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20447                        let control_handle =
20448                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20449                        Ok(BaseNetworkSocketRequest::GetIpv6ReceiveTrafficClass {
20450                            responder: BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
20451                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20452                                tx_id: header.tx_id,
20453                            },
20454                        })
20455                    }
20456                    0x6af077800c5a0b4f => {
20457                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20458                        let mut req = fidl::new_empty!(
20459                            BaseNetworkSocketSetIpv6TrafficClassRequest,
20460                            fidl::encoding::DefaultFuchsiaResourceDialect
20461                        );
20462                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
20463                        let control_handle =
20464                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20465                        Ok(BaseNetworkSocketRequest::SetIpv6TrafficClass {
20466                            value: req.value,
20467
20468                            responder: BaseNetworkSocketSetIpv6TrafficClassResponder {
20469                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20470                                tx_id: header.tx_id,
20471                            },
20472                        })
20473                    }
20474                    0x6baf6eed8fc2f04 => {
20475                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20476                        let mut req = fidl::new_empty!(
20477                            fidl::encoding::EmptyPayload,
20478                            fidl::encoding::DefaultFuchsiaResourceDialect
20479                        );
20480                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20481                        let control_handle =
20482                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20483                        Ok(BaseNetworkSocketRequest::GetIpv6TrafficClass {
20484                            responder: BaseNetworkSocketGetIpv6TrafficClassResponder {
20485                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20486                                tx_id: header.tx_id,
20487                            },
20488                        })
20489                    }
20490                    0x19259775b1a92768 => {
20491                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20492                        let mut req = fidl::new_empty!(
20493                            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
20494                            fidl::encoding::DefaultFuchsiaResourceDialect
20495                        );
20496                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
20497                        let control_handle =
20498                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20499                        Ok(BaseNetworkSocketRequest::SetIpv6ReceivePacketInfo {
20500                            value: req.value,
20501
20502                            responder: BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
20503                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20504                                tx_id: header.tx_id,
20505                            },
20506                        })
20507                    }
20508                    0x7acd4a2775baec75 => {
20509                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20510                        let mut req = fidl::new_empty!(
20511                            fidl::encoding::EmptyPayload,
20512                            fidl::encoding::DefaultFuchsiaResourceDialect
20513                        );
20514                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20515                        let control_handle =
20516                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20517                        Ok(BaseNetworkSocketRequest::GetIpv6ReceivePacketInfo {
20518                            responder: BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
20519                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20520                                tx_id: header.tx_id,
20521                            },
20522                        })
20523                    }
20524                    0x38bf28f0dafdbac0 => {
20525                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
20526                        let mut req = fidl::new_empty!(
20527                            fidl::encoding::EmptyPayload,
20528                            fidl::encoding::DefaultFuchsiaResourceDialect
20529                        );
20530                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
20531                        let control_handle =
20532                            BaseNetworkSocketControlHandle { inner: this.inner.clone() };
20533                        Ok(BaseNetworkSocketRequest::GetOriginalDestination {
20534                            responder: BaseNetworkSocketGetOriginalDestinationResponder {
20535                                control_handle: std::mem::ManuallyDrop::new(control_handle),
20536                                tx_id: header.tx_id,
20537                            },
20538                        })
20539                    }
20540                    _ => Err(fidl::Error::UnknownOrdinal {
20541                        ordinal: header.ordinal,
20542                        protocol_name:
20543                            <BaseNetworkSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
20544                    }),
20545                }))
20546            },
20547        )
20548    }
20549}
20550
20551/// A network socket.
20552#[derive(Debug)]
20553pub enum BaseNetworkSocketRequest {
20554    Clone {
20555        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
20556        control_handle: BaseNetworkSocketControlHandle,
20557    },
20558    /// Terminates the connection.
20559    ///
20560    /// After calling `Close`, the client must not send any other requests.
20561    ///
20562    /// Servers, after sending the status response, should close the connection
20563    /// regardless of status and without sending an epitaph.
20564    ///
20565    /// Closing the client end of the channel should be semantically equivalent
20566    /// to calling `Close` without knowing when the close has completed or its
20567    /// status.
20568    Close {
20569        responder: BaseNetworkSocketCloseResponder,
20570    },
20571    Query {
20572        responder: BaseNetworkSocketQueryResponder,
20573    },
20574    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
20575    SetReuseAddress {
20576        value: bool,
20577        responder: BaseNetworkSocketSetReuseAddressResponder,
20578    },
20579    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
20580    GetReuseAddress {
20581        responder: BaseNetworkSocketGetReuseAddressResponder,
20582    },
20583    /// Get `SOL_SOCKET` -> `SO_ERROR`.
20584    /// Returns the last error if there is an error set on the socket.
20585    GetError {
20586        responder: BaseNetworkSocketGetErrorResponder,
20587    },
20588    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
20589    SetBroadcast {
20590        value: bool,
20591        responder: BaseNetworkSocketSetBroadcastResponder,
20592    },
20593    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
20594    GetBroadcast {
20595        responder: BaseNetworkSocketGetBroadcastResponder,
20596    },
20597    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
20598    SetSendBuffer {
20599        value_bytes: u64,
20600        responder: BaseNetworkSocketSetSendBufferResponder,
20601    },
20602    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
20603    GetSendBuffer {
20604        responder: BaseNetworkSocketGetSendBufferResponder,
20605    },
20606    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
20607    SetReceiveBuffer {
20608        value_bytes: u64,
20609        responder: BaseNetworkSocketSetReceiveBufferResponder,
20610    },
20611    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
20612    GetReceiveBuffer {
20613        responder: BaseNetworkSocketGetReceiveBufferResponder,
20614    },
20615    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
20616    SetKeepAlive {
20617        value: bool,
20618        responder: BaseNetworkSocketSetKeepAliveResponder,
20619    },
20620    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
20621    GetKeepAlive {
20622        responder: BaseNetworkSocketGetKeepAliveResponder,
20623    },
20624    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
20625    SetOutOfBandInline {
20626        value: bool,
20627        responder: BaseNetworkSocketSetOutOfBandInlineResponder,
20628    },
20629    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
20630    GetOutOfBandInline {
20631        responder: BaseNetworkSocketGetOutOfBandInlineResponder,
20632    },
20633    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
20634    SetNoCheck {
20635        value: bool,
20636        responder: BaseNetworkSocketSetNoCheckResponder,
20637    },
20638    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
20639    GetNoCheck {
20640        responder: BaseNetworkSocketGetNoCheckResponder,
20641    },
20642    /// Set `SOL_SOCKET` -> `SO_LINGER`.
20643    SetLinger {
20644        linger: bool,
20645        length_secs: u32,
20646        responder: BaseNetworkSocketSetLingerResponder,
20647    },
20648    /// Get `SOL_SOCKET` -> `SO_LINGER`.
20649    GetLinger {
20650        responder: BaseNetworkSocketGetLingerResponder,
20651    },
20652    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
20653    SetReusePort {
20654        value: bool,
20655        responder: BaseNetworkSocketSetReusePortResponder,
20656    },
20657    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
20658    GetReusePort {
20659        responder: BaseNetworkSocketGetReusePortResponder,
20660    },
20661    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
20662    GetAcceptConn {
20663        responder: BaseNetworkSocketGetAcceptConnResponder,
20664    },
20665    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
20666    SetBindToDevice {
20667        value: String,
20668        responder: BaseNetworkSocketSetBindToDeviceResponder,
20669    },
20670    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
20671    GetBindToDevice {
20672        responder: BaseNetworkSocketGetBindToDeviceResponder,
20673    },
20674    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
20675    /// If `value` is 0, this clears the bound interface.
20676    SetBindToInterfaceIndex {
20677        value: u64,
20678        responder: BaseNetworkSocketSetBindToInterfaceIndexResponder,
20679    },
20680    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
20681    GetBindToInterfaceIndex {
20682        responder: BaseNetworkSocketGetBindToInterfaceIndexResponder,
20683    },
20684    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
20685    SetTimestamp {
20686        value: TimestampOption,
20687        responder: BaseNetworkSocketSetTimestampResponder,
20688    },
20689    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
20690    GetTimestamp {
20691        responder: BaseNetworkSocketGetTimestampResponder,
20692    },
20693    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
20694    /// unlike the standard SO_MARK, this API has multiple mark domains and each
20695    /// mark can be set independently in each domain.
20696    SetMark {
20697        domain: fidl_fuchsia_net::MarkDomain,
20698        mark: OptionalUint32,
20699        responder: BaseNetworkSocketSetMarkResponder,
20700    },
20701    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
20702    /// unlike the standard SO_MARK, this API has multiple mark domains and each
20703    /// mark can be retrieved independently in each domain.
20704    GetMark {
20705        domain: fidl_fuchsia_net::MarkDomain,
20706        responder: BaseNetworkSocketGetMarkResponder,
20707    },
20708    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
20709    GetCookie {
20710        responder: BaseNetworkSocketGetCookieResponder,
20711    },
20712    /// Sets the local address used for the socket.
20713    Bind {
20714        addr: fidl_fuchsia_net::SocketAddress,
20715        responder: BaseNetworkSocketBindResponder,
20716    },
20717    /// Initiates a connection to a remote address.
20718    Connect {
20719        addr: fidl_fuchsia_net::SocketAddress,
20720        responder: BaseNetworkSocketConnectResponder,
20721    },
20722    /// Clears connection information from this socket.
20723    Disconnect {
20724        responder: BaseNetworkSocketDisconnectResponder,
20725    },
20726    /// Retrieves the local socket address.
20727    GetSockName {
20728        responder: BaseNetworkSocketGetSockNameResponder,
20729    },
20730    /// Retrieves the remote socket address.
20731    GetPeerName {
20732        responder: BaseNetworkSocketGetPeerNameResponder,
20733    },
20734    /// Shuts down part of the socket.
20735    Shutdown {
20736        mode: ShutdownMode,
20737        responder: BaseNetworkSocketShutdownResponder,
20738    },
20739    /// Set `SOL_IP` -> `IP_TOS`.
20740    SetIpTypeOfService {
20741        value: u8,
20742        responder: BaseNetworkSocketSetIpTypeOfServiceResponder,
20743    },
20744    /// Get `SOL_IP` -> `IP_TOS`.
20745    GetIpTypeOfService {
20746        responder: BaseNetworkSocketGetIpTypeOfServiceResponder,
20747    },
20748    /// Set `SOL_IP` -> `IP_TTL`.
20749    SetIpTtl {
20750        value: OptionalUint8,
20751        responder: BaseNetworkSocketSetIpTtlResponder,
20752    },
20753    /// Get `SOL_IP` -> `IP_TTL`.
20754    GetIpTtl {
20755        responder: BaseNetworkSocketGetIpTtlResponder,
20756    },
20757    /// Set `SOL_IP` -> `IP_PKTINFO`.
20758    SetIpPacketInfo {
20759        value: bool,
20760        responder: BaseNetworkSocketSetIpPacketInfoResponder,
20761    },
20762    /// Get `SOL_IP` -> `IP_PKTINFO`.
20763    GetIpPacketInfo {
20764        responder: BaseNetworkSocketGetIpPacketInfoResponder,
20765    },
20766    /// Set `SOL_IP` -> `IP_RECVTOS`.
20767    SetIpReceiveTypeOfService {
20768        value: bool,
20769        responder: BaseNetworkSocketSetIpReceiveTypeOfServiceResponder,
20770    },
20771    /// Get `SOL_IP` -> `IP_RECVTOS`.
20772    GetIpReceiveTypeOfService {
20773        responder: BaseNetworkSocketGetIpReceiveTypeOfServiceResponder,
20774    },
20775    /// Set `SOL_IP` -> `IP_RECVTTL`.
20776    SetIpReceiveTtl {
20777        value: bool,
20778        responder: BaseNetworkSocketSetIpReceiveTtlResponder,
20779    },
20780    /// Get `SOL_IP` -> `IP_RECVTTL`.
20781    GetIpReceiveTtl {
20782        responder: BaseNetworkSocketGetIpReceiveTtlResponder,
20783    },
20784    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
20785    SetIpMulticastInterface {
20786        iface: u64,
20787        address: fidl_fuchsia_net::Ipv4Address,
20788        responder: BaseNetworkSocketSetIpMulticastInterfaceResponder,
20789    },
20790    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
20791    GetIpMulticastInterface {
20792        responder: BaseNetworkSocketGetIpMulticastInterfaceResponder,
20793    },
20794    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
20795    SetIpMulticastTtl {
20796        value: OptionalUint8,
20797        responder: BaseNetworkSocketSetIpMulticastTtlResponder,
20798    },
20799    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
20800    GetIpMulticastTtl {
20801        responder: BaseNetworkSocketGetIpMulticastTtlResponder,
20802    },
20803    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
20804    SetIpMulticastLoopback {
20805        value: bool,
20806        responder: BaseNetworkSocketSetIpMulticastLoopbackResponder,
20807    },
20808    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
20809    GetIpMulticastLoopback {
20810        responder: BaseNetworkSocketGetIpMulticastLoopbackResponder,
20811    },
20812    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
20813    AddIpMembership {
20814        membership: IpMulticastMembership,
20815        responder: BaseNetworkSocketAddIpMembershipResponder,
20816    },
20817    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
20818    DropIpMembership {
20819        membership: IpMulticastMembership,
20820        responder: BaseNetworkSocketDropIpMembershipResponder,
20821    },
20822    /// Set `SOL_IP` -> `IP_TRANSPARENT`
20823    SetIpTransparent {
20824        value: bool,
20825        responder: BaseNetworkSocketSetIpTransparentResponder,
20826    },
20827    /// Get `SOL_IP` -> `IP_TRANSPARENT`
20828    GetIpTransparent {
20829        responder: BaseNetworkSocketGetIpTransparentResponder,
20830    },
20831    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
20832    SetIpReceiveOriginalDestinationAddress {
20833        value: bool,
20834        responder: BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder,
20835    },
20836    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
20837    GetIpReceiveOriginalDestinationAddress {
20838        responder: BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder,
20839    },
20840    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
20841    AddIpv6Membership {
20842        membership: Ipv6MulticastMembership,
20843        responder: BaseNetworkSocketAddIpv6MembershipResponder,
20844    },
20845    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
20846    DropIpv6Membership {
20847        membership: Ipv6MulticastMembership,
20848        responder: BaseNetworkSocketDropIpv6MembershipResponder,
20849    },
20850    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
20851    SetIpv6MulticastInterface {
20852        value: u64,
20853        responder: BaseNetworkSocketSetIpv6MulticastInterfaceResponder,
20854    },
20855    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
20856    GetIpv6MulticastInterface {
20857        responder: BaseNetworkSocketGetIpv6MulticastInterfaceResponder,
20858    },
20859    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
20860    SetIpv6UnicastHops {
20861        value: OptionalUint8,
20862        responder: BaseNetworkSocketSetIpv6UnicastHopsResponder,
20863    },
20864    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
20865    GetIpv6UnicastHops {
20866        responder: BaseNetworkSocketGetIpv6UnicastHopsResponder,
20867    },
20868    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
20869    SetIpv6ReceiveHopLimit {
20870        value: bool,
20871        responder: BaseNetworkSocketSetIpv6ReceiveHopLimitResponder,
20872    },
20873    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
20874    GetIpv6ReceiveHopLimit {
20875        responder: BaseNetworkSocketGetIpv6ReceiveHopLimitResponder,
20876    },
20877    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
20878    SetIpv6MulticastHops {
20879        value: OptionalUint8,
20880        responder: BaseNetworkSocketSetIpv6MulticastHopsResponder,
20881    },
20882    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
20883    GetIpv6MulticastHops {
20884        responder: BaseNetworkSocketGetIpv6MulticastHopsResponder,
20885    },
20886    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
20887    SetIpv6MulticastLoopback {
20888        value: bool,
20889        responder: BaseNetworkSocketSetIpv6MulticastLoopbackResponder,
20890    },
20891    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
20892    GetIpv6MulticastLoopback {
20893        responder: BaseNetworkSocketGetIpv6MulticastLoopbackResponder,
20894    },
20895    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
20896    SetIpv6Only {
20897        value: bool,
20898        responder: BaseNetworkSocketSetIpv6OnlyResponder,
20899    },
20900    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
20901    GetIpv6Only {
20902        responder: BaseNetworkSocketGetIpv6OnlyResponder,
20903    },
20904    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
20905    SetIpv6ReceiveTrafficClass {
20906        value: bool,
20907        responder: BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder,
20908    },
20909    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
20910    GetIpv6ReceiveTrafficClass {
20911        responder: BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder,
20912    },
20913    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
20914    SetIpv6TrafficClass {
20915        value: OptionalUint8,
20916        responder: BaseNetworkSocketSetIpv6TrafficClassResponder,
20917    },
20918    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
20919    GetIpv6TrafficClass {
20920        responder: BaseNetworkSocketGetIpv6TrafficClassResponder,
20921    },
20922    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
20923    SetIpv6ReceivePacketInfo {
20924        value: bool,
20925        responder: BaseNetworkSocketSetIpv6ReceivePacketInfoResponder,
20926    },
20927    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
20928    GetIpv6ReceivePacketInfo {
20929        responder: BaseNetworkSocketGetIpv6ReceivePacketInfoResponder,
20930    },
20931    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
20932    GetOriginalDestination {
20933        responder: BaseNetworkSocketGetOriginalDestinationResponder,
20934    },
20935}
20936
20937impl BaseNetworkSocketRequest {
20938    #[allow(irrefutable_let_patterns)]
20939    pub fn into_clone(
20940        self,
20941    ) -> Option<(
20942        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
20943        BaseNetworkSocketControlHandle,
20944    )> {
20945        if let BaseNetworkSocketRequest::Clone { request, control_handle } = self {
20946            Some((request, control_handle))
20947        } else {
20948            None
20949        }
20950    }
20951
20952    #[allow(irrefutable_let_patterns)]
20953    pub fn into_close(self) -> Option<(BaseNetworkSocketCloseResponder)> {
20954        if let BaseNetworkSocketRequest::Close { responder } = self {
20955            Some((responder))
20956        } else {
20957            None
20958        }
20959    }
20960
20961    #[allow(irrefutable_let_patterns)]
20962    pub fn into_query(self) -> Option<(BaseNetworkSocketQueryResponder)> {
20963        if let BaseNetworkSocketRequest::Query { responder } = self {
20964            Some((responder))
20965        } else {
20966            None
20967        }
20968    }
20969
20970    #[allow(irrefutable_let_patterns)]
20971    pub fn into_set_reuse_address(
20972        self,
20973    ) -> Option<(bool, BaseNetworkSocketSetReuseAddressResponder)> {
20974        if let BaseNetworkSocketRequest::SetReuseAddress { value, responder } = self {
20975            Some((value, responder))
20976        } else {
20977            None
20978        }
20979    }
20980
20981    #[allow(irrefutable_let_patterns)]
20982    pub fn into_get_reuse_address(self) -> Option<(BaseNetworkSocketGetReuseAddressResponder)> {
20983        if let BaseNetworkSocketRequest::GetReuseAddress { responder } = self {
20984            Some((responder))
20985        } else {
20986            None
20987        }
20988    }
20989
20990    #[allow(irrefutable_let_patterns)]
20991    pub fn into_get_error(self) -> Option<(BaseNetworkSocketGetErrorResponder)> {
20992        if let BaseNetworkSocketRequest::GetError { responder } = self {
20993            Some((responder))
20994        } else {
20995            None
20996        }
20997    }
20998
20999    #[allow(irrefutable_let_patterns)]
21000    pub fn into_set_broadcast(self) -> Option<(bool, BaseNetworkSocketSetBroadcastResponder)> {
21001        if let BaseNetworkSocketRequest::SetBroadcast { value, responder } = self {
21002            Some((value, responder))
21003        } else {
21004            None
21005        }
21006    }
21007
21008    #[allow(irrefutable_let_patterns)]
21009    pub fn into_get_broadcast(self) -> Option<(BaseNetworkSocketGetBroadcastResponder)> {
21010        if let BaseNetworkSocketRequest::GetBroadcast { responder } = self {
21011            Some((responder))
21012        } else {
21013            None
21014        }
21015    }
21016
21017    #[allow(irrefutable_let_patterns)]
21018    pub fn into_set_send_buffer(self) -> Option<(u64, BaseNetworkSocketSetSendBufferResponder)> {
21019        if let BaseNetworkSocketRequest::SetSendBuffer { value_bytes, responder } = self {
21020            Some((value_bytes, responder))
21021        } else {
21022            None
21023        }
21024    }
21025
21026    #[allow(irrefutable_let_patterns)]
21027    pub fn into_get_send_buffer(self) -> Option<(BaseNetworkSocketGetSendBufferResponder)> {
21028        if let BaseNetworkSocketRequest::GetSendBuffer { responder } = self {
21029            Some((responder))
21030        } else {
21031            None
21032        }
21033    }
21034
21035    #[allow(irrefutable_let_patterns)]
21036    pub fn into_set_receive_buffer(
21037        self,
21038    ) -> Option<(u64, BaseNetworkSocketSetReceiveBufferResponder)> {
21039        if let BaseNetworkSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
21040            Some((value_bytes, responder))
21041        } else {
21042            None
21043        }
21044    }
21045
21046    #[allow(irrefutable_let_patterns)]
21047    pub fn into_get_receive_buffer(self) -> Option<(BaseNetworkSocketGetReceiveBufferResponder)> {
21048        if let BaseNetworkSocketRequest::GetReceiveBuffer { responder } = self {
21049            Some((responder))
21050        } else {
21051            None
21052        }
21053    }
21054
21055    #[allow(irrefutable_let_patterns)]
21056    pub fn into_set_keep_alive(self) -> Option<(bool, BaseNetworkSocketSetKeepAliveResponder)> {
21057        if let BaseNetworkSocketRequest::SetKeepAlive { value, responder } = self {
21058            Some((value, responder))
21059        } else {
21060            None
21061        }
21062    }
21063
21064    #[allow(irrefutable_let_patterns)]
21065    pub fn into_get_keep_alive(self) -> Option<(BaseNetworkSocketGetKeepAliveResponder)> {
21066        if let BaseNetworkSocketRequest::GetKeepAlive { responder } = self {
21067            Some((responder))
21068        } else {
21069            None
21070        }
21071    }
21072
21073    #[allow(irrefutable_let_patterns)]
21074    pub fn into_set_out_of_band_inline(
21075        self,
21076    ) -> Option<(bool, BaseNetworkSocketSetOutOfBandInlineResponder)> {
21077        if let BaseNetworkSocketRequest::SetOutOfBandInline { value, responder } = self {
21078            Some((value, responder))
21079        } else {
21080            None
21081        }
21082    }
21083
21084    #[allow(irrefutable_let_patterns)]
21085    pub fn into_get_out_of_band_inline(
21086        self,
21087    ) -> Option<(BaseNetworkSocketGetOutOfBandInlineResponder)> {
21088        if let BaseNetworkSocketRequest::GetOutOfBandInline { responder } = self {
21089            Some((responder))
21090        } else {
21091            None
21092        }
21093    }
21094
21095    #[allow(irrefutable_let_patterns)]
21096    pub fn into_set_no_check(self) -> Option<(bool, BaseNetworkSocketSetNoCheckResponder)> {
21097        if let BaseNetworkSocketRequest::SetNoCheck { value, responder } = self {
21098            Some((value, responder))
21099        } else {
21100            None
21101        }
21102    }
21103
21104    #[allow(irrefutable_let_patterns)]
21105    pub fn into_get_no_check(self) -> Option<(BaseNetworkSocketGetNoCheckResponder)> {
21106        if let BaseNetworkSocketRequest::GetNoCheck { responder } = self {
21107            Some((responder))
21108        } else {
21109            None
21110        }
21111    }
21112
21113    #[allow(irrefutable_let_patterns)]
21114    pub fn into_set_linger(self) -> Option<(bool, u32, BaseNetworkSocketSetLingerResponder)> {
21115        if let BaseNetworkSocketRequest::SetLinger { linger, length_secs, responder } = self {
21116            Some((linger, length_secs, responder))
21117        } else {
21118            None
21119        }
21120    }
21121
21122    #[allow(irrefutable_let_patterns)]
21123    pub fn into_get_linger(self) -> Option<(BaseNetworkSocketGetLingerResponder)> {
21124        if let BaseNetworkSocketRequest::GetLinger { responder } = self {
21125            Some((responder))
21126        } else {
21127            None
21128        }
21129    }
21130
21131    #[allow(irrefutable_let_patterns)]
21132    pub fn into_set_reuse_port(self) -> Option<(bool, BaseNetworkSocketSetReusePortResponder)> {
21133        if let BaseNetworkSocketRequest::SetReusePort { value, responder } = self {
21134            Some((value, responder))
21135        } else {
21136            None
21137        }
21138    }
21139
21140    #[allow(irrefutable_let_patterns)]
21141    pub fn into_get_reuse_port(self) -> Option<(BaseNetworkSocketGetReusePortResponder)> {
21142        if let BaseNetworkSocketRequest::GetReusePort { responder } = self {
21143            Some((responder))
21144        } else {
21145            None
21146        }
21147    }
21148
21149    #[allow(irrefutable_let_patterns)]
21150    pub fn into_get_accept_conn(self) -> Option<(BaseNetworkSocketGetAcceptConnResponder)> {
21151        if let BaseNetworkSocketRequest::GetAcceptConn { responder } = self {
21152            Some((responder))
21153        } else {
21154            None
21155        }
21156    }
21157
21158    #[allow(irrefutable_let_patterns)]
21159    pub fn into_set_bind_to_device(
21160        self,
21161    ) -> Option<(String, BaseNetworkSocketSetBindToDeviceResponder)> {
21162        if let BaseNetworkSocketRequest::SetBindToDevice { value, responder } = self {
21163            Some((value, responder))
21164        } else {
21165            None
21166        }
21167    }
21168
21169    #[allow(irrefutable_let_patterns)]
21170    pub fn into_get_bind_to_device(self) -> Option<(BaseNetworkSocketGetBindToDeviceResponder)> {
21171        if let BaseNetworkSocketRequest::GetBindToDevice { responder } = self {
21172            Some((responder))
21173        } else {
21174            None
21175        }
21176    }
21177
21178    #[allow(irrefutable_let_patterns)]
21179    pub fn into_set_bind_to_interface_index(
21180        self,
21181    ) -> Option<(u64, BaseNetworkSocketSetBindToInterfaceIndexResponder)> {
21182        if let BaseNetworkSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
21183            Some((value, responder))
21184        } else {
21185            None
21186        }
21187    }
21188
21189    #[allow(irrefutable_let_patterns)]
21190    pub fn into_get_bind_to_interface_index(
21191        self,
21192    ) -> Option<(BaseNetworkSocketGetBindToInterfaceIndexResponder)> {
21193        if let BaseNetworkSocketRequest::GetBindToInterfaceIndex { responder } = self {
21194            Some((responder))
21195        } else {
21196            None
21197        }
21198    }
21199
21200    #[allow(irrefutable_let_patterns)]
21201    pub fn into_set_timestamp(
21202        self,
21203    ) -> Option<(TimestampOption, BaseNetworkSocketSetTimestampResponder)> {
21204        if let BaseNetworkSocketRequest::SetTimestamp { value, responder } = self {
21205            Some((value, responder))
21206        } else {
21207            None
21208        }
21209    }
21210
21211    #[allow(irrefutable_let_patterns)]
21212    pub fn into_get_timestamp(self) -> Option<(BaseNetworkSocketGetTimestampResponder)> {
21213        if let BaseNetworkSocketRequest::GetTimestamp { responder } = self {
21214            Some((responder))
21215        } else {
21216            None
21217        }
21218    }
21219
21220    #[allow(irrefutable_let_patterns)]
21221    pub fn into_set_mark(
21222        self,
21223    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, BaseNetworkSocketSetMarkResponder)>
21224    {
21225        if let BaseNetworkSocketRequest::SetMark { domain, mark, responder } = self {
21226            Some((domain, mark, responder))
21227        } else {
21228            None
21229        }
21230    }
21231
21232    #[allow(irrefutable_let_patterns)]
21233    pub fn into_get_mark(
21234        self,
21235    ) -> Option<(fidl_fuchsia_net::MarkDomain, BaseNetworkSocketGetMarkResponder)> {
21236        if let BaseNetworkSocketRequest::GetMark { domain, responder } = self {
21237            Some((domain, responder))
21238        } else {
21239            None
21240        }
21241    }
21242
21243    #[allow(irrefutable_let_patterns)]
21244    pub fn into_get_cookie(self) -> Option<(BaseNetworkSocketGetCookieResponder)> {
21245        if let BaseNetworkSocketRequest::GetCookie { responder } = self {
21246            Some((responder))
21247        } else {
21248            None
21249        }
21250    }
21251
21252    #[allow(irrefutable_let_patterns)]
21253    pub fn into_bind(
21254        self,
21255    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseNetworkSocketBindResponder)> {
21256        if let BaseNetworkSocketRequest::Bind { addr, responder } = self {
21257            Some((addr, responder))
21258        } else {
21259            None
21260        }
21261    }
21262
21263    #[allow(irrefutable_let_patterns)]
21264    pub fn into_connect(
21265        self,
21266    ) -> Option<(fidl_fuchsia_net::SocketAddress, BaseNetworkSocketConnectResponder)> {
21267        if let BaseNetworkSocketRequest::Connect { addr, responder } = self {
21268            Some((addr, responder))
21269        } else {
21270            None
21271        }
21272    }
21273
21274    #[allow(irrefutable_let_patterns)]
21275    pub fn into_disconnect(self) -> Option<(BaseNetworkSocketDisconnectResponder)> {
21276        if let BaseNetworkSocketRequest::Disconnect { responder } = self {
21277            Some((responder))
21278        } else {
21279            None
21280        }
21281    }
21282
21283    #[allow(irrefutable_let_patterns)]
21284    pub fn into_get_sock_name(self) -> Option<(BaseNetworkSocketGetSockNameResponder)> {
21285        if let BaseNetworkSocketRequest::GetSockName { responder } = self {
21286            Some((responder))
21287        } else {
21288            None
21289        }
21290    }
21291
21292    #[allow(irrefutable_let_patterns)]
21293    pub fn into_get_peer_name(self) -> Option<(BaseNetworkSocketGetPeerNameResponder)> {
21294        if let BaseNetworkSocketRequest::GetPeerName { responder } = self {
21295            Some((responder))
21296        } else {
21297            None
21298        }
21299    }
21300
21301    #[allow(irrefutable_let_patterns)]
21302    pub fn into_shutdown(self) -> Option<(ShutdownMode, BaseNetworkSocketShutdownResponder)> {
21303        if let BaseNetworkSocketRequest::Shutdown { mode, responder } = self {
21304            Some((mode, responder))
21305        } else {
21306            None
21307        }
21308    }
21309
21310    #[allow(irrefutable_let_patterns)]
21311    pub fn into_set_ip_type_of_service(
21312        self,
21313    ) -> Option<(u8, BaseNetworkSocketSetIpTypeOfServiceResponder)> {
21314        if let BaseNetworkSocketRequest::SetIpTypeOfService { value, responder } = self {
21315            Some((value, responder))
21316        } else {
21317            None
21318        }
21319    }
21320
21321    #[allow(irrefutable_let_patterns)]
21322    pub fn into_get_ip_type_of_service(
21323        self,
21324    ) -> Option<(BaseNetworkSocketGetIpTypeOfServiceResponder)> {
21325        if let BaseNetworkSocketRequest::GetIpTypeOfService { responder } = self {
21326            Some((responder))
21327        } else {
21328            None
21329        }
21330    }
21331
21332    #[allow(irrefutable_let_patterns)]
21333    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, BaseNetworkSocketSetIpTtlResponder)> {
21334        if let BaseNetworkSocketRequest::SetIpTtl { value, responder } = self {
21335            Some((value, responder))
21336        } else {
21337            None
21338        }
21339    }
21340
21341    #[allow(irrefutable_let_patterns)]
21342    pub fn into_get_ip_ttl(self) -> Option<(BaseNetworkSocketGetIpTtlResponder)> {
21343        if let BaseNetworkSocketRequest::GetIpTtl { responder } = self {
21344            Some((responder))
21345        } else {
21346            None
21347        }
21348    }
21349
21350    #[allow(irrefutable_let_patterns)]
21351    pub fn into_set_ip_packet_info(
21352        self,
21353    ) -> Option<(bool, BaseNetworkSocketSetIpPacketInfoResponder)> {
21354        if let BaseNetworkSocketRequest::SetIpPacketInfo { value, responder } = self {
21355            Some((value, responder))
21356        } else {
21357            None
21358        }
21359    }
21360
21361    #[allow(irrefutable_let_patterns)]
21362    pub fn into_get_ip_packet_info(self) -> Option<(BaseNetworkSocketGetIpPacketInfoResponder)> {
21363        if let BaseNetworkSocketRequest::GetIpPacketInfo { responder } = self {
21364            Some((responder))
21365        } else {
21366            None
21367        }
21368    }
21369
21370    #[allow(irrefutable_let_patterns)]
21371    pub fn into_set_ip_receive_type_of_service(
21372        self,
21373    ) -> Option<(bool, BaseNetworkSocketSetIpReceiveTypeOfServiceResponder)> {
21374        if let BaseNetworkSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
21375            Some((value, responder))
21376        } else {
21377            None
21378        }
21379    }
21380
21381    #[allow(irrefutable_let_patterns)]
21382    pub fn into_get_ip_receive_type_of_service(
21383        self,
21384    ) -> Option<(BaseNetworkSocketGetIpReceiveTypeOfServiceResponder)> {
21385        if let BaseNetworkSocketRequest::GetIpReceiveTypeOfService { responder } = self {
21386            Some((responder))
21387        } else {
21388            None
21389        }
21390    }
21391
21392    #[allow(irrefutable_let_patterns)]
21393    pub fn into_set_ip_receive_ttl(
21394        self,
21395    ) -> Option<(bool, BaseNetworkSocketSetIpReceiveTtlResponder)> {
21396        if let BaseNetworkSocketRequest::SetIpReceiveTtl { value, responder } = self {
21397            Some((value, responder))
21398        } else {
21399            None
21400        }
21401    }
21402
21403    #[allow(irrefutable_let_patterns)]
21404    pub fn into_get_ip_receive_ttl(self) -> Option<(BaseNetworkSocketGetIpReceiveTtlResponder)> {
21405        if let BaseNetworkSocketRequest::GetIpReceiveTtl { responder } = self {
21406            Some((responder))
21407        } else {
21408            None
21409        }
21410    }
21411
21412    #[allow(irrefutable_let_patterns)]
21413    pub fn into_set_ip_multicast_interface(
21414        self,
21415    ) -> Option<(
21416        u64,
21417        fidl_fuchsia_net::Ipv4Address,
21418        BaseNetworkSocketSetIpMulticastInterfaceResponder,
21419    )> {
21420        if let BaseNetworkSocketRequest::SetIpMulticastInterface { iface, address, responder } =
21421            self
21422        {
21423            Some((iface, address, responder))
21424        } else {
21425            None
21426        }
21427    }
21428
21429    #[allow(irrefutable_let_patterns)]
21430    pub fn into_get_ip_multicast_interface(
21431        self,
21432    ) -> Option<(BaseNetworkSocketGetIpMulticastInterfaceResponder)> {
21433        if let BaseNetworkSocketRequest::GetIpMulticastInterface { responder } = self {
21434            Some((responder))
21435        } else {
21436            None
21437        }
21438    }
21439
21440    #[allow(irrefutable_let_patterns)]
21441    pub fn into_set_ip_multicast_ttl(
21442        self,
21443    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpMulticastTtlResponder)> {
21444        if let BaseNetworkSocketRequest::SetIpMulticastTtl { value, responder } = self {
21445            Some((value, responder))
21446        } else {
21447            None
21448        }
21449    }
21450
21451    #[allow(irrefutable_let_patterns)]
21452    pub fn into_get_ip_multicast_ttl(
21453        self,
21454    ) -> Option<(BaseNetworkSocketGetIpMulticastTtlResponder)> {
21455        if let BaseNetworkSocketRequest::GetIpMulticastTtl { responder } = self {
21456            Some((responder))
21457        } else {
21458            None
21459        }
21460    }
21461
21462    #[allow(irrefutable_let_patterns)]
21463    pub fn into_set_ip_multicast_loopback(
21464        self,
21465    ) -> Option<(bool, BaseNetworkSocketSetIpMulticastLoopbackResponder)> {
21466        if let BaseNetworkSocketRequest::SetIpMulticastLoopback { value, responder } = self {
21467            Some((value, responder))
21468        } else {
21469            None
21470        }
21471    }
21472
21473    #[allow(irrefutable_let_patterns)]
21474    pub fn into_get_ip_multicast_loopback(
21475        self,
21476    ) -> Option<(BaseNetworkSocketGetIpMulticastLoopbackResponder)> {
21477        if let BaseNetworkSocketRequest::GetIpMulticastLoopback { responder } = self {
21478            Some((responder))
21479        } else {
21480            None
21481        }
21482    }
21483
21484    #[allow(irrefutable_let_patterns)]
21485    pub fn into_add_ip_membership(
21486        self,
21487    ) -> Option<(IpMulticastMembership, BaseNetworkSocketAddIpMembershipResponder)> {
21488        if let BaseNetworkSocketRequest::AddIpMembership { membership, responder } = self {
21489            Some((membership, responder))
21490        } else {
21491            None
21492        }
21493    }
21494
21495    #[allow(irrefutable_let_patterns)]
21496    pub fn into_drop_ip_membership(
21497        self,
21498    ) -> Option<(IpMulticastMembership, BaseNetworkSocketDropIpMembershipResponder)> {
21499        if let BaseNetworkSocketRequest::DropIpMembership { membership, responder } = self {
21500            Some((membership, responder))
21501        } else {
21502            None
21503        }
21504    }
21505
21506    #[allow(irrefutable_let_patterns)]
21507    pub fn into_set_ip_transparent(
21508        self,
21509    ) -> Option<(bool, BaseNetworkSocketSetIpTransparentResponder)> {
21510        if let BaseNetworkSocketRequest::SetIpTransparent { value, responder } = self {
21511            Some((value, responder))
21512        } else {
21513            None
21514        }
21515    }
21516
21517    #[allow(irrefutable_let_patterns)]
21518    pub fn into_get_ip_transparent(self) -> Option<(BaseNetworkSocketGetIpTransparentResponder)> {
21519        if let BaseNetworkSocketRequest::GetIpTransparent { responder } = self {
21520            Some((responder))
21521        } else {
21522            None
21523        }
21524    }
21525
21526    #[allow(irrefutable_let_patterns)]
21527    pub fn into_set_ip_receive_original_destination_address(
21528        self,
21529    ) -> Option<(bool, BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder)> {
21530        if let BaseNetworkSocketRequest::SetIpReceiveOriginalDestinationAddress {
21531            value,
21532            responder,
21533        } = self
21534        {
21535            Some((value, responder))
21536        } else {
21537            None
21538        }
21539    }
21540
21541    #[allow(irrefutable_let_patterns)]
21542    pub fn into_get_ip_receive_original_destination_address(
21543        self,
21544    ) -> Option<(BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder)> {
21545        if let BaseNetworkSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } = self
21546        {
21547            Some((responder))
21548        } else {
21549            None
21550        }
21551    }
21552
21553    #[allow(irrefutable_let_patterns)]
21554    pub fn into_add_ipv6_membership(
21555        self,
21556    ) -> Option<(Ipv6MulticastMembership, BaseNetworkSocketAddIpv6MembershipResponder)> {
21557        if let BaseNetworkSocketRequest::AddIpv6Membership { membership, responder } = self {
21558            Some((membership, responder))
21559        } else {
21560            None
21561        }
21562    }
21563
21564    #[allow(irrefutable_let_patterns)]
21565    pub fn into_drop_ipv6_membership(
21566        self,
21567    ) -> Option<(Ipv6MulticastMembership, BaseNetworkSocketDropIpv6MembershipResponder)> {
21568        if let BaseNetworkSocketRequest::DropIpv6Membership { membership, responder } = self {
21569            Some((membership, responder))
21570        } else {
21571            None
21572        }
21573    }
21574
21575    #[allow(irrefutable_let_patterns)]
21576    pub fn into_set_ipv6_multicast_interface(
21577        self,
21578    ) -> Option<(u64, BaseNetworkSocketSetIpv6MulticastInterfaceResponder)> {
21579        if let BaseNetworkSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
21580            Some((value, responder))
21581        } else {
21582            None
21583        }
21584    }
21585
21586    #[allow(irrefutable_let_patterns)]
21587    pub fn into_get_ipv6_multicast_interface(
21588        self,
21589    ) -> Option<(BaseNetworkSocketGetIpv6MulticastInterfaceResponder)> {
21590        if let BaseNetworkSocketRequest::GetIpv6MulticastInterface { responder } = self {
21591            Some((responder))
21592        } else {
21593            None
21594        }
21595    }
21596
21597    #[allow(irrefutable_let_patterns)]
21598    pub fn into_set_ipv6_unicast_hops(
21599        self,
21600    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpv6UnicastHopsResponder)> {
21601        if let BaseNetworkSocketRequest::SetIpv6UnicastHops { value, responder } = self {
21602            Some((value, responder))
21603        } else {
21604            None
21605        }
21606    }
21607
21608    #[allow(irrefutable_let_patterns)]
21609    pub fn into_get_ipv6_unicast_hops(
21610        self,
21611    ) -> Option<(BaseNetworkSocketGetIpv6UnicastHopsResponder)> {
21612        if let BaseNetworkSocketRequest::GetIpv6UnicastHops { responder } = self {
21613            Some((responder))
21614        } else {
21615            None
21616        }
21617    }
21618
21619    #[allow(irrefutable_let_patterns)]
21620    pub fn into_set_ipv6_receive_hop_limit(
21621        self,
21622    ) -> Option<(bool, BaseNetworkSocketSetIpv6ReceiveHopLimitResponder)> {
21623        if let BaseNetworkSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
21624            Some((value, responder))
21625        } else {
21626            None
21627        }
21628    }
21629
21630    #[allow(irrefutable_let_patterns)]
21631    pub fn into_get_ipv6_receive_hop_limit(
21632        self,
21633    ) -> Option<(BaseNetworkSocketGetIpv6ReceiveHopLimitResponder)> {
21634        if let BaseNetworkSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
21635            Some((responder))
21636        } else {
21637            None
21638        }
21639    }
21640
21641    #[allow(irrefutable_let_patterns)]
21642    pub fn into_set_ipv6_multicast_hops(
21643        self,
21644    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpv6MulticastHopsResponder)> {
21645        if let BaseNetworkSocketRequest::SetIpv6MulticastHops { value, responder } = self {
21646            Some((value, responder))
21647        } else {
21648            None
21649        }
21650    }
21651
21652    #[allow(irrefutable_let_patterns)]
21653    pub fn into_get_ipv6_multicast_hops(
21654        self,
21655    ) -> Option<(BaseNetworkSocketGetIpv6MulticastHopsResponder)> {
21656        if let BaseNetworkSocketRequest::GetIpv6MulticastHops { responder } = self {
21657            Some((responder))
21658        } else {
21659            None
21660        }
21661    }
21662
21663    #[allow(irrefutable_let_patterns)]
21664    pub fn into_set_ipv6_multicast_loopback(
21665        self,
21666    ) -> Option<(bool, BaseNetworkSocketSetIpv6MulticastLoopbackResponder)> {
21667        if let BaseNetworkSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
21668            Some((value, responder))
21669        } else {
21670            None
21671        }
21672    }
21673
21674    #[allow(irrefutable_let_patterns)]
21675    pub fn into_get_ipv6_multicast_loopback(
21676        self,
21677    ) -> Option<(BaseNetworkSocketGetIpv6MulticastLoopbackResponder)> {
21678        if let BaseNetworkSocketRequest::GetIpv6MulticastLoopback { responder } = self {
21679            Some((responder))
21680        } else {
21681            None
21682        }
21683    }
21684
21685    #[allow(irrefutable_let_patterns)]
21686    pub fn into_set_ipv6_only(self) -> Option<(bool, BaseNetworkSocketSetIpv6OnlyResponder)> {
21687        if let BaseNetworkSocketRequest::SetIpv6Only { value, responder } = self {
21688            Some((value, responder))
21689        } else {
21690            None
21691        }
21692    }
21693
21694    #[allow(irrefutable_let_patterns)]
21695    pub fn into_get_ipv6_only(self) -> Option<(BaseNetworkSocketGetIpv6OnlyResponder)> {
21696        if let BaseNetworkSocketRequest::GetIpv6Only { responder } = self {
21697            Some((responder))
21698        } else {
21699            None
21700        }
21701    }
21702
21703    #[allow(irrefutable_let_patterns)]
21704    pub fn into_set_ipv6_receive_traffic_class(
21705        self,
21706    ) -> Option<(bool, BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder)> {
21707        if let BaseNetworkSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
21708            Some((value, responder))
21709        } else {
21710            None
21711        }
21712    }
21713
21714    #[allow(irrefutable_let_patterns)]
21715    pub fn into_get_ipv6_receive_traffic_class(
21716        self,
21717    ) -> Option<(BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder)> {
21718        if let BaseNetworkSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
21719            Some((responder))
21720        } else {
21721            None
21722        }
21723    }
21724
21725    #[allow(irrefutable_let_patterns)]
21726    pub fn into_set_ipv6_traffic_class(
21727        self,
21728    ) -> Option<(OptionalUint8, BaseNetworkSocketSetIpv6TrafficClassResponder)> {
21729        if let BaseNetworkSocketRequest::SetIpv6TrafficClass { value, responder } = self {
21730            Some((value, responder))
21731        } else {
21732            None
21733        }
21734    }
21735
21736    #[allow(irrefutable_let_patterns)]
21737    pub fn into_get_ipv6_traffic_class(
21738        self,
21739    ) -> Option<(BaseNetworkSocketGetIpv6TrafficClassResponder)> {
21740        if let BaseNetworkSocketRequest::GetIpv6TrafficClass { responder } = self {
21741            Some((responder))
21742        } else {
21743            None
21744        }
21745    }
21746
21747    #[allow(irrefutable_let_patterns)]
21748    pub fn into_set_ipv6_receive_packet_info(
21749        self,
21750    ) -> Option<(bool, BaseNetworkSocketSetIpv6ReceivePacketInfoResponder)> {
21751        if let BaseNetworkSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
21752            Some((value, responder))
21753        } else {
21754            None
21755        }
21756    }
21757
21758    #[allow(irrefutable_let_patterns)]
21759    pub fn into_get_ipv6_receive_packet_info(
21760        self,
21761    ) -> Option<(BaseNetworkSocketGetIpv6ReceivePacketInfoResponder)> {
21762        if let BaseNetworkSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
21763            Some((responder))
21764        } else {
21765            None
21766        }
21767    }
21768
21769    #[allow(irrefutable_let_patterns)]
21770    pub fn into_get_original_destination(
21771        self,
21772    ) -> Option<(BaseNetworkSocketGetOriginalDestinationResponder)> {
21773        if let BaseNetworkSocketRequest::GetOriginalDestination { responder } = self {
21774            Some((responder))
21775        } else {
21776            None
21777        }
21778    }
21779
21780    /// Name of the method defined in FIDL
21781    pub fn method_name(&self) -> &'static str {
21782        match *self {
21783            BaseNetworkSocketRequest::Clone { .. } => "clone",
21784            BaseNetworkSocketRequest::Close { .. } => "close",
21785            BaseNetworkSocketRequest::Query { .. } => "query",
21786            BaseNetworkSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
21787            BaseNetworkSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
21788            BaseNetworkSocketRequest::GetError { .. } => "get_error",
21789            BaseNetworkSocketRequest::SetBroadcast { .. } => "set_broadcast",
21790            BaseNetworkSocketRequest::GetBroadcast { .. } => "get_broadcast",
21791            BaseNetworkSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
21792            BaseNetworkSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
21793            BaseNetworkSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
21794            BaseNetworkSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
21795            BaseNetworkSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
21796            BaseNetworkSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
21797            BaseNetworkSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
21798            BaseNetworkSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
21799            BaseNetworkSocketRequest::SetNoCheck { .. } => "set_no_check",
21800            BaseNetworkSocketRequest::GetNoCheck { .. } => "get_no_check",
21801            BaseNetworkSocketRequest::SetLinger { .. } => "set_linger",
21802            BaseNetworkSocketRequest::GetLinger { .. } => "get_linger",
21803            BaseNetworkSocketRequest::SetReusePort { .. } => "set_reuse_port",
21804            BaseNetworkSocketRequest::GetReusePort { .. } => "get_reuse_port",
21805            BaseNetworkSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
21806            BaseNetworkSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
21807            BaseNetworkSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
21808            BaseNetworkSocketRequest::SetBindToInterfaceIndex { .. } => {
21809                "set_bind_to_interface_index"
21810            }
21811            BaseNetworkSocketRequest::GetBindToInterfaceIndex { .. } => {
21812                "get_bind_to_interface_index"
21813            }
21814            BaseNetworkSocketRequest::SetTimestamp { .. } => "set_timestamp",
21815            BaseNetworkSocketRequest::GetTimestamp { .. } => "get_timestamp",
21816            BaseNetworkSocketRequest::SetMark { .. } => "set_mark",
21817            BaseNetworkSocketRequest::GetMark { .. } => "get_mark",
21818            BaseNetworkSocketRequest::GetCookie { .. } => "get_cookie",
21819            BaseNetworkSocketRequest::Bind { .. } => "bind",
21820            BaseNetworkSocketRequest::Connect { .. } => "connect",
21821            BaseNetworkSocketRequest::Disconnect { .. } => "disconnect",
21822            BaseNetworkSocketRequest::GetSockName { .. } => "get_sock_name",
21823            BaseNetworkSocketRequest::GetPeerName { .. } => "get_peer_name",
21824            BaseNetworkSocketRequest::Shutdown { .. } => "shutdown",
21825            BaseNetworkSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
21826            BaseNetworkSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
21827            BaseNetworkSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
21828            BaseNetworkSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
21829            BaseNetworkSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
21830            BaseNetworkSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
21831            BaseNetworkSocketRequest::SetIpReceiveTypeOfService { .. } => {
21832                "set_ip_receive_type_of_service"
21833            }
21834            BaseNetworkSocketRequest::GetIpReceiveTypeOfService { .. } => {
21835                "get_ip_receive_type_of_service"
21836            }
21837            BaseNetworkSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
21838            BaseNetworkSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
21839            BaseNetworkSocketRequest::SetIpMulticastInterface { .. } => {
21840                "set_ip_multicast_interface"
21841            }
21842            BaseNetworkSocketRequest::GetIpMulticastInterface { .. } => {
21843                "get_ip_multicast_interface"
21844            }
21845            BaseNetworkSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
21846            BaseNetworkSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
21847            BaseNetworkSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
21848            BaseNetworkSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
21849            BaseNetworkSocketRequest::AddIpMembership { .. } => "add_ip_membership",
21850            BaseNetworkSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
21851            BaseNetworkSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
21852            BaseNetworkSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
21853            BaseNetworkSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
21854                "set_ip_receive_original_destination_address"
21855            }
21856            BaseNetworkSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
21857                "get_ip_receive_original_destination_address"
21858            }
21859            BaseNetworkSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
21860            BaseNetworkSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
21861            BaseNetworkSocketRequest::SetIpv6MulticastInterface { .. } => {
21862                "set_ipv6_multicast_interface"
21863            }
21864            BaseNetworkSocketRequest::GetIpv6MulticastInterface { .. } => {
21865                "get_ipv6_multicast_interface"
21866            }
21867            BaseNetworkSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
21868            BaseNetworkSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
21869            BaseNetworkSocketRequest::SetIpv6ReceiveHopLimit { .. } => "set_ipv6_receive_hop_limit",
21870            BaseNetworkSocketRequest::GetIpv6ReceiveHopLimit { .. } => "get_ipv6_receive_hop_limit",
21871            BaseNetworkSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
21872            BaseNetworkSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
21873            BaseNetworkSocketRequest::SetIpv6MulticastLoopback { .. } => {
21874                "set_ipv6_multicast_loopback"
21875            }
21876            BaseNetworkSocketRequest::GetIpv6MulticastLoopback { .. } => {
21877                "get_ipv6_multicast_loopback"
21878            }
21879            BaseNetworkSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
21880            BaseNetworkSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
21881            BaseNetworkSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
21882                "set_ipv6_receive_traffic_class"
21883            }
21884            BaseNetworkSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
21885                "get_ipv6_receive_traffic_class"
21886            }
21887            BaseNetworkSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
21888            BaseNetworkSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
21889            BaseNetworkSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
21890                "set_ipv6_receive_packet_info"
21891            }
21892            BaseNetworkSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
21893                "get_ipv6_receive_packet_info"
21894            }
21895            BaseNetworkSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
21896        }
21897    }
21898}
21899
21900#[derive(Debug, Clone)]
21901pub struct BaseNetworkSocketControlHandle {
21902    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
21903}
21904
21905impl fidl::endpoints::ControlHandle for BaseNetworkSocketControlHandle {
21906    fn shutdown(&self) {
21907        self.inner.shutdown()
21908    }
21909    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
21910        self.inner.shutdown_with_epitaph(status)
21911    }
21912
21913    fn is_closed(&self) -> bool {
21914        self.inner.channel().is_closed()
21915    }
21916    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
21917        self.inner.channel().on_closed()
21918    }
21919
21920    #[cfg(target_os = "fuchsia")]
21921    fn signal_peer(
21922        &self,
21923        clear_mask: zx::Signals,
21924        set_mask: zx::Signals,
21925    ) -> Result<(), zx_status::Status> {
21926        use fidl::Peered;
21927        self.inner.channel().signal_peer(clear_mask, set_mask)
21928    }
21929}
21930
21931impl BaseNetworkSocketControlHandle {}
21932
21933#[must_use = "FIDL methods require a response to be sent"]
21934#[derive(Debug)]
21935pub struct BaseNetworkSocketCloseResponder {
21936    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
21937    tx_id: u32,
21938}
21939
21940/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
21941/// if the responder is dropped without sending a response, so that the client
21942/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
21943impl std::ops::Drop for BaseNetworkSocketCloseResponder {
21944    fn drop(&mut self) {
21945        self.control_handle.shutdown();
21946        // Safety: drops once, never accessed again
21947        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
21948    }
21949}
21950
21951impl fidl::endpoints::Responder for BaseNetworkSocketCloseResponder {
21952    type ControlHandle = BaseNetworkSocketControlHandle;
21953
21954    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
21955        &self.control_handle
21956    }
21957
21958    fn drop_without_shutdown(mut self) {
21959        // Safety: drops once, never accessed again due to mem::forget
21960        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
21961        // Prevent Drop from running (which would shut down the channel)
21962        std::mem::forget(self);
21963    }
21964}
21965
21966impl BaseNetworkSocketCloseResponder {
21967    /// Sends a response to the FIDL transaction.
21968    ///
21969    /// Sets the channel to shutdown if an error occurs.
21970    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
21971        let _result = self.send_raw(result);
21972        if _result.is_err() {
21973            self.control_handle.shutdown();
21974        }
21975        self.drop_without_shutdown();
21976        _result
21977    }
21978
21979    /// Similar to "send" but does not shutdown the channel if an error occurs.
21980    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
21981        let _result = self.send_raw(result);
21982        self.drop_without_shutdown();
21983        _result
21984    }
21985
21986    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
21987        self.control_handle
21988            .inner
21989            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
21990                result,
21991                self.tx_id,
21992                0x5ac5d459ad7f657e,
21993                fidl::encoding::DynamicFlags::empty(),
21994            )
21995    }
21996}
21997
21998#[must_use = "FIDL methods require a response to be sent"]
21999#[derive(Debug)]
22000pub struct BaseNetworkSocketQueryResponder {
22001    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22002    tx_id: u32,
22003}
22004
22005/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22006/// if the responder is dropped without sending a response, so that the client
22007/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22008impl std::ops::Drop for BaseNetworkSocketQueryResponder {
22009    fn drop(&mut self) {
22010        self.control_handle.shutdown();
22011        // Safety: drops once, never accessed again
22012        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22013    }
22014}
22015
22016impl fidl::endpoints::Responder for BaseNetworkSocketQueryResponder {
22017    type ControlHandle = BaseNetworkSocketControlHandle;
22018
22019    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22020        &self.control_handle
22021    }
22022
22023    fn drop_without_shutdown(mut self) {
22024        // Safety: drops once, never accessed again due to mem::forget
22025        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22026        // Prevent Drop from running (which would shut down the channel)
22027        std::mem::forget(self);
22028    }
22029}
22030
22031impl BaseNetworkSocketQueryResponder {
22032    /// Sends a response to the FIDL transaction.
22033    ///
22034    /// Sets the channel to shutdown if an error occurs.
22035    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
22036        let _result = self.send_raw(protocol);
22037        if _result.is_err() {
22038            self.control_handle.shutdown();
22039        }
22040        self.drop_without_shutdown();
22041        _result
22042    }
22043
22044    /// Similar to "send" but does not shutdown the channel if an error occurs.
22045    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
22046        let _result = self.send_raw(protocol);
22047        self.drop_without_shutdown();
22048        _result
22049    }
22050
22051    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
22052        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
22053            (protocol,),
22054            self.tx_id,
22055            0x2658edee9decfc06,
22056            fidl::encoding::DynamicFlags::empty(),
22057        )
22058    }
22059}
22060
22061#[must_use = "FIDL methods require a response to be sent"]
22062#[derive(Debug)]
22063pub struct BaseNetworkSocketSetReuseAddressResponder {
22064    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22065    tx_id: u32,
22066}
22067
22068/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22069/// if the responder is dropped without sending a response, so that the client
22070/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22071impl std::ops::Drop for BaseNetworkSocketSetReuseAddressResponder {
22072    fn drop(&mut self) {
22073        self.control_handle.shutdown();
22074        // Safety: drops once, never accessed again
22075        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22076    }
22077}
22078
22079impl fidl::endpoints::Responder for BaseNetworkSocketSetReuseAddressResponder {
22080    type ControlHandle = BaseNetworkSocketControlHandle;
22081
22082    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22083        &self.control_handle
22084    }
22085
22086    fn drop_without_shutdown(mut self) {
22087        // Safety: drops once, never accessed again due to mem::forget
22088        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22089        // Prevent Drop from running (which would shut down the channel)
22090        std::mem::forget(self);
22091    }
22092}
22093
22094impl BaseNetworkSocketSetReuseAddressResponder {
22095    /// Sends a response to the FIDL transaction.
22096    ///
22097    /// Sets the channel to shutdown if an error occurs.
22098    pub fn send(
22099        self,
22100        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22101    ) -> Result<(), fidl::Error> {
22102        let _result = self.send_raw(result);
22103        if _result.is_err() {
22104            self.control_handle.shutdown();
22105        }
22106        self.drop_without_shutdown();
22107        _result
22108    }
22109
22110    /// Similar to "send" but does not shutdown the channel if an error occurs.
22111    pub fn send_no_shutdown_on_err(
22112        self,
22113        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22114    ) -> Result<(), fidl::Error> {
22115        let _result = self.send_raw(result);
22116        self.drop_without_shutdown();
22117        _result
22118    }
22119
22120    fn send_raw(
22121        &self,
22122        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22123    ) -> Result<(), fidl::Error> {
22124        self.control_handle.inner.send::<fidl::encoding::ResultType<
22125            fidl::encoding::EmptyStruct,
22126            fidl_fuchsia_posix::Errno,
22127        >>(
22128            result,
22129            self.tx_id,
22130            0x1fd74ee8b9a4a876,
22131            fidl::encoding::DynamicFlags::empty(),
22132        )
22133    }
22134}
22135
22136#[must_use = "FIDL methods require a response to be sent"]
22137#[derive(Debug)]
22138pub struct BaseNetworkSocketGetReuseAddressResponder {
22139    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22140    tx_id: u32,
22141}
22142
22143/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22144/// if the responder is dropped without sending a response, so that the client
22145/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22146impl std::ops::Drop for BaseNetworkSocketGetReuseAddressResponder {
22147    fn drop(&mut self) {
22148        self.control_handle.shutdown();
22149        // Safety: drops once, never accessed again
22150        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22151    }
22152}
22153
22154impl fidl::endpoints::Responder for BaseNetworkSocketGetReuseAddressResponder {
22155    type ControlHandle = BaseNetworkSocketControlHandle;
22156
22157    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22158        &self.control_handle
22159    }
22160
22161    fn drop_without_shutdown(mut self) {
22162        // Safety: drops once, never accessed again due to mem::forget
22163        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22164        // Prevent Drop from running (which would shut down the channel)
22165        std::mem::forget(self);
22166    }
22167}
22168
22169impl BaseNetworkSocketGetReuseAddressResponder {
22170    /// Sends a response to the FIDL transaction.
22171    ///
22172    /// Sets the channel to shutdown if an error occurs.
22173    pub fn send(
22174        self,
22175        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22176    ) -> Result<(), fidl::Error> {
22177        let _result = self.send_raw(result);
22178        if _result.is_err() {
22179            self.control_handle.shutdown();
22180        }
22181        self.drop_without_shutdown();
22182        _result
22183    }
22184
22185    /// Similar to "send" but does not shutdown the channel if an error occurs.
22186    pub fn send_no_shutdown_on_err(
22187        self,
22188        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22189    ) -> Result<(), fidl::Error> {
22190        let _result = self.send_raw(result);
22191        self.drop_without_shutdown();
22192        _result
22193    }
22194
22195    fn send_raw(
22196        &self,
22197        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22198    ) -> Result<(), fidl::Error> {
22199        self.control_handle.inner.send::<fidl::encoding::ResultType<
22200            BaseSocketGetReuseAddressResponse,
22201            fidl_fuchsia_posix::Errno,
22202        >>(
22203            result.map(|value| (value,)),
22204            self.tx_id,
22205            0x67b7206b8d1bc0a5,
22206            fidl::encoding::DynamicFlags::empty(),
22207        )
22208    }
22209}
22210
22211#[must_use = "FIDL methods require a response to be sent"]
22212#[derive(Debug)]
22213pub struct BaseNetworkSocketGetErrorResponder {
22214    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22215    tx_id: u32,
22216}
22217
22218/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22219/// if the responder is dropped without sending a response, so that the client
22220/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22221impl std::ops::Drop for BaseNetworkSocketGetErrorResponder {
22222    fn drop(&mut self) {
22223        self.control_handle.shutdown();
22224        // Safety: drops once, never accessed again
22225        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22226    }
22227}
22228
22229impl fidl::endpoints::Responder for BaseNetworkSocketGetErrorResponder {
22230    type ControlHandle = BaseNetworkSocketControlHandle;
22231
22232    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22233        &self.control_handle
22234    }
22235
22236    fn drop_without_shutdown(mut self) {
22237        // Safety: drops once, never accessed again due to mem::forget
22238        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22239        // Prevent Drop from running (which would shut down the channel)
22240        std::mem::forget(self);
22241    }
22242}
22243
22244impl BaseNetworkSocketGetErrorResponder {
22245    /// Sends a response to the FIDL transaction.
22246    ///
22247    /// Sets the channel to shutdown if an error occurs.
22248    pub fn send(
22249        self,
22250        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22251    ) -> Result<(), fidl::Error> {
22252        let _result = self.send_raw(result);
22253        if _result.is_err() {
22254            self.control_handle.shutdown();
22255        }
22256        self.drop_without_shutdown();
22257        _result
22258    }
22259
22260    /// Similar to "send" but does not shutdown the channel if an error occurs.
22261    pub fn send_no_shutdown_on_err(
22262        self,
22263        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22264    ) -> Result<(), fidl::Error> {
22265        let _result = self.send_raw(result);
22266        self.drop_without_shutdown();
22267        _result
22268    }
22269
22270    fn send_raw(
22271        &self,
22272        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22273    ) -> Result<(), fidl::Error> {
22274        self.control_handle.inner.send::<fidl::encoding::ResultType<
22275            fidl::encoding::EmptyStruct,
22276            fidl_fuchsia_posix::Errno,
22277        >>(
22278            result,
22279            self.tx_id,
22280            0x5aad39b33e5f6ebb,
22281            fidl::encoding::DynamicFlags::empty(),
22282        )
22283    }
22284}
22285
22286#[must_use = "FIDL methods require a response to be sent"]
22287#[derive(Debug)]
22288pub struct BaseNetworkSocketSetBroadcastResponder {
22289    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22290    tx_id: u32,
22291}
22292
22293/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22294/// if the responder is dropped without sending a response, so that the client
22295/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22296impl std::ops::Drop for BaseNetworkSocketSetBroadcastResponder {
22297    fn drop(&mut self) {
22298        self.control_handle.shutdown();
22299        // Safety: drops once, never accessed again
22300        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22301    }
22302}
22303
22304impl fidl::endpoints::Responder for BaseNetworkSocketSetBroadcastResponder {
22305    type ControlHandle = BaseNetworkSocketControlHandle;
22306
22307    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22308        &self.control_handle
22309    }
22310
22311    fn drop_without_shutdown(mut self) {
22312        // Safety: drops once, never accessed again due to mem::forget
22313        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22314        // Prevent Drop from running (which would shut down the channel)
22315        std::mem::forget(self);
22316    }
22317}
22318
22319impl BaseNetworkSocketSetBroadcastResponder {
22320    /// Sends a response to the FIDL transaction.
22321    ///
22322    /// Sets the channel to shutdown if an error occurs.
22323    pub fn send(
22324        self,
22325        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22326    ) -> Result<(), fidl::Error> {
22327        let _result = self.send_raw(result);
22328        if _result.is_err() {
22329            self.control_handle.shutdown();
22330        }
22331        self.drop_without_shutdown();
22332        _result
22333    }
22334
22335    /// Similar to "send" but does not shutdown the channel if an error occurs.
22336    pub fn send_no_shutdown_on_err(
22337        self,
22338        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22339    ) -> Result<(), fidl::Error> {
22340        let _result = self.send_raw(result);
22341        self.drop_without_shutdown();
22342        _result
22343    }
22344
22345    fn send_raw(
22346        &self,
22347        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22348    ) -> Result<(), fidl::Error> {
22349        self.control_handle.inner.send::<fidl::encoding::ResultType<
22350            fidl::encoding::EmptyStruct,
22351            fidl_fuchsia_posix::Errno,
22352        >>(
22353            result,
22354            self.tx_id,
22355            0x6023e081ce3cd947,
22356            fidl::encoding::DynamicFlags::empty(),
22357        )
22358    }
22359}
22360
22361#[must_use = "FIDL methods require a response to be sent"]
22362#[derive(Debug)]
22363pub struct BaseNetworkSocketGetBroadcastResponder {
22364    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22365    tx_id: u32,
22366}
22367
22368/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22369/// if the responder is dropped without sending a response, so that the client
22370/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22371impl std::ops::Drop for BaseNetworkSocketGetBroadcastResponder {
22372    fn drop(&mut self) {
22373        self.control_handle.shutdown();
22374        // Safety: drops once, never accessed again
22375        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22376    }
22377}
22378
22379impl fidl::endpoints::Responder for BaseNetworkSocketGetBroadcastResponder {
22380    type ControlHandle = BaseNetworkSocketControlHandle;
22381
22382    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22383        &self.control_handle
22384    }
22385
22386    fn drop_without_shutdown(mut self) {
22387        // Safety: drops once, never accessed again due to mem::forget
22388        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22389        // Prevent Drop from running (which would shut down the channel)
22390        std::mem::forget(self);
22391    }
22392}
22393
22394impl BaseNetworkSocketGetBroadcastResponder {
22395    /// Sends a response to the FIDL transaction.
22396    ///
22397    /// Sets the channel to shutdown if an error occurs.
22398    pub fn send(
22399        self,
22400        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22401    ) -> Result<(), fidl::Error> {
22402        let _result = self.send_raw(result);
22403        if _result.is_err() {
22404            self.control_handle.shutdown();
22405        }
22406        self.drop_without_shutdown();
22407        _result
22408    }
22409
22410    /// Similar to "send" but does not shutdown the channel if an error occurs.
22411    pub fn send_no_shutdown_on_err(
22412        self,
22413        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22414    ) -> Result<(), fidl::Error> {
22415        let _result = self.send_raw(result);
22416        self.drop_without_shutdown();
22417        _result
22418    }
22419
22420    fn send_raw(
22421        &self,
22422        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22423    ) -> Result<(), fidl::Error> {
22424        self.control_handle.inner.send::<fidl::encoding::ResultType<
22425            BaseSocketGetBroadcastResponse,
22426            fidl_fuchsia_posix::Errno,
22427        >>(
22428            result.map(|value| (value,)),
22429            self.tx_id,
22430            0x68796fc556f9780d,
22431            fidl::encoding::DynamicFlags::empty(),
22432        )
22433    }
22434}
22435
22436#[must_use = "FIDL methods require a response to be sent"]
22437#[derive(Debug)]
22438pub struct BaseNetworkSocketSetSendBufferResponder {
22439    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22440    tx_id: u32,
22441}
22442
22443/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22444/// if the responder is dropped without sending a response, so that the client
22445/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22446impl std::ops::Drop for BaseNetworkSocketSetSendBufferResponder {
22447    fn drop(&mut self) {
22448        self.control_handle.shutdown();
22449        // Safety: drops once, never accessed again
22450        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22451    }
22452}
22453
22454impl fidl::endpoints::Responder for BaseNetworkSocketSetSendBufferResponder {
22455    type ControlHandle = BaseNetworkSocketControlHandle;
22456
22457    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22458        &self.control_handle
22459    }
22460
22461    fn drop_without_shutdown(mut self) {
22462        // Safety: drops once, never accessed again due to mem::forget
22463        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22464        // Prevent Drop from running (which would shut down the channel)
22465        std::mem::forget(self);
22466    }
22467}
22468
22469impl BaseNetworkSocketSetSendBufferResponder {
22470    /// Sends a response to the FIDL transaction.
22471    ///
22472    /// Sets the channel to shutdown if an error occurs.
22473    pub fn send(
22474        self,
22475        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22476    ) -> Result<(), fidl::Error> {
22477        let _result = self.send_raw(result);
22478        if _result.is_err() {
22479            self.control_handle.shutdown();
22480        }
22481        self.drop_without_shutdown();
22482        _result
22483    }
22484
22485    /// Similar to "send" but does not shutdown the channel if an error occurs.
22486    pub fn send_no_shutdown_on_err(
22487        self,
22488        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22489    ) -> Result<(), fidl::Error> {
22490        let _result = self.send_raw(result);
22491        self.drop_without_shutdown();
22492        _result
22493    }
22494
22495    fn send_raw(
22496        &self,
22497        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22498    ) -> Result<(), fidl::Error> {
22499        self.control_handle.inner.send::<fidl::encoding::ResultType<
22500            fidl::encoding::EmptyStruct,
22501            fidl_fuchsia_posix::Errno,
22502        >>(
22503            result,
22504            self.tx_id,
22505            0x756eac32d73a7a70,
22506            fidl::encoding::DynamicFlags::empty(),
22507        )
22508    }
22509}
22510
22511#[must_use = "FIDL methods require a response to be sent"]
22512#[derive(Debug)]
22513pub struct BaseNetworkSocketGetSendBufferResponder {
22514    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22515    tx_id: u32,
22516}
22517
22518/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22519/// if the responder is dropped without sending a response, so that the client
22520/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22521impl std::ops::Drop for BaseNetworkSocketGetSendBufferResponder {
22522    fn drop(&mut self) {
22523        self.control_handle.shutdown();
22524        // Safety: drops once, never accessed again
22525        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22526    }
22527}
22528
22529impl fidl::endpoints::Responder for BaseNetworkSocketGetSendBufferResponder {
22530    type ControlHandle = BaseNetworkSocketControlHandle;
22531
22532    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22533        &self.control_handle
22534    }
22535
22536    fn drop_without_shutdown(mut self) {
22537        // Safety: drops once, never accessed again due to mem::forget
22538        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22539        // Prevent Drop from running (which would shut down the channel)
22540        std::mem::forget(self);
22541    }
22542}
22543
22544impl BaseNetworkSocketGetSendBufferResponder {
22545    /// Sends a response to the FIDL transaction.
22546    ///
22547    /// Sets the channel to shutdown if an error occurs.
22548    pub fn send(
22549        self,
22550        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22551    ) -> Result<(), fidl::Error> {
22552        let _result = self.send_raw(result);
22553        if _result.is_err() {
22554            self.control_handle.shutdown();
22555        }
22556        self.drop_without_shutdown();
22557        _result
22558    }
22559
22560    /// Similar to "send" but does not shutdown the channel if an error occurs.
22561    pub fn send_no_shutdown_on_err(
22562        self,
22563        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22564    ) -> Result<(), fidl::Error> {
22565        let _result = self.send_raw(result);
22566        self.drop_without_shutdown();
22567        _result
22568    }
22569
22570    fn send_raw(
22571        &self,
22572        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22573    ) -> Result<(), fidl::Error> {
22574        self.control_handle.inner.send::<fidl::encoding::ResultType<
22575            BaseSocketGetSendBufferResponse,
22576            fidl_fuchsia_posix::Errno,
22577        >>(
22578            result.map(|value_bytes| (value_bytes,)),
22579            self.tx_id,
22580            0x78a52fd9c7b2410b,
22581            fidl::encoding::DynamicFlags::empty(),
22582        )
22583    }
22584}
22585
22586#[must_use = "FIDL methods require a response to be sent"]
22587#[derive(Debug)]
22588pub struct BaseNetworkSocketSetReceiveBufferResponder {
22589    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22590    tx_id: u32,
22591}
22592
22593/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22594/// if the responder is dropped without sending a response, so that the client
22595/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22596impl std::ops::Drop for BaseNetworkSocketSetReceiveBufferResponder {
22597    fn drop(&mut self) {
22598        self.control_handle.shutdown();
22599        // Safety: drops once, never accessed again
22600        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22601    }
22602}
22603
22604impl fidl::endpoints::Responder for BaseNetworkSocketSetReceiveBufferResponder {
22605    type ControlHandle = BaseNetworkSocketControlHandle;
22606
22607    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22608        &self.control_handle
22609    }
22610
22611    fn drop_without_shutdown(mut self) {
22612        // Safety: drops once, never accessed again due to mem::forget
22613        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22614        // Prevent Drop from running (which would shut down the channel)
22615        std::mem::forget(self);
22616    }
22617}
22618
22619impl BaseNetworkSocketSetReceiveBufferResponder {
22620    /// Sends a response to the FIDL transaction.
22621    ///
22622    /// Sets the channel to shutdown if an error occurs.
22623    pub fn send(
22624        self,
22625        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22626    ) -> Result<(), fidl::Error> {
22627        let _result = self.send_raw(result);
22628        if _result.is_err() {
22629            self.control_handle.shutdown();
22630        }
22631        self.drop_without_shutdown();
22632        _result
22633    }
22634
22635    /// Similar to "send" but does not shutdown the channel if an error occurs.
22636    pub fn send_no_shutdown_on_err(
22637        self,
22638        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22639    ) -> Result<(), fidl::Error> {
22640        let _result = self.send_raw(result);
22641        self.drop_without_shutdown();
22642        _result
22643    }
22644
22645    fn send_raw(
22646        &self,
22647        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22648    ) -> Result<(), fidl::Error> {
22649        self.control_handle.inner.send::<fidl::encoding::ResultType<
22650            fidl::encoding::EmptyStruct,
22651            fidl_fuchsia_posix::Errno,
22652        >>(
22653            result,
22654            self.tx_id,
22655            0x6b0cf2f1919c7001,
22656            fidl::encoding::DynamicFlags::empty(),
22657        )
22658    }
22659}
22660
22661#[must_use = "FIDL methods require a response to be sent"]
22662#[derive(Debug)]
22663pub struct BaseNetworkSocketGetReceiveBufferResponder {
22664    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22665    tx_id: u32,
22666}
22667
22668/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22669/// if the responder is dropped without sending a response, so that the client
22670/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22671impl std::ops::Drop for BaseNetworkSocketGetReceiveBufferResponder {
22672    fn drop(&mut self) {
22673        self.control_handle.shutdown();
22674        // Safety: drops once, never accessed again
22675        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22676    }
22677}
22678
22679impl fidl::endpoints::Responder for BaseNetworkSocketGetReceiveBufferResponder {
22680    type ControlHandle = BaseNetworkSocketControlHandle;
22681
22682    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22683        &self.control_handle
22684    }
22685
22686    fn drop_without_shutdown(mut self) {
22687        // Safety: drops once, never accessed again due to mem::forget
22688        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22689        // Prevent Drop from running (which would shut down the channel)
22690        std::mem::forget(self);
22691    }
22692}
22693
22694impl BaseNetworkSocketGetReceiveBufferResponder {
22695    /// Sends a response to the FIDL transaction.
22696    ///
22697    /// Sets the channel to shutdown if an error occurs.
22698    pub fn send(
22699        self,
22700        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22701    ) -> Result<(), fidl::Error> {
22702        let _result = self.send_raw(result);
22703        if _result.is_err() {
22704            self.control_handle.shutdown();
22705        }
22706        self.drop_without_shutdown();
22707        _result
22708    }
22709
22710    /// Similar to "send" but does not shutdown the channel if an error occurs.
22711    pub fn send_no_shutdown_on_err(
22712        self,
22713        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22714    ) -> Result<(), fidl::Error> {
22715        let _result = self.send_raw(result);
22716        self.drop_without_shutdown();
22717        _result
22718    }
22719
22720    fn send_raw(
22721        &self,
22722        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
22723    ) -> Result<(), fidl::Error> {
22724        self.control_handle.inner.send::<fidl::encoding::ResultType<
22725            BaseSocketGetReceiveBufferResponse,
22726            fidl_fuchsia_posix::Errno,
22727        >>(
22728            result.map(|value_bytes| (value_bytes,)),
22729            self.tx_id,
22730            0x14c1a4b64f709e5c,
22731            fidl::encoding::DynamicFlags::empty(),
22732        )
22733    }
22734}
22735
22736#[must_use = "FIDL methods require a response to be sent"]
22737#[derive(Debug)]
22738pub struct BaseNetworkSocketSetKeepAliveResponder {
22739    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22740    tx_id: u32,
22741}
22742
22743/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22744/// if the responder is dropped without sending a response, so that the client
22745/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22746impl std::ops::Drop for BaseNetworkSocketSetKeepAliveResponder {
22747    fn drop(&mut self) {
22748        self.control_handle.shutdown();
22749        // Safety: drops once, never accessed again
22750        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22751    }
22752}
22753
22754impl fidl::endpoints::Responder for BaseNetworkSocketSetKeepAliveResponder {
22755    type ControlHandle = BaseNetworkSocketControlHandle;
22756
22757    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22758        &self.control_handle
22759    }
22760
22761    fn drop_without_shutdown(mut self) {
22762        // Safety: drops once, never accessed again due to mem::forget
22763        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22764        // Prevent Drop from running (which would shut down the channel)
22765        std::mem::forget(self);
22766    }
22767}
22768
22769impl BaseNetworkSocketSetKeepAliveResponder {
22770    /// Sends a response to the FIDL transaction.
22771    ///
22772    /// Sets the channel to shutdown if an error occurs.
22773    pub fn send(
22774        self,
22775        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22776    ) -> Result<(), fidl::Error> {
22777        let _result = self.send_raw(result);
22778        if _result.is_err() {
22779            self.control_handle.shutdown();
22780        }
22781        self.drop_without_shutdown();
22782        _result
22783    }
22784
22785    /// Similar to "send" but does not shutdown the channel if an error occurs.
22786    pub fn send_no_shutdown_on_err(
22787        self,
22788        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22789    ) -> Result<(), fidl::Error> {
22790        let _result = self.send_raw(result);
22791        self.drop_without_shutdown();
22792        _result
22793    }
22794
22795    fn send_raw(
22796        &self,
22797        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22798    ) -> Result<(), fidl::Error> {
22799        self.control_handle.inner.send::<fidl::encoding::ResultType<
22800            fidl::encoding::EmptyStruct,
22801            fidl_fuchsia_posix::Errno,
22802        >>(
22803            result,
22804            self.tx_id,
22805            0x572df8f0b920d2c7,
22806            fidl::encoding::DynamicFlags::empty(),
22807        )
22808    }
22809}
22810
22811#[must_use = "FIDL methods require a response to be sent"]
22812#[derive(Debug)]
22813pub struct BaseNetworkSocketGetKeepAliveResponder {
22814    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22815    tx_id: u32,
22816}
22817
22818/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22819/// if the responder is dropped without sending a response, so that the client
22820/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22821impl std::ops::Drop for BaseNetworkSocketGetKeepAliveResponder {
22822    fn drop(&mut self) {
22823        self.control_handle.shutdown();
22824        // Safety: drops once, never accessed again
22825        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22826    }
22827}
22828
22829impl fidl::endpoints::Responder for BaseNetworkSocketGetKeepAliveResponder {
22830    type ControlHandle = BaseNetworkSocketControlHandle;
22831
22832    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22833        &self.control_handle
22834    }
22835
22836    fn drop_without_shutdown(mut self) {
22837        // Safety: drops once, never accessed again due to mem::forget
22838        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22839        // Prevent Drop from running (which would shut down the channel)
22840        std::mem::forget(self);
22841    }
22842}
22843
22844impl BaseNetworkSocketGetKeepAliveResponder {
22845    /// Sends a response to the FIDL transaction.
22846    ///
22847    /// Sets the channel to shutdown if an error occurs.
22848    pub fn send(
22849        self,
22850        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22851    ) -> Result<(), fidl::Error> {
22852        let _result = self.send_raw(result);
22853        if _result.is_err() {
22854            self.control_handle.shutdown();
22855        }
22856        self.drop_without_shutdown();
22857        _result
22858    }
22859
22860    /// Similar to "send" but does not shutdown the channel if an error occurs.
22861    pub fn send_no_shutdown_on_err(
22862        self,
22863        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22864    ) -> Result<(), fidl::Error> {
22865        let _result = self.send_raw(result);
22866        self.drop_without_shutdown();
22867        _result
22868    }
22869
22870    fn send_raw(
22871        &self,
22872        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
22873    ) -> Result<(), fidl::Error> {
22874        self.control_handle.inner.send::<fidl::encoding::ResultType<
22875            BaseSocketGetKeepAliveResponse,
22876            fidl_fuchsia_posix::Errno,
22877        >>(
22878            result.map(|value| (value,)),
22879            self.tx_id,
22880            0x2dd29d3215f2c9d2,
22881            fidl::encoding::DynamicFlags::empty(),
22882        )
22883    }
22884}
22885
22886#[must_use = "FIDL methods require a response to be sent"]
22887#[derive(Debug)]
22888pub struct BaseNetworkSocketSetOutOfBandInlineResponder {
22889    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22890    tx_id: u32,
22891}
22892
22893/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22894/// if the responder is dropped without sending a response, so that the client
22895/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22896impl std::ops::Drop for BaseNetworkSocketSetOutOfBandInlineResponder {
22897    fn drop(&mut self) {
22898        self.control_handle.shutdown();
22899        // Safety: drops once, never accessed again
22900        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22901    }
22902}
22903
22904impl fidl::endpoints::Responder for BaseNetworkSocketSetOutOfBandInlineResponder {
22905    type ControlHandle = BaseNetworkSocketControlHandle;
22906
22907    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22908        &self.control_handle
22909    }
22910
22911    fn drop_without_shutdown(mut self) {
22912        // Safety: drops once, never accessed again due to mem::forget
22913        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22914        // Prevent Drop from running (which would shut down the channel)
22915        std::mem::forget(self);
22916    }
22917}
22918
22919impl BaseNetworkSocketSetOutOfBandInlineResponder {
22920    /// Sends a response to the FIDL transaction.
22921    ///
22922    /// Sets the channel to shutdown if an error occurs.
22923    pub fn send(
22924        self,
22925        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22926    ) -> Result<(), fidl::Error> {
22927        let _result = self.send_raw(result);
22928        if _result.is_err() {
22929            self.control_handle.shutdown();
22930        }
22931        self.drop_without_shutdown();
22932        _result
22933    }
22934
22935    /// Similar to "send" but does not shutdown the channel if an error occurs.
22936    pub fn send_no_shutdown_on_err(
22937        self,
22938        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22939    ) -> Result<(), fidl::Error> {
22940        let _result = self.send_raw(result);
22941        self.drop_without_shutdown();
22942        _result
22943    }
22944
22945    fn send_raw(
22946        &self,
22947        mut result: Result<(), fidl_fuchsia_posix::Errno>,
22948    ) -> Result<(), fidl::Error> {
22949        self.control_handle.inner.send::<fidl::encoding::ResultType<
22950            fidl::encoding::EmptyStruct,
22951            fidl_fuchsia_posix::Errno,
22952        >>(
22953            result,
22954            self.tx_id,
22955            0x3ecb49968bee439,
22956            fidl::encoding::DynamicFlags::empty(),
22957        )
22958    }
22959}
22960
22961#[must_use = "FIDL methods require a response to be sent"]
22962#[derive(Debug)]
22963pub struct BaseNetworkSocketGetOutOfBandInlineResponder {
22964    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
22965    tx_id: u32,
22966}
22967
22968/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
22969/// if the responder is dropped without sending a response, so that the client
22970/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
22971impl std::ops::Drop for BaseNetworkSocketGetOutOfBandInlineResponder {
22972    fn drop(&mut self) {
22973        self.control_handle.shutdown();
22974        // Safety: drops once, never accessed again
22975        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22976    }
22977}
22978
22979impl fidl::endpoints::Responder for BaseNetworkSocketGetOutOfBandInlineResponder {
22980    type ControlHandle = BaseNetworkSocketControlHandle;
22981
22982    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
22983        &self.control_handle
22984    }
22985
22986    fn drop_without_shutdown(mut self) {
22987        // Safety: drops once, never accessed again due to mem::forget
22988        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
22989        // Prevent Drop from running (which would shut down the channel)
22990        std::mem::forget(self);
22991    }
22992}
22993
22994impl BaseNetworkSocketGetOutOfBandInlineResponder {
22995    /// Sends a response to the FIDL transaction.
22996    ///
22997    /// Sets the channel to shutdown if an error occurs.
22998    pub fn send(
22999        self,
23000        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23001    ) -> Result<(), fidl::Error> {
23002        let _result = self.send_raw(result);
23003        if _result.is_err() {
23004            self.control_handle.shutdown();
23005        }
23006        self.drop_without_shutdown();
23007        _result
23008    }
23009
23010    /// Similar to "send" but does not shutdown the channel if an error occurs.
23011    pub fn send_no_shutdown_on_err(
23012        self,
23013        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23014    ) -> Result<(), fidl::Error> {
23015        let _result = self.send_raw(result);
23016        self.drop_without_shutdown();
23017        _result
23018    }
23019
23020    fn send_raw(
23021        &self,
23022        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23023    ) -> Result<(), fidl::Error> {
23024        self.control_handle.inner.send::<fidl::encoding::ResultType<
23025            BaseSocketGetOutOfBandInlineResponse,
23026            fidl_fuchsia_posix::Errno,
23027        >>(
23028            result.map(|value| (value,)),
23029            self.tx_id,
23030            0x348c1ab3aeca1745,
23031            fidl::encoding::DynamicFlags::empty(),
23032        )
23033    }
23034}
23035
23036#[must_use = "FIDL methods require a response to be sent"]
23037#[derive(Debug)]
23038pub struct BaseNetworkSocketSetNoCheckResponder {
23039    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23040    tx_id: u32,
23041}
23042
23043/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23044/// if the responder is dropped without sending a response, so that the client
23045/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23046impl std::ops::Drop for BaseNetworkSocketSetNoCheckResponder {
23047    fn drop(&mut self) {
23048        self.control_handle.shutdown();
23049        // Safety: drops once, never accessed again
23050        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23051    }
23052}
23053
23054impl fidl::endpoints::Responder for BaseNetworkSocketSetNoCheckResponder {
23055    type ControlHandle = BaseNetworkSocketControlHandle;
23056
23057    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23058        &self.control_handle
23059    }
23060
23061    fn drop_without_shutdown(mut self) {
23062        // Safety: drops once, never accessed again due to mem::forget
23063        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23064        // Prevent Drop from running (which would shut down the channel)
23065        std::mem::forget(self);
23066    }
23067}
23068
23069impl BaseNetworkSocketSetNoCheckResponder {
23070    /// Sends a response to the FIDL transaction.
23071    ///
23072    /// Sets the channel to shutdown if an error occurs.
23073    pub fn send(
23074        self,
23075        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23076    ) -> Result<(), fidl::Error> {
23077        let _result = self.send_raw(result);
23078        if _result.is_err() {
23079            self.control_handle.shutdown();
23080        }
23081        self.drop_without_shutdown();
23082        _result
23083    }
23084
23085    /// Similar to "send" but does not shutdown the channel if an error occurs.
23086    pub fn send_no_shutdown_on_err(
23087        self,
23088        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23089    ) -> Result<(), fidl::Error> {
23090        let _result = self.send_raw(result);
23091        self.drop_without_shutdown();
23092        _result
23093    }
23094
23095    fn send_raw(
23096        &self,
23097        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23098    ) -> Result<(), fidl::Error> {
23099        self.control_handle.inner.send::<fidl::encoding::ResultType<
23100            fidl::encoding::EmptyStruct,
23101            fidl_fuchsia_posix::Errno,
23102        >>(
23103            result,
23104            self.tx_id,
23105            0x6bbf00c53a4c78c2,
23106            fidl::encoding::DynamicFlags::empty(),
23107        )
23108    }
23109}
23110
23111#[must_use = "FIDL methods require a response to be sent"]
23112#[derive(Debug)]
23113pub struct BaseNetworkSocketGetNoCheckResponder {
23114    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23115    tx_id: u32,
23116}
23117
23118/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23119/// if the responder is dropped without sending a response, so that the client
23120/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23121impl std::ops::Drop for BaseNetworkSocketGetNoCheckResponder {
23122    fn drop(&mut self) {
23123        self.control_handle.shutdown();
23124        // Safety: drops once, never accessed again
23125        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23126    }
23127}
23128
23129impl fidl::endpoints::Responder for BaseNetworkSocketGetNoCheckResponder {
23130    type ControlHandle = BaseNetworkSocketControlHandle;
23131
23132    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23133        &self.control_handle
23134    }
23135
23136    fn drop_without_shutdown(mut self) {
23137        // Safety: drops once, never accessed again due to mem::forget
23138        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23139        // Prevent Drop from running (which would shut down the channel)
23140        std::mem::forget(self);
23141    }
23142}
23143
23144impl BaseNetworkSocketGetNoCheckResponder {
23145    /// Sends a response to the FIDL transaction.
23146    ///
23147    /// Sets the channel to shutdown if an error occurs.
23148    pub fn send(
23149        self,
23150        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23151    ) -> Result<(), fidl::Error> {
23152        let _result = self.send_raw(result);
23153        if _result.is_err() {
23154            self.control_handle.shutdown();
23155        }
23156        self.drop_without_shutdown();
23157        _result
23158    }
23159
23160    /// Similar to "send" but does not shutdown the channel if an error occurs.
23161    pub fn send_no_shutdown_on_err(
23162        self,
23163        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23164    ) -> Result<(), fidl::Error> {
23165        let _result = self.send_raw(result);
23166        self.drop_without_shutdown();
23167        _result
23168    }
23169
23170    fn send_raw(
23171        &self,
23172        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23173    ) -> Result<(), fidl::Error> {
23174        self.control_handle.inner.send::<fidl::encoding::ResultType<
23175            BaseSocketGetNoCheckResponse,
23176            fidl_fuchsia_posix::Errno,
23177        >>(
23178            result.map(|value| (value,)),
23179            self.tx_id,
23180            0x2cd4249286417694,
23181            fidl::encoding::DynamicFlags::empty(),
23182        )
23183    }
23184}
23185
23186#[must_use = "FIDL methods require a response to be sent"]
23187#[derive(Debug)]
23188pub struct BaseNetworkSocketSetLingerResponder {
23189    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23190    tx_id: u32,
23191}
23192
23193/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23194/// if the responder is dropped without sending a response, so that the client
23195/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23196impl std::ops::Drop for BaseNetworkSocketSetLingerResponder {
23197    fn drop(&mut self) {
23198        self.control_handle.shutdown();
23199        // Safety: drops once, never accessed again
23200        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23201    }
23202}
23203
23204impl fidl::endpoints::Responder for BaseNetworkSocketSetLingerResponder {
23205    type ControlHandle = BaseNetworkSocketControlHandle;
23206
23207    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23208        &self.control_handle
23209    }
23210
23211    fn drop_without_shutdown(mut self) {
23212        // Safety: drops once, never accessed again due to mem::forget
23213        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23214        // Prevent Drop from running (which would shut down the channel)
23215        std::mem::forget(self);
23216    }
23217}
23218
23219impl BaseNetworkSocketSetLingerResponder {
23220    /// Sends a response to the FIDL transaction.
23221    ///
23222    /// Sets the channel to shutdown if an error occurs.
23223    pub fn send(
23224        self,
23225        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23226    ) -> Result<(), fidl::Error> {
23227        let _result = self.send_raw(result);
23228        if _result.is_err() {
23229            self.control_handle.shutdown();
23230        }
23231        self.drop_without_shutdown();
23232        _result
23233    }
23234
23235    /// Similar to "send" but does not shutdown the channel if an error occurs.
23236    pub fn send_no_shutdown_on_err(
23237        self,
23238        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23239    ) -> Result<(), fidl::Error> {
23240        let _result = self.send_raw(result);
23241        self.drop_without_shutdown();
23242        _result
23243    }
23244
23245    fn send_raw(
23246        &self,
23247        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23248    ) -> Result<(), fidl::Error> {
23249        self.control_handle.inner.send::<fidl::encoding::ResultType<
23250            fidl::encoding::EmptyStruct,
23251            fidl_fuchsia_posix::Errno,
23252        >>(
23253            result,
23254            self.tx_id,
23255            0x45386351246e998e,
23256            fidl::encoding::DynamicFlags::empty(),
23257        )
23258    }
23259}
23260
23261#[must_use = "FIDL methods require a response to be sent"]
23262#[derive(Debug)]
23263pub struct BaseNetworkSocketGetLingerResponder {
23264    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23265    tx_id: u32,
23266}
23267
23268/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23269/// if the responder is dropped without sending a response, so that the client
23270/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23271impl std::ops::Drop for BaseNetworkSocketGetLingerResponder {
23272    fn drop(&mut self) {
23273        self.control_handle.shutdown();
23274        // Safety: drops once, never accessed again
23275        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23276    }
23277}
23278
23279impl fidl::endpoints::Responder for BaseNetworkSocketGetLingerResponder {
23280    type ControlHandle = BaseNetworkSocketControlHandle;
23281
23282    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23283        &self.control_handle
23284    }
23285
23286    fn drop_without_shutdown(mut self) {
23287        // Safety: drops once, never accessed again due to mem::forget
23288        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23289        // Prevent Drop from running (which would shut down the channel)
23290        std::mem::forget(self);
23291    }
23292}
23293
23294impl BaseNetworkSocketGetLingerResponder {
23295    /// Sends a response to the FIDL transaction.
23296    ///
23297    /// Sets the channel to shutdown if an error occurs.
23298    pub fn send(
23299        self,
23300        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
23301    ) -> Result<(), fidl::Error> {
23302        let _result = self.send_raw(result);
23303        if _result.is_err() {
23304            self.control_handle.shutdown();
23305        }
23306        self.drop_without_shutdown();
23307        _result
23308    }
23309
23310    /// Similar to "send" but does not shutdown the channel if an error occurs.
23311    pub fn send_no_shutdown_on_err(
23312        self,
23313        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
23314    ) -> Result<(), fidl::Error> {
23315        let _result = self.send_raw(result);
23316        self.drop_without_shutdown();
23317        _result
23318    }
23319
23320    fn send_raw(
23321        &self,
23322        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
23323    ) -> Result<(), fidl::Error> {
23324        self.control_handle.inner.send::<fidl::encoding::ResultType<
23325            BaseSocketGetLingerResponse,
23326            fidl_fuchsia_posix::Errno,
23327        >>(
23328            result,
23329            self.tx_id,
23330            0x48eb20fc5ccb0e45,
23331            fidl::encoding::DynamicFlags::empty(),
23332        )
23333    }
23334}
23335
23336#[must_use = "FIDL methods require a response to be sent"]
23337#[derive(Debug)]
23338pub struct BaseNetworkSocketSetReusePortResponder {
23339    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23340    tx_id: u32,
23341}
23342
23343/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23344/// if the responder is dropped without sending a response, so that the client
23345/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23346impl std::ops::Drop for BaseNetworkSocketSetReusePortResponder {
23347    fn drop(&mut self) {
23348        self.control_handle.shutdown();
23349        // Safety: drops once, never accessed again
23350        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23351    }
23352}
23353
23354impl fidl::endpoints::Responder for BaseNetworkSocketSetReusePortResponder {
23355    type ControlHandle = BaseNetworkSocketControlHandle;
23356
23357    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23358        &self.control_handle
23359    }
23360
23361    fn drop_without_shutdown(mut self) {
23362        // Safety: drops once, never accessed again due to mem::forget
23363        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23364        // Prevent Drop from running (which would shut down the channel)
23365        std::mem::forget(self);
23366    }
23367}
23368
23369impl BaseNetworkSocketSetReusePortResponder {
23370    /// Sends a response to the FIDL transaction.
23371    ///
23372    /// Sets the channel to shutdown if an error occurs.
23373    pub fn send(
23374        self,
23375        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23376    ) -> Result<(), fidl::Error> {
23377        let _result = self.send_raw(result);
23378        if _result.is_err() {
23379            self.control_handle.shutdown();
23380        }
23381        self.drop_without_shutdown();
23382        _result
23383    }
23384
23385    /// Similar to "send" but does not shutdown the channel if an error occurs.
23386    pub fn send_no_shutdown_on_err(
23387        self,
23388        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23389    ) -> Result<(), fidl::Error> {
23390        let _result = self.send_raw(result);
23391        self.drop_without_shutdown();
23392        _result
23393    }
23394
23395    fn send_raw(
23396        &self,
23397        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23398    ) -> Result<(), fidl::Error> {
23399        self.control_handle.inner.send::<fidl::encoding::ResultType<
23400            fidl::encoding::EmptyStruct,
23401            fidl_fuchsia_posix::Errno,
23402        >>(
23403            result,
23404            self.tx_id,
23405            0x24dd3e5cb36d9ccb,
23406            fidl::encoding::DynamicFlags::empty(),
23407        )
23408    }
23409}
23410
23411#[must_use = "FIDL methods require a response to be sent"]
23412#[derive(Debug)]
23413pub struct BaseNetworkSocketGetReusePortResponder {
23414    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23415    tx_id: u32,
23416}
23417
23418/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23419/// if the responder is dropped without sending a response, so that the client
23420/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23421impl std::ops::Drop for BaseNetworkSocketGetReusePortResponder {
23422    fn drop(&mut self) {
23423        self.control_handle.shutdown();
23424        // Safety: drops once, never accessed again
23425        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23426    }
23427}
23428
23429impl fidl::endpoints::Responder for BaseNetworkSocketGetReusePortResponder {
23430    type ControlHandle = BaseNetworkSocketControlHandle;
23431
23432    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23433        &self.control_handle
23434    }
23435
23436    fn drop_without_shutdown(mut self) {
23437        // Safety: drops once, never accessed again due to mem::forget
23438        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23439        // Prevent Drop from running (which would shut down the channel)
23440        std::mem::forget(self);
23441    }
23442}
23443
23444impl BaseNetworkSocketGetReusePortResponder {
23445    /// Sends a response to the FIDL transaction.
23446    ///
23447    /// Sets the channel to shutdown if an error occurs.
23448    pub fn send(
23449        self,
23450        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23451    ) -> Result<(), fidl::Error> {
23452        let _result = self.send_raw(result);
23453        if _result.is_err() {
23454            self.control_handle.shutdown();
23455        }
23456        self.drop_without_shutdown();
23457        _result
23458    }
23459
23460    /// Similar to "send" but does not shutdown the channel if an error occurs.
23461    pub fn send_no_shutdown_on_err(
23462        self,
23463        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23464    ) -> Result<(), fidl::Error> {
23465        let _result = self.send_raw(result);
23466        self.drop_without_shutdown();
23467        _result
23468    }
23469
23470    fn send_raw(
23471        &self,
23472        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23473    ) -> Result<(), fidl::Error> {
23474        self.control_handle.inner.send::<fidl::encoding::ResultType<
23475            BaseSocketGetReusePortResponse,
23476            fidl_fuchsia_posix::Errno,
23477        >>(
23478            result.map(|value| (value,)),
23479            self.tx_id,
23480            0x7a112c1ab54ff828,
23481            fidl::encoding::DynamicFlags::empty(),
23482        )
23483    }
23484}
23485
23486#[must_use = "FIDL methods require a response to be sent"]
23487#[derive(Debug)]
23488pub struct BaseNetworkSocketGetAcceptConnResponder {
23489    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23490    tx_id: u32,
23491}
23492
23493/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23494/// if the responder is dropped without sending a response, so that the client
23495/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23496impl std::ops::Drop for BaseNetworkSocketGetAcceptConnResponder {
23497    fn drop(&mut self) {
23498        self.control_handle.shutdown();
23499        // Safety: drops once, never accessed again
23500        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23501    }
23502}
23503
23504impl fidl::endpoints::Responder for BaseNetworkSocketGetAcceptConnResponder {
23505    type ControlHandle = BaseNetworkSocketControlHandle;
23506
23507    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23508        &self.control_handle
23509    }
23510
23511    fn drop_without_shutdown(mut self) {
23512        // Safety: drops once, never accessed again due to mem::forget
23513        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23514        // Prevent Drop from running (which would shut down the channel)
23515        std::mem::forget(self);
23516    }
23517}
23518
23519impl BaseNetworkSocketGetAcceptConnResponder {
23520    /// Sends a response to the FIDL transaction.
23521    ///
23522    /// Sets the channel to shutdown if an error occurs.
23523    pub fn send(
23524        self,
23525        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23526    ) -> Result<(), fidl::Error> {
23527        let _result = self.send_raw(result);
23528        if _result.is_err() {
23529            self.control_handle.shutdown();
23530        }
23531        self.drop_without_shutdown();
23532        _result
23533    }
23534
23535    /// Similar to "send" but does not shutdown the channel if an error occurs.
23536    pub fn send_no_shutdown_on_err(
23537        self,
23538        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23539    ) -> Result<(), fidl::Error> {
23540        let _result = self.send_raw(result);
23541        self.drop_without_shutdown();
23542        _result
23543    }
23544
23545    fn send_raw(
23546        &self,
23547        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
23548    ) -> Result<(), fidl::Error> {
23549        self.control_handle.inner.send::<fidl::encoding::ResultType<
23550            BaseSocketGetAcceptConnResponse,
23551            fidl_fuchsia_posix::Errno,
23552        >>(
23553            result.map(|value| (value,)),
23554            self.tx_id,
23555            0x67ce6db6c2ec8966,
23556            fidl::encoding::DynamicFlags::empty(),
23557        )
23558    }
23559}
23560
23561#[must_use = "FIDL methods require a response to be sent"]
23562#[derive(Debug)]
23563pub struct BaseNetworkSocketSetBindToDeviceResponder {
23564    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23565    tx_id: u32,
23566}
23567
23568/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23569/// if the responder is dropped without sending a response, so that the client
23570/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23571impl std::ops::Drop for BaseNetworkSocketSetBindToDeviceResponder {
23572    fn drop(&mut self) {
23573        self.control_handle.shutdown();
23574        // Safety: drops once, never accessed again
23575        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23576    }
23577}
23578
23579impl fidl::endpoints::Responder for BaseNetworkSocketSetBindToDeviceResponder {
23580    type ControlHandle = BaseNetworkSocketControlHandle;
23581
23582    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23583        &self.control_handle
23584    }
23585
23586    fn drop_without_shutdown(mut self) {
23587        // Safety: drops once, never accessed again due to mem::forget
23588        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23589        // Prevent Drop from running (which would shut down the channel)
23590        std::mem::forget(self);
23591    }
23592}
23593
23594impl BaseNetworkSocketSetBindToDeviceResponder {
23595    /// Sends a response to the FIDL transaction.
23596    ///
23597    /// Sets the channel to shutdown if an error occurs.
23598    pub fn send(
23599        self,
23600        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23601    ) -> Result<(), fidl::Error> {
23602        let _result = self.send_raw(result);
23603        if _result.is_err() {
23604            self.control_handle.shutdown();
23605        }
23606        self.drop_without_shutdown();
23607        _result
23608    }
23609
23610    /// Similar to "send" but does not shutdown the channel if an error occurs.
23611    pub fn send_no_shutdown_on_err(
23612        self,
23613        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23614    ) -> Result<(), fidl::Error> {
23615        let _result = self.send_raw(result);
23616        self.drop_without_shutdown();
23617        _result
23618    }
23619
23620    fn send_raw(
23621        &self,
23622        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23623    ) -> Result<(), fidl::Error> {
23624        self.control_handle.inner.send::<fidl::encoding::ResultType<
23625            fidl::encoding::EmptyStruct,
23626            fidl_fuchsia_posix::Errno,
23627        >>(
23628            result,
23629            self.tx_id,
23630            0x2118b483f28aafc4,
23631            fidl::encoding::DynamicFlags::empty(),
23632        )
23633    }
23634}
23635
23636#[must_use = "FIDL methods require a response to be sent"]
23637#[derive(Debug)]
23638pub struct BaseNetworkSocketGetBindToDeviceResponder {
23639    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23640    tx_id: u32,
23641}
23642
23643/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23644/// if the responder is dropped without sending a response, so that the client
23645/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23646impl std::ops::Drop for BaseNetworkSocketGetBindToDeviceResponder {
23647    fn drop(&mut self) {
23648        self.control_handle.shutdown();
23649        // Safety: drops once, never accessed again
23650        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23651    }
23652}
23653
23654impl fidl::endpoints::Responder for BaseNetworkSocketGetBindToDeviceResponder {
23655    type ControlHandle = BaseNetworkSocketControlHandle;
23656
23657    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23658        &self.control_handle
23659    }
23660
23661    fn drop_without_shutdown(mut self) {
23662        // Safety: drops once, never accessed again due to mem::forget
23663        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23664        // Prevent Drop from running (which would shut down the channel)
23665        std::mem::forget(self);
23666    }
23667}
23668
23669impl BaseNetworkSocketGetBindToDeviceResponder {
23670    /// Sends a response to the FIDL transaction.
23671    ///
23672    /// Sets the channel to shutdown if an error occurs.
23673    pub fn send(
23674        self,
23675        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
23676    ) -> Result<(), fidl::Error> {
23677        let _result = self.send_raw(result);
23678        if _result.is_err() {
23679            self.control_handle.shutdown();
23680        }
23681        self.drop_without_shutdown();
23682        _result
23683    }
23684
23685    /// Similar to "send" but does not shutdown the channel if an error occurs.
23686    pub fn send_no_shutdown_on_err(
23687        self,
23688        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
23689    ) -> Result<(), fidl::Error> {
23690        let _result = self.send_raw(result);
23691        self.drop_without_shutdown();
23692        _result
23693    }
23694
23695    fn send_raw(
23696        &self,
23697        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
23698    ) -> Result<(), fidl::Error> {
23699        self.control_handle.inner.send::<fidl::encoding::ResultType<
23700            BaseSocketGetBindToDeviceResponse,
23701            fidl_fuchsia_posix::Errno,
23702        >>(
23703            result.map(|value| (value,)),
23704            self.tx_id,
23705            0x1ab1fbf0ef7906c8,
23706            fidl::encoding::DynamicFlags::empty(),
23707        )
23708    }
23709}
23710
23711#[must_use = "FIDL methods require a response to be sent"]
23712#[derive(Debug)]
23713pub struct BaseNetworkSocketSetBindToInterfaceIndexResponder {
23714    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23715    tx_id: u32,
23716}
23717
23718/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23719/// if the responder is dropped without sending a response, so that the client
23720/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23721impl std::ops::Drop for BaseNetworkSocketSetBindToInterfaceIndexResponder {
23722    fn drop(&mut self) {
23723        self.control_handle.shutdown();
23724        // Safety: drops once, never accessed again
23725        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23726    }
23727}
23728
23729impl fidl::endpoints::Responder for BaseNetworkSocketSetBindToInterfaceIndexResponder {
23730    type ControlHandle = BaseNetworkSocketControlHandle;
23731
23732    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23733        &self.control_handle
23734    }
23735
23736    fn drop_without_shutdown(mut self) {
23737        // Safety: drops once, never accessed again due to mem::forget
23738        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23739        // Prevent Drop from running (which would shut down the channel)
23740        std::mem::forget(self);
23741    }
23742}
23743
23744impl BaseNetworkSocketSetBindToInterfaceIndexResponder {
23745    /// Sends a response to the FIDL transaction.
23746    ///
23747    /// Sets the channel to shutdown if an error occurs.
23748    pub fn send(
23749        self,
23750        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23751    ) -> Result<(), fidl::Error> {
23752        let _result = self.send_raw(result);
23753        if _result.is_err() {
23754            self.control_handle.shutdown();
23755        }
23756        self.drop_without_shutdown();
23757        _result
23758    }
23759
23760    /// Similar to "send" but does not shutdown the channel if an error occurs.
23761    pub fn send_no_shutdown_on_err(
23762        self,
23763        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23764    ) -> Result<(), fidl::Error> {
23765        let _result = self.send_raw(result);
23766        self.drop_without_shutdown();
23767        _result
23768    }
23769
23770    fn send_raw(
23771        &self,
23772        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23773    ) -> Result<(), fidl::Error> {
23774        self.control_handle.inner.send::<fidl::encoding::ResultType<
23775            fidl::encoding::EmptyStruct,
23776            fidl_fuchsia_posix::Errno,
23777        >>(
23778            result,
23779            self.tx_id,
23780            0x6e387a0def00821,
23781            fidl::encoding::DynamicFlags::empty(),
23782        )
23783    }
23784}
23785
23786#[must_use = "FIDL methods require a response to be sent"]
23787#[derive(Debug)]
23788pub struct BaseNetworkSocketGetBindToInterfaceIndexResponder {
23789    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23790    tx_id: u32,
23791}
23792
23793/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23794/// if the responder is dropped without sending a response, so that the client
23795/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23796impl std::ops::Drop for BaseNetworkSocketGetBindToInterfaceIndexResponder {
23797    fn drop(&mut self) {
23798        self.control_handle.shutdown();
23799        // Safety: drops once, never accessed again
23800        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23801    }
23802}
23803
23804impl fidl::endpoints::Responder for BaseNetworkSocketGetBindToInterfaceIndexResponder {
23805    type ControlHandle = BaseNetworkSocketControlHandle;
23806
23807    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23808        &self.control_handle
23809    }
23810
23811    fn drop_without_shutdown(mut self) {
23812        // Safety: drops once, never accessed again due to mem::forget
23813        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23814        // Prevent Drop from running (which would shut down the channel)
23815        std::mem::forget(self);
23816    }
23817}
23818
23819impl BaseNetworkSocketGetBindToInterfaceIndexResponder {
23820    /// Sends a response to the FIDL transaction.
23821    ///
23822    /// Sets the channel to shutdown if an error occurs.
23823    pub fn send(
23824        self,
23825        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23826    ) -> Result<(), fidl::Error> {
23827        let _result = self.send_raw(result);
23828        if _result.is_err() {
23829            self.control_handle.shutdown();
23830        }
23831        self.drop_without_shutdown();
23832        _result
23833    }
23834
23835    /// Similar to "send" but does not shutdown the channel if an error occurs.
23836    pub fn send_no_shutdown_on_err(
23837        self,
23838        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23839    ) -> Result<(), fidl::Error> {
23840        let _result = self.send_raw(result);
23841        self.drop_without_shutdown();
23842        _result
23843    }
23844
23845    fn send_raw(
23846        &self,
23847        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
23848    ) -> Result<(), fidl::Error> {
23849        self.control_handle.inner.send::<fidl::encoding::ResultType<
23850            BaseSocketGetBindToInterfaceIndexResponse,
23851            fidl_fuchsia_posix::Errno,
23852        >>(
23853            result.map(|value| (value,)),
23854            self.tx_id,
23855            0x59c31dd3e3078295,
23856            fidl::encoding::DynamicFlags::empty(),
23857        )
23858    }
23859}
23860
23861#[must_use = "FIDL methods require a response to be sent"]
23862#[derive(Debug)]
23863pub struct BaseNetworkSocketSetTimestampResponder {
23864    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23865    tx_id: u32,
23866}
23867
23868/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23869/// if the responder is dropped without sending a response, so that the client
23870/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23871impl std::ops::Drop for BaseNetworkSocketSetTimestampResponder {
23872    fn drop(&mut self) {
23873        self.control_handle.shutdown();
23874        // Safety: drops once, never accessed again
23875        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23876    }
23877}
23878
23879impl fidl::endpoints::Responder for BaseNetworkSocketSetTimestampResponder {
23880    type ControlHandle = BaseNetworkSocketControlHandle;
23881
23882    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23883        &self.control_handle
23884    }
23885
23886    fn drop_without_shutdown(mut self) {
23887        // Safety: drops once, never accessed again due to mem::forget
23888        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23889        // Prevent Drop from running (which would shut down the channel)
23890        std::mem::forget(self);
23891    }
23892}
23893
23894impl BaseNetworkSocketSetTimestampResponder {
23895    /// Sends a response to the FIDL transaction.
23896    ///
23897    /// Sets the channel to shutdown if an error occurs.
23898    pub fn send(
23899        self,
23900        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23901    ) -> Result<(), fidl::Error> {
23902        let _result = self.send_raw(result);
23903        if _result.is_err() {
23904            self.control_handle.shutdown();
23905        }
23906        self.drop_without_shutdown();
23907        _result
23908    }
23909
23910    /// Similar to "send" but does not shutdown the channel if an error occurs.
23911    pub fn send_no_shutdown_on_err(
23912        self,
23913        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23914    ) -> Result<(), fidl::Error> {
23915        let _result = self.send_raw(result);
23916        self.drop_without_shutdown();
23917        _result
23918    }
23919
23920    fn send_raw(
23921        &self,
23922        mut result: Result<(), fidl_fuchsia_posix::Errno>,
23923    ) -> Result<(), fidl::Error> {
23924        self.control_handle.inner.send::<fidl::encoding::ResultType<
23925            fidl::encoding::EmptyStruct,
23926            fidl_fuchsia_posix::Errno,
23927        >>(
23928            result,
23929            self.tx_id,
23930            0x285d6516c263d839,
23931            fidl::encoding::DynamicFlags::empty(),
23932        )
23933    }
23934}
23935
23936#[must_use = "FIDL methods require a response to be sent"]
23937#[derive(Debug)]
23938pub struct BaseNetworkSocketGetTimestampResponder {
23939    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
23940    tx_id: u32,
23941}
23942
23943/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
23944/// if the responder is dropped without sending a response, so that the client
23945/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
23946impl std::ops::Drop for BaseNetworkSocketGetTimestampResponder {
23947    fn drop(&mut self) {
23948        self.control_handle.shutdown();
23949        // Safety: drops once, never accessed again
23950        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23951    }
23952}
23953
23954impl fidl::endpoints::Responder for BaseNetworkSocketGetTimestampResponder {
23955    type ControlHandle = BaseNetworkSocketControlHandle;
23956
23957    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
23958        &self.control_handle
23959    }
23960
23961    fn drop_without_shutdown(mut self) {
23962        // Safety: drops once, never accessed again due to mem::forget
23963        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
23964        // Prevent Drop from running (which would shut down the channel)
23965        std::mem::forget(self);
23966    }
23967}
23968
23969impl BaseNetworkSocketGetTimestampResponder {
23970    /// Sends a response to the FIDL transaction.
23971    ///
23972    /// Sets the channel to shutdown if an error occurs.
23973    pub fn send(
23974        self,
23975        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
23976    ) -> Result<(), fidl::Error> {
23977        let _result = self.send_raw(result);
23978        if _result.is_err() {
23979            self.control_handle.shutdown();
23980        }
23981        self.drop_without_shutdown();
23982        _result
23983    }
23984
23985    /// Similar to "send" but does not shutdown the channel if an error occurs.
23986    pub fn send_no_shutdown_on_err(
23987        self,
23988        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
23989    ) -> Result<(), fidl::Error> {
23990        let _result = self.send_raw(result);
23991        self.drop_without_shutdown();
23992        _result
23993    }
23994
23995    fn send_raw(
23996        &self,
23997        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
23998    ) -> Result<(), fidl::Error> {
23999        self.control_handle.inner.send::<fidl::encoding::ResultType<
24000            BaseSocketGetTimestampResponse,
24001            fidl_fuchsia_posix::Errno,
24002        >>(
24003            result.map(|value| (value,)),
24004            self.tx_id,
24005            0x49f2fffbbcc2bd27,
24006            fidl::encoding::DynamicFlags::empty(),
24007        )
24008    }
24009}
24010
24011#[must_use = "FIDL methods require a response to be sent"]
24012#[derive(Debug)]
24013pub struct BaseNetworkSocketSetMarkResponder {
24014    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24015    tx_id: u32,
24016}
24017
24018/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24019/// if the responder is dropped without sending a response, so that the client
24020/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24021impl std::ops::Drop for BaseNetworkSocketSetMarkResponder {
24022    fn drop(&mut self) {
24023        self.control_handle.shutdown();
24024        // Safety: drops once, never accessed again
24025        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24026    }
24027}
24028
24029impl fidl::endpoints::Responder for BaseNetworkSocketSetMarkResponder {
24030    type ControlHandle = BaseNetworkSocketControlHandle;
24031
24032    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24033        &self.control_handle
24034    }
24035
24036    fn drop_without_shutdown(mut self) {
24037        // Safety: drops once, never accessed again due to mem::forget
24038        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24039        // Prevent Drop from running (which would shut down the channel)
24040        std::mem::forget(self);
24041    }
24042}
24043
24044impl BaseNetworkSocketSetMarkResponder {
24045    /// Sends a response to the FIDL transaction.
24046    ///
24047    /// Sets the channel to shutdown if an error occurs.
24048    pub fn send(
24049        self,
24050        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24051    ) -> Result<(), fidl::Error> {
24052        let _result = self.send_raw(result);
24053        if _result.is_err() {
24054            self.control_handle.shutdown();
24055        }
24056        self.drop_without_shutdown();
24057        _result
24058    }
24059
24060    /// Similar to "send" but does not shutdown the channel if an error occurs.
24061    pub fn send_no_shutdown_on_err(
24062        self,
24063        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24064    ) -> Result<(), fidl::Error> {
24065        let _result = self.send_raw(result);
24066        self.drop_without_shutdown();
24067        _result
24068    }
24069
24070    fn send_raw(
24071        &self,
24072        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24073    ) -> Result<(), fidl::Error> {
24074        self.control_handle.inner.send::<fidl::encoding::ResultType<
24075            fidl::encoding::EmptyStruct,
24076            fidl_fuchsia_posix::Errno,
24077        >>(
24078            result,
24079            self.tx_id,
24080            0x6ead6de09f653236,
24081            fidl::encoding::DynamicFlags::empty(),
24082        )
24083    }
24084}
24085
24086#[must_use = "FIDL methods require a response to be sent"]
24087#[derive(Debug)]
24088pub struct BaseNetworkSocketGetMarkResponder {
24089    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24090    tx_id: u32,
24091}
24092
24093/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24094/// if the responder is dropped without sending a response, so that the client
24095/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24096impl std::ops::Drop for BaseNetworkSocketGetMarkResponder {
24097    fn drop(&mut self) {
24098        self.control_handle.shutdown();
24099        // Safety: drops once, never accessed again
24100        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24101    }
24102}
24103
24104impl fidl::endpoints::Responder for BaseNetworkSocketGetMarkResponder {
24105    type ControlHandle = BaseNetworkSocketControlHandle;
24106
24107    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24108        &self.control_handle
24109    }
24110
24111    fn drop_without_shutdown(mut self) {
24112        // Safety: drops once, never accessed again due to mem::forget
24113        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24114        // Prevent Drop from running (which would shut down the channel)
24115        std::mem::forget(self);
24116    }
24117}
24118
24119impl BaseNetworkSocketGetMarkResponder {
24120    /// Sends a response to the FIDL transaction.
24121    ///
24122    /// Sets the channel to shutdown if an error occurs.
24123    pub fn send(
24124        self,
24125        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
24126    ) -> Result<(), fidl::Error> {
24127        let _result = self.send_raw(result);
24128        if _result.is_err() {
24129            self.control_handle.shutdown();
24130        }
24131        self.drop_without_shutdown();
24132        _result
24133    }
24134
24135    /// Similar to "send" but does not shutdown the channel if an error occurs.
24136    pub fn send_no_shutdown_on_err(
24137        self,
24138        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
24139    ) -> Result<(), fidl::Error> {
24140        let _result = self.send_raw(result);
24141        self.drop_without_shutdown();
24142        _result
24143    }
24144
24145    fn send_raw(
24146        &self,
24147        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
24148    ) -> Result<(), fidl::Error> {
24149        self.control_handle.inner.send::<fidl::encoding::ResultType<
24150            BaseSocketGetMarkResponse,
24151            fidl_fuchsia_posix::Errno,
24152        >>(
24153            result.map(|mark| (mark,)),
24154            self.tx_id,
24155            0x57a2752c61d93d47,
24156            fidl::encoding::DynamicFlags::empty(),
24157        )
24158    }
24159}
24160
24161#[must_use = "FIDL methods require a response to be sent"]
24162#[derive(Debug)]
24163pub struct BaseNetworkSocketGetCookieResponder {
24164    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24165    tx_id: u32,
24166}
24167
24168/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24169/// if the responder is dropped without sending a response, so that the client
24170/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24171impl std::ops::Drop for BaseNetworkSocketGetCookieResponder {
24172    fn drop(&mut self) {
24173        self.control_handle.shutdown();
24174        // Safety: drops once, never accessed again
24175        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24176    }
24177}
24178
24179impl fidl::endpoints::Responder for BaseNetworkSocketGetCookieResponder {
24180    type ControlHandle = BaseNetworkSocketControlHandle;
24181
24182    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24183        &self.control_handle
24184    }
24185
24186    fn drop_without_shutdown(mut self) {
24187        // Safety: drops once, never accessed again due to mem::forget
24188        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24189        // Prevent Drop from running (which would shut down the channel)
24190        std::mem::forget(self);
24191    }
24192}
24193
24194impl BaseNetworkSocketGetCookieResponder {
24195    /// Sends a response to the FIDL transaction.
24196    ///
24197    /// Sets the channel to shutdown if an error occurs.
24198    pub fn send(
24199        self,
24200        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24201    ) -> Result<(), fidl::Error> {
24202        let _result = self.send_raw(result);
24203        if _result.is_err() {
24204            self.control_handle.shutdown();
24205        }
24206        self.drop_without_shutdown();
24207        _result
24208    }
24209
24210    /// Similar to "send" but does not shutdown the channel if an error occurs.
24211    pub fn send_no_shutdown_on_err(
24212        self,
24213        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24214    ) -> Result<(), fidl::Error> {
24215        let _result = self.send_raw(result);
24216        self.drop_without_shutdown();
24217        _result
24218    }
24219
24220    fn send_raw(
24221        &self,
24222        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
24223    ) -> Result<(), fidl::Error> {
24224        self.control_handle.inner.send::<fidl::encoding::ResultType<
24225            BaseSocketGetCookieResponse,
24226            fidl_fuchsia_posix::Errno,
24227        >>(
24228            result.map(|value| (value,)),
24229            self.tx_id,
24230            0x2c2f47fd8f924e52,
24231            fidl::encoding::DynamicFlags::empty(),
24232        )
24233    }
24234}
24235
24236#[must_use = "FIDL methods require a response to be sent"]
24237#[derive(Debug)]
24238pub struct BaseNetworkSocketBindResponder {
24239    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24240    tx_id: u32,
24241}
24242
24243/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24244/// if the responder is dropped without sending a response, so that the client
24245/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24246impl std::ops::Drop for BaseNetworkSocketBindResponder {
24247    fn drop(&mut self) {
24248        self.control_handle.shutdown();
24249        // Safety: drops once, never accessed again
24250        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24251    }
24252}
24253
24254impl fidl::endpoints::Responder for BaseNetworkSocketBindResponder {
24255    type ControlHandle = BaseNetworkSocketControlHandle;
24256
24257    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24258        &self.control_handle
24259    }
24260
24261    fn drop_without_shutdown(mut self) {
24262        // Safety: drops once, never accessed again due to mem::forget
24263        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24264        // Prevent Drop from running (which would shut down the channel)
24265        std::mem::forget(self);
24266    }
24267}
24268
24269impl BaseNetworkSocketBindResponder {
24270    /// Sends a response to the FIDL transaction.
24271    ///
24272    /// Sets the channel to shutdown if an error occurs.
24273    pub fn send(
24274        self,
24275        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24276    ) -> Result<(), fidl::Error> {
24277        let _result = self.send_raw(result);
24278        if _result.is_err() {
24279            self.control_handle.shutdown();
24280        }
24281        self.drop_without_shutdown();
24282        _result
24283    }
24284
24285    /// Similar to "send" but does not shutdown the channel if an error occurs.
24286    pub fn send_no_shutdown_on_err(
24287        self,
24288        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24289    ) -> Result<(), fidl::Error> {
24290        let _result = self.send_raw(result);
24291        self.drop_without_shutdown();
24292        _result
24293    }
24294
24295    fn send_raw(
24296        &self,
24297        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24298    ) -> Result<(), fidl::Error> {
24299        self.control_handle.inner.send::<fidl::encoding::ResultType<
24300            fidl::encoding::EmptyStruct,
24301            fidl_fuchsia_posix::Errno,
24302        >>(
24303            result,
24304            self.tx_id,
24305            0x4bc6400ae92125d,
24306            fidl::encoding::DynamicFlags::empty(),
24307        )
24308    }
24309}
24310
24311#[must_use = "FIDL methods require a response to be sent"]
24312#[derive(Debug)]
24313pub struct BaseNetworkSocketConnectResponder {
24314    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24315    tx_id: u32,
24316}
24317
24318/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24319/// if the responder is dropped without sending a response, so that the client
24320/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24321impl std::ops::Drop for BaseNetworkSocketConnectResponder {
24322    fn drop(&mut self) {
24323        self.control_handle.shutdown();
24324        // Safety: drops once, never accessed again
24325        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24326    }
24327}
24328
24329impl fidl::endpoints::Responder for BaseNetworkSocketConnectResponder {
24330    type ControlHandle = BaseNetworkSocketControlHandle;
24331
24332    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24333        &self.control_handle
24334    }
24335
24336    fn drop_without_shutdown(mut self) {
24337        // Safety: drops once, never accessed again due to mem::forget
24338        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24339        // Prevent Drop from running (which would shut down the channel)
24340        std::mem::forget(self);
24341    }
24342}
24343
24344impl BaseNetworkSocketConnectResponder {
24345    /// Sends a response to the FIDL transaction.
24346    ///
24347    /// Sets the channel to shutdown if an error occurs.
24348    pub fn send(
24349        self,
24350        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24351    ) -> Result<(), fidl::Error> {
24352        let _result = self.send_raw(result);
24353        if _result.is_err() {
24354            self.control_handle.shutdown();
24355        }
24356        self.drop_without_shutdown();
24357        _result
24358    }
24359
24360    /// Similar to "send" but does not shutdown the channel if an error occurs.
24361    pub fn send_no_shutdown_on_err(
24362        self,
24363        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24364    ) -> Result<(), fidl::Error> {
24365        let _result = self.send_raw(result);
24366        self.drop_without_shutdown();
24367        _result
24368    }
24369
24370    fn send_raw(
24371        &self,
24372        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24373    ) -> Result<(), fidl::Error> {
24374        self.control_handle.inner.send::<fidl::encoding::ResultType<
24375            fidl::encoding::EmptyStruct,
24376            fidl_fuchsia_posix::Errno,
24377        >>(
24378            result,
24379            self.tx_id,
24380            0x5f05f19bfdd38871,
24381            fidl::encoding::DynamicFlags::empty(),
24382        )
24383    }
24384}
24385
24386#[must_use = "FIDL methods require a response to be sent"]
24387#[derive(Debug)]
24388pub struct BaseNetworkSocketDisconnectResponder {
24389    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24390    tx_id: u32,
24391}
24392
24393/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24394/// if the responder is dropped without sending a response, so that the client
24395/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24396impl std::ops::Drop for BaseNetworkSocketDisconnectResponder {
24397    fn drop(&mut self) {
24398        self.control_handle.shutdown();
24399        // Safety: drops once, never accessed again
24400        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24401    }
24402}
24403
24404impl fidl::endpoints::Responder for BaseNetworkSocketDisconnectResponder {
24405    type ControlHandle = BaseNetworkSocketControlHandle;
24406
24407    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24408        &self.control_handle
24409    }
24410
24411    fn drop_without_shutdown(mut self) {
24412        // Safety: drops once, never accessed again due to mem::forget
24413        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24414        // Prevent Drop from running (which would shut down the channel)
24415        std::mem::forget(self);
24416    }
24417}
24418
24419impl BaseNetworkSocketDisconnectResponder {
24420    /// Sends a response to the FIDL transaction.
24421    ///
24422    /// Sets the channel to shutdown if an error occurs.
24423    pub fn send(
24424        self,
24425        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24426    ) -> Result<(), fidl::Error> {
24427        let _result = self.send_raw(result);
24428        if _result.is_err() {
24429            self.control_handle.shutdown();
24430        }
24431        self.drop_without_shutdown();
24432        _result
24433    }
24434
24435    /// Similar to "send" but does not shutdown the channel if an error occurs.
24436    pub fn send_no_shutdown_on_err(
24437        self,
24438        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24439    ) -> Result<(), fidl::Error> {
24440        let _result = self.send_raw(result);
24441        self.drop_without_shutdown();
24442        _result
24443    }
24444
24445    fn send_raw(
24446        &self,
24447        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24448    ) -> Result<(), fidl::Error> {
24449        self.control_handle.inner.send::<fidl::encoding::ResultType<
24450            fidl::encoding::EmptyStruct,
24451            fidl_fuchsia_posix::Errno,
24452        >>(
24453            result,
24454            self.tx_id,
24455            0x74e63b91f7b29b2,
24456            fidl::encoding::DynamicFlags::empty(),
24457        )
24458    }
24459}
24460
24461#[must_use = "FIDL methods require a response to be sent"]
24462#[derive(Debug)]
24463pub struct BaseNetworkSocketGetSockNameResponder {
24464    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24465    tx_id: u32,
24466}
24467
24468/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24469/// if the responder is dropped without sending a response, so that the client
24470/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24471impl std::ops::Drop for BaseNetworkSocketGetSockNameResponder {
24472    fn drop(&mut self) {
24473        self.control_handle.shutdown();
24474        // Safety: drops once, never accessed again
24475        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24476    }
24477}
24478
24479impl fidl::endpoints::Responder for BaseNetworkSocketGetSockNameResponder {
24480    type ControlHandle = BaseNetworkSocketControlHandle;
24481
24482    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24483        &self.control_handle
24484    }
24485
24486    fn drop_without_shutdown(mut self) {
24487        // Safety: drops once, never accessed again due to mem::forget
24488        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24489        // Prevent Drop from running (which would shut down the channel)
24490        std::mem::forget(self);
24491    }
24492}
24493
24494impl BaseNetworkSocketGetSockNameResponder {
24495    /// Sends a response to the FIDL transaction.
24496    ///
24497    /// Sets the channel to shutdown if an error occurs.
24498    pub fn send(
24499        self,
24500        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24501    ) -> Result<(), fidl::Error> {
24502        let _result = self.send_raw(result);
24503        if _result.is_err() {
24504            self.control_handle.shutdown();
24505        }
24506        self.drop_without_shutdown();
24507        _result
24508    }
24509
24510    /// Similar to "send" but does not shutdown the channel if an error occurs.
24511    pub fn send_no_shutdown_on_err(
24512        self,
24513        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24514    ) -> Result<(), fidl::Error> {
24515        let _result = self.send_raw(result);
24516        self.drop_without_shutdown();
24517        _result
24518    }
24519
24520    fn send_raw(
24521        &self,
24522        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24523    ) -> Result<(), fidl::Error> {
24524        self.control_handle.inner.send::<fidl::encoding::ResultType<
24525            BaseNetworkSocketGetSockNameResponse,
24526            fidl_fuchsia_posix::Errno,
24527        >>(
24528            result.map(|addr| (addr,)),
24529            self.tx_id,
24530            0x475f23f84a1a4f85,
24531            fidl::encoding::DynamicFlags::empty(),
24532        )
24533    }
24534}
24535
24536#[must_use = "FIDL methods require a response to be sent"]
24537#[derive(Debug)]
24538pub struct BaseNetworkSocketGetPeerNameResponder {
24539    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24540    tx_id: u32,
24541}
24542
24543/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24544/// if the responder is dropped without sending a response, so that the client
24545/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24546impl std::ops::Drop for BaseNetworkSocketGetPeerNameResponder {
24547    fn drop(&mut self) {
24548        self.control_handle.shutdown();
24549        // Safety: drops once, never accessed again
24550        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24551    }
24552}
24553
24554impl fidl::endpoints::Responder for BaseNetworkSocketGetPeerNameResponder {
24555    type ControlHandle = BaseNetworkSocketControlHandle;
24556
24557    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24558        &self.control_handle
24559    }
24560
24561    fn drop_without_shutdown(mut self) {
24562        // Safety: drops once, never accessed again due to mem::forget
24563        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24564        // Prevent Drop from running (which would shut down the channel)
24565        std::mem::forget(self);
24566    }
24567}
24568
24569impl BaseNetworkSocketGetPeerNameResponder {
24570    /// Sends a response to the FIDL transaction.
24571    ///
24572    /// Sets the channel to shutdown if an error occurs.
24573    pub fn send(
24574        self,
24575        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24576    ) -> Result<(), fidl::Error> {
24577        let _result = self.send_raw(result);
24578        if _result.is_err() {
24579            self.control_handle.shutdown();
24580        }
24581        self.drop_without_shutdown();
24582        _result
24583    }
24584
24585    /// Similar to "send" but does not shutdown the channel if an error occurs.
24586    pub fn send_no_shutdown_on_err(
24587        self,
24588        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24589    ) -> Result<(), fidl::Error> {
24590        let _result = self.send_raw(result);
24591        self.drop_without_shutdown();
24592        _result
24593    }
24594
24595    fn send_raw(
24596        &self,
24597        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
24598    ) -> Result<(), fidl::Error> {
24599        self.control_handle.inner.send::<fidl::encoding::ResultType<
24600            BaseNetworkSocketGetPeerNameResponse,
24601            fidl_fuchsia_posix::Errno,
24602        >>(
24603            result.map(|addr| (addr,)),
24604            self.tx_id,
24605            0x1ffecf4bd5b6432e,
24606            fidl::encoding::DynamicFlags::empty(),
24607        )
24608    }
24609}
24610
24611#[must_use = "FIDL methods require a response to be sent"]
24612#[derive(Debug)]
24613pub struct BaseNetworkSocketShutdownResponder {
24614    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24615    tx_id: u32,
24616}
24617
24618/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24619/// if the responder is dropped without sending a response, so that the client
24620/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24621impl std::ops::Drop for BaseNetworkSocketShutdownResponder {
24622    fn drop(&mut self) {
24623        self.control_handle.shutdown();
24624        // Safety: drops once, never accessed again
24625        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24626    }
24627}
24628
24629impl fidl::endpoints::Responder for BaseNetworkSocketShutdownResponder {
24630    type ControlHandle = BaseNetworkSocketControlHandle;
24631
24632    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24633        &self.control_handle
24634    }
24635
24636    fn drop_without_shutdown(mut self) {
24637        // Safety: drops once, never accessed again due to mem::forget
24638        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24639        // Prevent Drop from running (which would shut down the channel)
24640        std::mem::forget(self);
24641    }
24642}
24643
24644impl BaseNetworkSocketShutdownResponder {
24645    /// Sends a response to the FIDL transaction.
24646    ///
24647    /// Sets the channel to shutdown if an error occurs.
24648    pub fn send(
24649        self,
24650        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24651    ) -> Result<(), fidl::Error> {
24652        let _result = self.send_raw(result);
24653        if _result.is_err() {
24654            self.control_handle.shutdown();
24655        }
24656        self.drop_without_shutdown();
24657        _result
24658    }
24659
24660    /// Similar to "send" but does not shutdown the channel if an error occurs.
24661    pub fn send_no_shutdown_on_err(
24662        self,
24663        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24664    ) -> Result<(), fidl::Error> {
24665        let _result = self.send_raw(result);
24666        self.drop_without_shutdown();
24667        _result
24668    }
24669
24670    fn send_raw(
24671        &self,
24672        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24673    ) -> Result<(), fidl::Error> {
24674        self.control_handle.inner.send::<fidl::encoding::ResultType<
24675            fidl::encoding::EmptyStruct,
24676            fidl_fuchsia_posix::Errno,
24677        >>(
24678            result,
24679            self.tx_id,
24680            0x247f38b6db68c336,
24681            fidl::encoding::DynamicFlags::empty(),
24682        )
24683    }
24684}
24685
24686#[must_use = "FIDL methods require a response to be sent"]
24687#[derive(Debug)]
24688pub struct BaseNetworkSocketSetIpTypeOfServiceResponder {
24689    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24690    tx_id: u32,
24691}
24692
24693/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24694/// if the responder is dropped without sending a response, so that the client
24695/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24696impl std::ops::Drop for BaseNetworkSocketSetIpTypeOfServiceResponder {
24697    fn drop(&mut self) {
24698        self.control_handle.shutdown();
24699        // Safety: drops once, never accessed again
24700        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24701    }
24702}
24703
24704impl fidl::endpoints::Responder for BaseNetworkSocketSetIpTypeOfServiceResponder {
24705    type ControlHandle = BaseNetworkSocketControlHandle;
24706
24707    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24708        &self.control_handle
24709    }
24710
24711    fn drop_without_shutdown(mut self) {
24712        // Safety: drops once, never accessed again due to mem::forget
24713        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24714        // Prevent Drop from running (which would shut down the channel)
24715        std::mem::forget(self);
24716    }
24717}
24718
24719impl BaseNetworkSocketSetIpTypeOfServiceResponder {
24720    /// Sends a response to the FIDL transaction.
24721    ///
24722    /// Sets the channel to shutdown if an error occurs.
24723    pub fn send(
24724        self,
24725        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24726    ) -> Result<(), fidl::Error> {
24727        let _result = self.send_raw(result);
24728        if _result.is_err() {
24729            self.control_handle.shutdown();
24730        }
24731        self.drop_without_shutdown();
24732        _result
24733    }
24734
24735    /// Similar to "send" but does not shutdown the channel if an error occurs.
24736    pub fn send_no_shutdown_on_err(
24737        self,
24738        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24739    ) -> Result<(), fidl::Error> {
24740        let _result = self.send_raw(result);
24741        self.drop_without_shutdown();
24742        _result
24743    }
24744
24745    fn send_raw(
24746        &self,
24747        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24748    ) -> Result<(), fidl::Error> {
24749        self.control_handle.inner.send::<fidl::encoding::ResultType<
24750            fidl::encoding::EmptyStruct,
24751            fidl_fuchsia_posix::Errno,
24752        >>(
24753            result,
24754            self.tx_id,
24755            0x995c600475b6d46,
24756            fidl::encoding::DynamicFlags::empty(),
24757        )
24758    }
24759}
24760
24761#[must_use = "FIDL methods require a response to be sent"]
24762#[derive(Debug)]
24763pub struct BaseNetworkSocketGetIpTypeOfServiceResponder {
24764    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24765    tx_id: u32,
24766}
24767
24768/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24769/// if the responder is dropped without sending a response, so that the client
24770/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24771impl std::ops::Drop for BaseNetworkSocketGetIpTypeOfServiceResponder {
24772    fn drop(&mut self) {
24773        self.control_handle.shutdown();
24774        // Safety: drops once, never accessed again
24775        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24776    }
24777}
24778
24779impl fidl::endpoints::Responder for BaseNetworkSocketGetIpTypeOfServiceResponder {
24780    type ControlHandle = BaseNetworkSocketControlHandle;
24781
24782    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24783        &self.control_handle
24784    }
24785
24786    fn drop_without_shutdown(mut self) {
24787        // Safety: drops once, never accessed again due to mem::forget
24788        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24789        // Prevent Drop from running (which would shut down the channel)
24790        std::mem::forget(self);
24791    }
24792}
24793
24794impl BaseNetworkSocketGetIpTypeOfServiceResponder {
24795    /// Sends a response to the FIDL transaction.
24796    ///
24797    /// Sets the channel to shutdown if an error occurs.
24798    pub fn send(
24799        self,
24800        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24801    ) -> Result<(), fidl::Error> {
24802        let _result = self.send_raw(result);
24803        if _result.is_err() {
24804            self.control_handle.shutdown();
24805        }
24806        self.drop_without_shutdown();
24807        _result
24808    }
24809
24810    /// Similar to "send" but does not shutdown the channel if an error occurs.
24811    pub fn send_no_shutdown_on_err(
24812        self,
24813        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24814    ) -> Result<(), fidl::Error> {
24815        let _result = self.send_raw(result);
24816        self.drop_without_shutdown();
24817        _result
24818    }
24819
24820    fn send_raw(
24821        &self,
24822        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24823    ) -> Result<(), fidl::Error> {
24824        self.control_handle.inner.send::<fidl::encoding::ResultType<
24825            BaseNetworkSocketGetIpTypeOfServiceResponse,
24826            fidl_fuchsia_posix::Errno,
24827        >>(
24828            result.map(|value| (value,)),
24829            self.tx_id,
24830            0x3814a04259f75fcb,
24831            fidl::encoding::DynamicFlags::empty(),
24832        )
24833    }
24834}
24835
24836#[must_use = "FIDL methods require a response to be sent"]
24837#[derive(Debug)]
24838pub struct BaseNetworkSocketSetIpTtlResponder {
24839    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24840    tx_id: u32,
24841}
24842
24843/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24844/// if the responder is dropped without sending a response, so that the client
24845/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24846impl std::ops::Drop for BaseNetworkSocketSetIpTtlResponder {
24847    fn drop(&mut self) {
24848        self.control_handle.shutdown();
24849        // Safety: drops once, never accessed again
24850        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24851    }
24852}
24853
24854impl fidl::endpoints::Responder for BaseNetworkSocketSetIpTtlResponder {
24855    type ControlHandle = BaseNetworkSocketControlHandle;
24856
24857    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24858        &self.control_handle
24859    }
24860
24861    fn drop_without_shutdown(mut self) {
24862        // Safety: drops once, never accessed again due to mem::forget
24863        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24864        // Prevent Drop from running (which would shut down the channel)
24865        std::mem::forget(self);
24866    }
24867}
24868
24869impl BaseNetworkSocketSetIpTtlResponder {
24870    /// Sends a response to the FIDL transaction.
24871    ///
24872    /// Sets the channel to shutdown if an error occurs.
24873    pub fn send(
24874        self,
24875        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24876    ) -> Result<(), fidl::Error> {
24877        let _result = self.send_raw(result);
24878        if _result.is_err() {
24879            self.control_handle.shutdown();
24880        }
24881        self.drop_without_shutdown();
24882        _result
24883    }
24884
24885    /// Similar to "send" but does not shutdown the channel if an error occurs.
24886    pub fn send_no_shutdown_on_err(
24887        self,
24888        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24889    ) -> Result<(), fidl::Error> {
24890        let _result = self.send_raw(result);
24891        self.drop_without_shutdown();
24892        _result
24893    }
24894
24895    fn send_raw(
24896        &self,
24897        mut result: Result<(), fidl_fuchsia_posix::Errno>,
24898    ) -> Result<(), fidl::Error> {
24899        self.control_handle.inner.send::<fidl::encoding::ResultType<
24900            fidl::encoding::EmptyStruct,
24901            fidl_fuchsia_posix::Errno,
24902        >>(
24903            result,
24904            self.tx_id,
24905            0x29e2424b433ae1ef,
24906            fidl::encoding::DynamicFlags::empty(),
24907        )
24908    }
24909}
24910
24911#[must_use = "FIDL methods require a response to be sent"]
24912#[derive(Debug)]
24913pub struct BaseNetworkSocketGetIpTtlResponder {
24914    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24915    tx_id: u32,
24916}
24917
24918/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24919/// if the responder is dropped without sending a response, so that the client
24920/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24921impl std::ops::Drop for BaseNetworkSocketGetIpTtlResponder {
24922    fn drop(&mut self) {
24923        self.control_handle.shutdown();
24924        // Safety: drops once, never accessed again
24925        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24926    }
24927}
24928
24929impl fidl::endpoints::Responder for BaseNetworkSocketGetIpTtlResponder {
24930    type ControlHandle = BaseNetworkSocketControlHandle;
24931
24932    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
24933        &self.control_handle
24934    }
24935
24936    fn drop_without_shutdown(mut self) {
24937        // Safety: drops once, never accessed again due to mem::forget
24938        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
24939        // Prevent Drop from running (which would shut down the channel)
24940        std::mem::forget(self);
24941    }
24942}
24943
24944impl BaseNetworkSocketGetIpTtlResponder {
24945    /// Sends a response to the FIDL transaction.
24946    ///
24947    /// Sets the channel to shutdown if an error occurs.
24948    pub fn send(
24949        self,
24950        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24951    ) -> Result<(), fidl::Error> {
24952        let _result = self.send_raw(result);
24953        if _result.is_err() {
24954            self.control_handle.shutdown();
24955        }
24956        self.drop_without_shutdown();
24957        _result
24958    }
24959
24960    /// Similar to "send" but does not shutdown the channel if an error occurs.
24961    pub fn send_no_shutdown_on_err(
24962        self,
24963        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24964    ) -> Result<(), fidl::Error> {
24965        let _result = self.send_raw(result);
24966        self.drop_without_shutdown();
24967        _result
24968    }
24969
24970    fn send_raw(
24971        &self,
24972        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
24973    ) -> Result<(), fidl::Error> {
24974        self.control_handle.inner.send::<fidl::encoding::ResultType<
24975            BaseNetworkSocketGetIpTtlResponse,
24976            fidl_fuchsia_posix::Errno,
24977        >>(
24978            result.map(|value| (value,)),
24979            self.tx_id,
24980            0x47e47fa1f24da471,
24981            fidl::encoding::DynamicFlags::empty(),
24982        )
24983    }
24984}
24985
24986#[must_use = "FIDL methods require a response to be sent"]
24987#[derive(Debug)]
24988pub struct BaseNetworkSocketSetIpPacketInfoResponder {
24989    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
24990    tx_id: u32,
24991}
24992
24993/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
24994/// if the responder is dropped without sending a response, so that the client
24995/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
24996impl std::ops::Drop for BaseNetworkSocketSetIpPacketInfoResponder {
24997    fn drop(&mut self) {
24998        self.control_handle.shutdown();
24999        // Safety: drops once, never accessed again
25000        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25001    }
25002}
25003
25004impl fidl::endpoints::Responder for BaseNetworkSocketSetIpPacketInfoResponder {
25005    type ControlHandle = BaseNetworkSocketControlHandle;
25006
25007    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25008        &self.control_handle
25009    }
25010
25011    fn drop_without_shutdown(mut self) {
25012        // Safety: drops once, never accessed again due to mem::forget
25013        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25014        // Prevent Drop from running (which would shut down the channel)
25015        std::mem::forget(self);
25016    }
25017}
25018
25019impl BaseNetworkSocketSetIpPacketInfoResponder {
25020    /// Sends a response to the FIDL transaction.
25021    ///
25022    /// Sets the channel to shutdown if an error occurs.
25023    pub fn send(
25024        self,
25025        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25026    ) -> Result<(), fidl::Error> {
25027        let _result = self.send_raw(result);
25028        if _result.is_err() {
25029            self.control_handle.shutdown();
25030        }
25031        self.drop_without_shutdown();
25032        _result
25033    }
25034
25035    /// Similar to "send" but does not shutdown the channel if an error occurs.
25036    pub fn send_no_shutdown_on_err(
25037        self,
25038        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25039    ) -> Result<(), fidl::Error> {
25040        let _result = self.send_raw(result);
25041        self.drop_without_shutdown();
25042        _result
25043    }
25044
25045    fn send_raw(
25046        &self,
25047        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25048    ) -> Result<(), fidl::Error> {
25049        self.control_handle.inner.send::<fidl::encoding::ResultType<
25050            fidl::encoding::EmptyStruct,
25051            fidl_fuchsia_posix::Errno,
25052        >>(
25053            result,
25054            self.tx_id,
25055            0x392d16bee20c0e16,
25056            fidl::encoding::DynamicFlags::empty(),
25057        )
25058    }
25059}
25060
25061#[must_use = "FIDL methods require a response to be sent"]
25062#[derive(Debug)]
25063pub struct BaseNetworkSocketGetIpPacketInfoResponder {
25064    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25065    tx_id: u32,
25066}
25067
25068/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25069/// if the responder is dropped without sending a response, so that the client
25070/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25071impl std::ops::Drop for BaseNetworkSocketGetIpPacketInfoResponder {
25072    fn drop(&mut self) {
25073        self.control_handle.shutdown();
25074        // Safety: drops once, never accessed again
25075        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25076    }
25077}
25078
25079impl fidl::endpoints::Responder for BaseNetworkSocketGetIpPacketInfoResponder {
25080    type ControlHandle = BaseNetworkSocketControlHandle;
25081
25082    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25083        &self.control_handle
25084    }
25085
25086    fn drop_without_shutdown(mut self) {
25087        // Safety: drops once, never accessed again due to mem::forget
25088        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25089        // Prevent Drop from running (which would shut down the channel)
25090        std::mem::forget(self);
25091    }
25092}
25093
25094impl BaseNetworkSocketGetIpPacketInfoResponder {
25095    /// Sends a response to the FIDL transaction.
25096    ///
25097    /// Sets the channel to shutdown if an error occurs.
25098    pub fn send(
25099        self,
25100        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25101    ) -> Result<(), fidl::Error> {
25102        let _result = self.send_raw(result);
25103        if _result.is_err() {
25104            self.control_handle.shutdown();
25105        }
25106        self.drop_without_shutdown();
25107        _result
25108    }
25109
25110    /// Similar to "send" but does not shutdown the channel if an error occurs.
25111    pub fn send_no_shutdown_on_err(
25112        self,
25113        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25114    ) -> Result<(), fidl::Error> {
25115        let _result = self.send_raw(result);
25116        self.drop_without_shutdown();
25117        _result
25118    }
25119
25120    fn send_raw(
25121        &self,
25122        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25123    ) -> Result<(), fidl::Error> {
25124        self.control_handle.inner.send::<fidl::encoding::ResultType<
25125            BaseNetworkSocketGetIpPacketInfoResponse,
25126            fidl_fuchsia_posix::Errno,
25127        >>(
25128            result.map(|value| (value,)),
25129            self.tx_id,
25130            0x54b505f242280740,
25131            fidl::encoding::DynamicFlags::empty(),
25132        )
25133    }
25134}
25135
25136#[must_use = "FIDL methods require a response to be sent"]
25137#[derive(Debug)]
25138pub struct BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25139    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25140    tx_id: u32,
25141}
25142
25143/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25144/// if the responder is dropped without sending a response, so that the client
25145/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25146impl std::ops::Drop for BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25147    fn drop(&mut self) {
25148        self.control_handle.shutdown();
25149        // Safety: drops once, never accessed again
25150        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25151    }
25152}
25153
25154impl fidl::endpoints::Responder for BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25155    type ControlHandle = BaseNetworkSocketControlHandle;
25156
25157    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25158        &self.control_handle
25159    }
25160
25161    fn drop_without_shutdown(mut self) {
25162        // Safety: drops once, never accessed again due to mem::forget
25163        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25164        // Prevent Drop from running (which would shut down the channel)
25165        std::mem::forget(self);
25166    }
25167}
25168
25169impl BaseNetworkSocketSetIpReceiveTypeOfServiceResponder {
25170    /// Sends a response to the FIDL transaction.
25171    ///
25172    /// Sets the channel to shutdown if an error occurs.
25173    pub fn send(
25174        self,
25175        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25176    ) -> Result<(), fidl::Error> {
25177        let _result = self.send_raw(result);
25178        if _result.is_err() {
25179            self.control_handle.shutdown();
25180        }
25181        self.drop_without_shutdown();
25182        _result
25183    }
25184
25185    /// Similar to "send" but does not shutdown the channel if an error occurs.
25186    pub fn send_no_shutdown_on_err(
25187        self,
25188        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25189    ) -> Result<(), fidl::Error> {
25190        let _result = self.send_raw(result);
25191        self.drop_without_shutdown();
25192        _result
25193    }
25194
25195    fn send_raw(
25196        &self,
25197        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25198    ) -> Result<(), fidl::Error> {
25199        self.control_handle.inner.send::<fidl::encoding::ResultType<
25200            fidl::encoding::EmptyStruct,
25201            fidl_fuchsia_posix::Errno,
25202        >>(
25203            result,
25204            self.tx_id,
25205            0x6c4f6714995f84ef,
25206            fidl::encoding::DynamicFlags::empty(),
25207        )
25208    }
25209}
25210
25211#[must_use = "FIDL methods require a response to be sent"]
25212#[derive(Debug)]
25213pub struct BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25214    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25215    tx_id: u32,
25216}
25217
25218/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25219/// if the responder is dropped without sending a response, so that the client
25220/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25221impl std::ops::Drop for BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25222    fn drop(&mut self) {
25223        self.control_handle.shutdown();
25224        // Safety: drops once, never accessed again
25225        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25226    }
25227}
25228
25229impl fidl::endpoints::Responder for BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25230    type ControlHandle = BaseNetworkSocketControlHandle;
25231
25232    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25233        &self.control_handle
25234    }
25235
25236    fn drop_without_shutdown(mut self) {
25237        // Safety: drops once, never accessed again due to mem::forget
25238        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25239        // Prevent Drop from running (which would shut down the channel)
25240        std::mem::forget(self);
25241    }
25242}
25243
25244impl BaseNetworkSocketGetIpReceiveTypeOfServiceResponder {
25245    /// Sends a response to the FIDL transaction.
25246    ///
25247    /// Sets the channel to shutdown if an error occurs.
25248    pub fn send(
25249        self,
25250        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25251    ) -> Result<(), fidl::Error> {
25252        let _result = self.send_raw(result);
25253        if _result.is_err() {
25254            self.control_handle.shutdown();
25255        }
25256        self.drop_without_shutdown();
25257        _result
25258    }
25259
25260    /// Similar to "send" but does not shutdown the channel if an error occurs.
25261    pub fn send_no_shutdown_on_err(
25262        self,
25263        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25264    ) -> Result<(), fidl::Error> {
25265        let _result = self.send_raw(result);
25266        self.drop_without_shutdown();
25267        _result
25268    }
25269
25270    fn send_raw(
25271        &self,
25272        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25273    ) -> Result<(), fidl::Error> {
25274        self.control_handle.inner.send::<fidl::encoding::ResultType<
25275            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
25276            fidl_fuchsia_posix::Errno,
25277        >>(
25278            result.map(|value| (value,)),
25279            self.tx_id,
25280            0x4158ba7dc2795960,
25281            fidl::encoding::DynamicFlags::empty(),
25282        )
25283    }
25284}
25285
25286#[must_use = "FIDL methods require a response to be sent"]
25287#[derive(Debug)]
25288pub struct BaseNetworkSocketSetIpReceiveTtlResponder {
25289    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25290    tx_id: u32,
25291}
25292
25293/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25294/// if the responder is dropped without sending a response, so that the client
25295/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25296impl std::ops::Drop for BaseNetworkSocketSetIpReceiveTtlResponder {
25297    fn drop(&mut self) {
25298        self.control_handle.shutdown();
25299        // Safety: drops once, never accessed again
25300        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25301    }
25302}
25303
25304impl fidl::endpoints::Responder for BaseNetworkSocketSetIpReceiveTtlResponder {
25305    type ControlHandle = BaseNetworkSocketControlHandle;
25306
25307    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25308        &self.control_handle
25309    }
25310
25311    fn drop_without_shutdown(mut self) {
25312        // Safety: drops once, never accessed again due to mem::forget
25313        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25314        // Prevent Drop from running (which would shut down the channel)
25315        std::mem::forget(self);
25316    }
25317}
25318
25319impl BaseNetworkSocketSetIpReceiveTtlResponder {
25320    /// Sends a response to the FIDL transaction.
25321    ///
25322    /// Sets the channel to shutdown if an error occurs.
25323    pub fn send(
25324        self,
25325        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25326    ) -> Result<(), fidl::Error> {
25327        let _result = self.send_raw(result);
25328        if _result.is_err() {
25329            self.control_handle.shutdown();
25330        }
25331        self.drop_without_shutdown();
25332        _result
25333    }
25334
25335    /// Similar to "send" but does not shutdown the channel if an error occurs.
25336    pub fn send_no_shutdown_on_err(
25337        self,
25338        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25339    ) -> Result<(), fidl::Error> {
25340        let _result = self.send_raw(result);
25341        self.drop_without_shutdown();
25342        _result
25343    }
25344
25345    fn send_raw(
25346        &self,
25347        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25348    ) -> Result<(), fidl::Error> {
25349        self.control_handle.inner.send::<fidl::encoding::ResultType<
25350            fidl::encoding::EmptyStruct,
25351            fidl_fuchsia_posix::Errno,
25352        >>(
25353            result,
25354            self.tx_id,
25355            0x46f15be0ce0ab82b,
25356            fidl::encoding::DynamicFlags::empty(),
25357        )
25358    }
25359}
25360
25361#[must_use = "FIDL methods require a response to be sent"]
25362#[derive(Debug)]
25363pub struct BaseNetworkSocketGetIpReceiveTtlResponder {
25364    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25365    tx_id: u32,
25366}
25367
25368/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25369/// if the responder is dropped without sending a response, so that the client
25370/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25371impl std::ops::Drop for BaseNetworkSocketGetIpReceiveTtlResponder {
25372    fn drop(&mut self) {
25373        self.control_handle.shutdown();
25374        // Safety: drops once, never accessed again
25375        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25376    }
25377}
25378
25379impl fidl::endpoints::Responder for BaseNetworkSocketGetIpReceiveTtlResponder {
25380    type ControlHandle = BaseNetworkSocketControlHandle;
25381
25382    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25383        &self.control_handle
25384    }
25385
25386    fn drop_without_shutdown(mut self) {
25387        // Safety: drops once, never accessed again due to mem::forget
25388        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25389        // Prevent Drop from running (which would shut down the channel)
25390        std::mem::forget(self);
25391    }
25392}
25393
25394impl BaseNetworkSocketGetIpReceiveTtlResponder {
25395    /// Sends a response to the FIDL transaction.
25396    ///
25397    /// Sets the channel to shutdown if an error occurs.
25398    pub fn send(
25399        self,
25400        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25401    ) -> Result<(), fidl::Error> {
25402        let _result = self.send_raw(result);
25403        if _result.is_err() {
25404            self.control_handle.shutdown();
25405        }
25406        self.drop_without_shutdown();
25407        _result
25408    }
25409
25410    /// Similar to "send" but does not shutdown the channel if an error occurs.
25411    pub fn send_no_shutdown_on_err(
25412        self,
25413        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25414    ) -> Result<(), fidl::Error> {
25415        let _result = self.send_raw(result);
25416        self.drop_without_shutdown();
25417        _result
25418    }
25419
25420    fn send_raw(
25421        &self,
25422        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25423    ) -> Result<(), fidl::Error> {
25424        self.control_handle.inner.send::<fidl::encoding::ResultType<
25425            BaseNetworkSocketGetIpReceiveTtlResponse,
25426            fidl_fuchsia_posix::Errno,
25427        >>(
25428            result.map(|value| (value,)),
25429            self.tx_id,
25430            0x678ddd5a5dfa2eb5,
25431            fidl::encoding::DynamicFlags::empty(),
25432        )
25433    }
25434}
25435
25436#[must_use = "FIDL methods require a response to be sent"]
25437#[derive(Debug)]
25438pub struct BaseNetworkSocketSetIpMulticastInterfaceResponder {
25439    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25440    tx_id: u32,
25441}
25442
25443/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25444/// if the responder is dropped without sending a response, so that the client
25445/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25446impl std::ops::Drop for BaseNetworkSocketSetIpMulticastInterfaceResponder {
25447    fn drop(&mut self) {
25448        self.control_handle.shutdown();
25449        // Safety: drops once, never accessed again
25450        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25451    }
25452}
25453
25454impl fidl::endpoints::Responder for BaseNetworkSocketSetIpMulticastInterfaceResponder {
25455    type ControlHandle = BaseNetworkSocketControlHandle;
25456
25457    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25458        &self.control_handle
25459    }
25460
25461    fn drop_without_shutdown(mut self) {
25462        // Safety: drops once, never accessed again due to mem::forget
25463        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25464        // Prevent Drop from running (which would shut down the channel)
25465        std::mem::forget(self);
25466    }
25467}
25468
25469impl BaseNetworkSocketSetIpMulticastInterfaceResponder {
25470    /// Sends a response to the FIDL transaction.
25471    ///
25472    /// Sets the channel to shutdown if an error occurs.
25473    pub fn send(
25474        self,
25475        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25476    ) -> Result<(), fidl::Error> {
25477        let _result = self.send_raw(result);
25478        if _result.is_err() {
25479            self.control_handle.shutdown();
25480        }
25481        self.drop_without_shutdown();
25482        _result
25483    }
25484
25485    /// Similar to "send" but does not shutdown the channel if an error occurs.
25486    pub fn send_no_shutdown_on_err(
25487        self,
25488        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25489    ) -> Result<(), fidl::Error> {
25490        let _result = self.send_raw(result);
25491        self.drop_without_shutdown();
25492        _result
25493    }
25494
25495    fn send_raw(
25496        &self,
25497        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25498    ) -> Result<(), fidl::Error> {
25499        self.control_handle.inner.send::<fidl::encoding::ResultType<
25500            fidl::encoding::EmptyStruct,
25501            fidl_fuchsia_posix::Errno,
25502        >>(
25503            result,
25504            self.tx_id,
25505            0x752fbfa9b12befe,
25506            fidl::encoding::DynamicFlags::empty(),
25507        )
25508    }
25509}
25510
25511#[must_use = "FIDL methods require a response to be sent"]
25512#[derive(Debug)]
25513pub struct BaseNetworkSocketGetIpMulticastInterfaceResponder {
25514    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25515    tx_id: u32,
25516}
25517
25518/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25519/// if the responder is dropped without sending a response, so that the client
25520/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25521impl std::ops::Drop for BaseNetworkSocketGetIpMulticastInterfaceResponder {
25522    fn drop(&mut self) {
25523        self.control_handle.shutdown();
25524        // Safety: drops once, never accessed again
25525        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25526    }
25527}
25528
25529impl fidl::endpoints::Responder for BaseNetworkSocketGetIpMulticastInterfaceResponder {
25530    type ControlHandle = BaseNetworkSocketControlHandle;
25531
25532    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25533        &self.control_handle
25534    }
25535
25536    fn drop_without_shutdown(mut self) {
25537        // Safety: drops once, never accessed again due to mem::forget
25538        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25539        // Prevent Drop from running (which would shut down the channel)
25540        std::mem::forget(self);
25541    }
25542}
25543
25544impl BaseNetworkSocketGetIpMulticastInterfaceResponder {
25545    /// Sends a response to the FIDL transaction.
25546    ///
25547    /// Sets the channel to shutdown if an error occurs.
25548    pub fn send(
25549        self,
25550        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
25551    ) -> Result<(), fidl::Error> {
25552        let _result = self.send_raw(result);
25553        if _result.is_err() {
25554            self.control_handle.shutdown();
25555        }
25556        self.drop_without_shutdown();
25557        _result
25558    }
25559
25560    /// Similar to "send" but does not shutdown the channel if an error occurs.
25561    pub fn send_no_shutdown_on_err(
25562        self,
25563        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
25564    ) -> Result<(), fidl::Error> {
25565        let _result = self.send_raw(result);
25566        self.drop_without_shutdown();
25567        _result
25568    }
25569
25570    fn send_raw(
25571        &self,
25572        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
25573    ) -> Result<(), fidl::Error> {
25574        self.control_handle.inner.send::<fidl::encoding::ResultType<
25575            BaseNetworkSocketGetIpMulticastInterfaceResponse,
25576            fidl_fuchsia_posix::Errno,
25577        >>(
25578            result.map(|value| (value,)),
25579            self.tx_id,
25580            0x320bd14c4df046c4,
25581            fidl::encoding::DynamicFlags::empty(),
25582        )
25583    }
25584}
25585
25586#[must_use = "FIDL methods require a response to be sent"]
25587#[derive(Debug)]
25588pub struct BaseNetworkSocketSetIpMulticastTtlResponder {
25589    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25590    tx_id: u32,
25591}
25592
25593/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25594/// if the responder is dropped without sending a response, so that the client
25595/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25596impl std::ops::Drop for BaseNetworkSocketSetIpMulticastTtlResponder {
25597    fn drop(&mut self) {
25598        self.control_handle.shutdown();
25599        // Safety: drops once, never accessed again
25600        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25601    }
25602}
25603
25604impl fidl::endpoints::Responder for BaseNetworkSocketSetIpMulticastTtlResponder {
25605    type ControlHandle = BaseNetworkSocketControlHandle;
25606
25607    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25608        &self.control_handle
25609    }
25610
25611    fn drop_without_shutdown(mut self) {
25612        // Safety: drops once, never accessed again due to mem::forget
25613        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25614        // Prevent Drop from running (which would shut down the channel)
25615        std::mem::forget(self);
25616    }
25617}
25618
25619impl BaseNetworkSocketSetIpMulticastTtlResponder {
25620    /// Sends a response to the FIDL transaction.
25621    ///
25622    /// Sets the channel to shutdown if an error occurs.
25623    pub fn send(
25624        self,
25625        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25626    ) -> Result<(), fidl::Error> {
25627        let _result = self.send_raw(result);
25628        if _result.is_err() {
25629            self.control_handle.shutdown();
25630        }
25631        self.drop_without_shutdown();
25632        _result
25633    }
25634
25635    /// Similar to "send" but does not shutdown the channel if an error occurs.
25636    pub fn send_no_shutdown_on_err(
25637        self,
25638        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25639    ) -> Result<(), fidl::Error> {
25640        let _result = self.send_raw(result);
25641        self.drop_without_shutdown();
25642        _result
25643    }
25644
25645    fn send_raw(
25646        &self,
25647        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25648    ) -> Result<(), fidl::Error> {
25649        self.control_handle.inner.send::<fidl::encoding::ResultType<
25650            fidl::encoding::EmptyStruct,
25651            fidl_fuchsia_posix::Errno,
25652        >>(
25653            result,
25654            self.tx_id,
25655            0x63134d53772916a1,
25656            fidl::encoding::DynamicFlags::empty(),
25657        )
25658    }
25659}
25660
25661#[must_use = "FIDL methods require a response to be sent"]
25662#[derive(Debug)]
25663pub struct BaseNetworkSocketGetIpMulticastTtlResponder {
25664    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25665    tx_id: u32,
25666}
25667
25668/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25669/// if the responder is dropped without sending a response, so that the client
25670/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25671impl std::ops::Drop for BaseNetworkSocketGetIpMulticastTtlResponder {
25672    fn drop(&mut self) {
25673        self.control_handle.shutdown();
25674        // Safety: drops once, never accessed again
25675        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25676    }
25677}
25678
25679impl fidl::endpoints::Responder for BaseNetworkSocketGetIpMulticastTtlResponder {
25680    type ControlHandle = BaseNetworkSocketControlHandle;
25681
25682    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25683        &self.control_handle
25684    }
25685
25686    fn drop_without_shutdown(mut self) {
25687        // Safety: drops once, never accessed again due to mem::forget
25688        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25689        // Prevent Drop from running (which would shut down the channel)
25690        std::mem::forget(self);
25691    }
25692}
25693
25694impl BaseNetworkSocketGetIpMulticastTtlResponder {
25695    /// Sends a response to the FIDL transaction.
25696    ///
25697    /// Sets the channel to shutdown if an error occurs.
25698    pub fn send(
25699        self,
25700        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25701    ) -> Result<(), fidl::Error> {
25702        let _result = self.send_raw(result);
25703        if _result.is_err() {
25704            self.control_handle.shutdown();
25705        }
25706        self.drop_without_shutdown();
25707        _result
25708    }
25709
25710    /// Similar to "send" but does not shutdown the channel if an error occurs.
25711    pub fn send_no_shutdown_on_err(
25712        self,
25713        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25714    ) -> Result<(), fidl::Error> {
25715        let _result = self.send_raw(result);
25716        self.drop_without_shutdown();
25717        _result
25718    }
25719
25720    fn send_raw(
25721        &self,
25722        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
25723    ) -> Result<(), fidl::Error> {
25724        self.control_handle.inner.send::<fidl::encoding::ResultType<
25725            BaseNetworkSocketGetIpMulticastTtlResponse,
25726            fidl_fuchsia_posix::Errno,
25727        >>(
25728            result.map(|value| (value,)),
25729            self.tx_id,
25730            0x4665cd378f39e1a,
25731            fidl::encoding::DynamicFlags::empty(),
25732        )
25733    }
25734}
25735
25736#[must_use = "FIDL methods require a response to be sent"]
25737#[derive(Debug)]
25738pub struct BaseNetworkSocketSetIpMulticastLoopbackResponder {
25739    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25740    tx_id: u32,
25741}
25742
25743/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25744/// if the responder is dropped without sending a response, so that the client
25745/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25746impl std::ops::Drop for BaseNetworkSocketSetIpMulticastLoopbackResponder {
25747    fn drop(&mut self) {
25748        self.control_handle.shutdown();
25749        // Safety: drops once, never accessed again
25750        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25751    }
25752}
25753
25754impl fidl::endpoints::Responder for BaseNetworkSocketSetIpMulticastLoopbackResponder {
25755    type ControlHandle = BaseNetworkSocketControlHandle;
25756
25757    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25758        &self.control_handle
25759    }
25760
25761    fn drop_without_shutdown(mut self) {
25762        // Safety: drops once, never accessed again due to mem::forget
25763        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25764        // Prevent Drop from running (which would shut down the channel)
25765        std::mem::forget(self);
25766    }
25767}
25768
25769impl BaseNetworkSocketSetIpMulticastLoopbackResponder {
25770    /// Sends a response to the FIDL transaction.
25771    ///
25772    /// Sets the channel to shutdown if an error occurs.
25773    pub fn send(
25774        self,
25775        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25776    ) -> Result<(), fidl::Error> {
25777        let _result = self.send_raw(result);
25778        if _result.is_err() {
25779            self.control_handle.shutdown();
25780        }
25781        self.drop_without_shutdown();
25782        _result
25783    }
25784
25785    /// Similar to "send" but does not shutdown the channel if an error occurs.
25786    pub fn send_no_shutdown_on_err(
25787        self,
25788        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25789    ) -> Result<(), fidl::Error> {
25790        let _result = self.send_raw(result);
25791        self.drop_without_shutdown();
25792        _result
25793    }
25794
25795    fn send_raw(
25796        &self,
25797        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25798    ) -> Result<(), fidl::Error> {
25799        self.control_handle.inner.send::<fidl::encoding::ResultType<
25800            fidl::encoding::EmptyStruct,
25801            fidl_fuchsia_posix::Errno,
25802        >>(
25803            result,
25804            self.tx_id,
25805            0x20c55c11f00943ea,
25806            fidl::encoding::DynamicFlags::empty(),
25807        )
25808    }
25809}
25810
25811#[must_use = "FIDL methods require a response to be sent"]
25812#[derive(Debug)]
25813pub struct BaseNetworkSocketGetIpMulticastLoopbackResponder {
25814    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25815    tx_id: u32,
25816}
25817
25818/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25819/// if the responder is dropped without sending a response, so that the client
25820/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25821impl std::ops::Drop for BaseNetworkSocketGetIpMulticastLoopbackResponder {
25822    fn drop(&mut self) {
25823        self.control_handle.shutdown();
25824        // Safety: drops once, never accessed again
25825        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25826    }
25827}
25828
25829impl fidl::endpoints::Responder for BaseNetworkSocketGetIpMulticastLoopbackResponder {
25830    type ControlHandle = BaseNetworkSocketControlHandle;
25831
25832    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25833        &self.control_handle
25834    }
25835
25836    fn drop_without_shutdown(mut self) {
25837        // Safety: drops once, never accessed again due to mem::forget
25838        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25839        // Prevent Drop from running (which would shut down the channel)
25840        std::mem::forget(self);
25841    }
25842}
25843
25844impl BaseNetworkSocketGetIpMulticastLoopbackResponder {
25845    /// Sends a response to the FIDL transaction.
25846    ///
25847    /// Sets the channel to shutdown if an error occurs.
25848    pub fn send(
25849        self,
25850        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25851    ) -> Result<(), fidl::Error> {
25852        let _result = self.send_raw(result);
25853        if _result.is_err() {
25854            self.control_handle.shutdown();
25855        }
25856        self.drop_without_shutdown();
25857        _result
25858    }
25859
25860    /// Similar to "send" but does not shutdown the channel if an error occurs.
25861    pub fn send_no_shutdown_on_err(
25862        self,
25863        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25864    ) -> Result<(), fidl::Error> {
25865        let _result = self.send_raw(result);
25866        self.drop_without_shutdown();
25867        _result
25868    }
25869
25870    fn send_raw(
25871        &self,
25872        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
25873    ) -> Result<(), fidl::Error> {
25874        self.control_handle.inner.send::<fidl::encoding::ResultType<
25875            BaseNetworkSocketGetIpMulticastLoopbackResponse,
25876            fidl_fuchsia_posix::Errno,
25877        >>(
25878            result.map(|value| (value,)),
25879            self.tx_id,
25880            0x3b6b26ff558298f2,
25881            fidl::encoding::DynamicFlags::empty(),
25882        )
25883    }
25884}
25885
25886#[must_use = "FIDL methods require a response to be sent"]
25887#[derive(Debug)]
25888pub struct BaseNetworkSocketAddIpMembershipResponder {
25889    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25890    tx_id: u32,
25891}
25892
25893/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25894/// if the responder is dropped without sending a response, so that the client
25895/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25896impl std::ops::Drop for BaseNetworkSocketAddIpMembershipResponder {
25897    fn drop(&mut self) {
25898        self.control_handle.shutdown();
25899        // Safety: drops once, never accessed again
25900        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25901    }
25902}
25903
25904impl fidl::endpoints::Responder for BaseNetworkSocketAddIpMembershipResponder {
25905    type ControlHandle = BaseNetworkSocketControlHandle;
25906
25907    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25908        &self.control_handle
25909    }
25910
25911    fn drop_without_shutdown(mut self) {
25912        // Safety: drops once, never accessed again due to mem::forget
25913        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25914        // Prevent Drop from running (which would shut down the channel)
25915        std::mem::forget(self);
25916    }
25917}
25918
25919impl BaseNetworkSocketAddIpMembershipResponder {
25920    /// Sends a response to the FIDL transaction.
25921    ///
25922    /// Sets the channel to shutdown if an error occurs.
25923    pub fn send(
25924        self,
25925        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25926    ) -> Result<(), fidl::Error> {
25927        let _result = self.send_raw(result);
25928        if _result.is_err() {
25929            self.control_handle.shutdown();
25930        }
25931        self.drop_without_shutdown();
25932        _result
25933    }
25934
25935    /// Similar to "send" but does not shutdown the channel if an error occurs.
25936    pub fn send_no_shutdown_on_err(
25937        self,
25938        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25939    ) -> Result<(), fidl::Error> {
25940        let _result = self.send_raw(result);
25941        self.drop_without_shutdown();
25942        _result
25943    }
25944
25945    fn send_raw(
25946        &self,
25947        mut result: Result<(), fidl_fuchsia_posix::Errno>,
25948    ) -> Result<(), fidl::Error> {
25949        self.control_handle.inner.send::<fidl::encoding::ResultType<
25950            fidl::encoding::EmptyStruct,
25951            fidl_fuchsia_posix::Errno,
25952        >>(
25953            result,
25954            self.tx_id,
25955            0x76bc7df115a3b4d0,
25956            fidl::encoding::DynamicFlags::empty(),
25957        )
25958    }
25959}
25960
25961#[must_use = "FIDL methods require a response to be sent"]
25962#[derive(Debug)]
25963pub struct BaseNetworkSocketDropIpMembershipResponder {
25964    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
25965    tx_id: u32,
25966}
25967
25968/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
25969/// if the responder is dropped without sending a response, so that the client
25970/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
25971impl std::ops::Drop for BaseNetworkSocketDropIpMembershipResponder {
25972    fn drop(&mut self) {
25973        self.control_handle.shutdown();
25974        // Safety: drops once, never accessed again
25975        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25976    }
25977}
25978
25979impl fidl::endpoints::Responder for BaseNetworkSocketDropIpMembershipResponder {
25980    type ControlHandle = BaseNetworkSocketControlHandle;
25981
25982    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
25983        &self.control_handle
25984    }
25985
25986    fn drop_without_shutdown(mut self) {
25987        // Safety: drops once, never accessed again due to mem::forget
25988        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
25989        // Prevent Drop from running (which would shut down the channel)
25990        std::mem::forget(self);
25991    }
25992}
25993
25994impl BaseNetworkSocketDropIpMembershipResponder {
25995    /// Sends a response to the FIDL transaction.
25996    ///
25997    /// Sets the channel to shutdown if an error occurs.
25998    pub fn send(
25999        self,
26000        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26001    ) -> Result<(), fidl::Error> {
26002        let _result = self.send_raw(result);
26003        if _result.is_err() {
26004            self.control_handle.shutdown();
26005        }
26006        self.drop_without_shutdown();
26007        _result
26008    }
26009
26010    /// Similar to "send" but does not shutdown the channel if an error occurs.
26011    pub fn send_no_shutdown_on_err(
26012        self,
26013        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26014    ) -> Result<(), fidl::Error> {
26015        let _result = self.send_raw(result);
26016        self.drop_without_shutdown();
26017        _result
26018    }
26019
26020    fn send_raw(
26021        &self,
26022        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26023    ) -> Result<(), fidl::Error> {
26024        self.control_handle.inner.send::<fidl::encoding::ResultType<
26025            fidl::encoding::EmptyStruct,
26026            fidl_fuchsia_posix::Errno,
26027        >>(
26028            result,
26029            self.tx_id,
26030            0x2888f3099188d03,
26031            fidl::encoding::DynamicFlags::empty(),
26032        )
26033    }
26034}
26035
26036#[must_use = "FIDL methods require a response to be sent"]
26037#[derive(Debug)]
26038pub struct BaseNetworkSocketSetIpTransparentResponder {
26039    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26040    tx_id: u32,
26041}
26042
26043/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26044/// if the responder is dropped without sending a response, so that the client
26045/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26046impl std::ops::Drop for BaseNetworkSocketSetIpTransparentResponder {
26047    fn drop(&mut self) {
26048        self.control_handle.shutdown();
26049        // Safety: drops once, never accessed again
26050        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26051    }
26052}
26053
26054impl fidl::endpoints::Responder for BaseNetworkSocketSetIpTransparentResponder {
26055    type ControlHandle = BaseNetworkSocketControlHandle;
26056
26057    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26058        &self.control_handle
26059    }
26060
26061    fn drop_without_shutdown(mut self) {
26062        // Safety: drops once, never accessed again due to mem::forget
26063        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26064        // Prevent Drop from running (which would shut down the channel)
26065        std::mem::forget(self);
26066    }
26067}
26068
26069impl BaseNetworkSocketSetIpTransparentResponder {
26070    /// Sends a response to the FIDL transaction.
26071    ///
26072    /// Sets the channel to shutdown if an error occurs.
26073    pub fn send(
26074        self,
26075        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26076    ) -> Result<(), fidl::Error> {
26077        let _result = self.send_raw(result);
26078        if _result.is_err() {
26079            self.control_handle.shutdown();
26080        }
26081        self.drop_without_shutdown();
26082        _result
26083    }
26084
26085    /// Similar to "send" but does not shutdown the channel if an error occurs.
26086    pub fn send_no_shutdown_on_err(
26087        self,
26088        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26089    ) -> Result<(), fidl::Error> {
26090        let _result = self.send_raw(result);
26091        self.drop_without_shutdown();
26092        _result
26093    }
26094
26095    fn send_raw(
26096        &self,
26097        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26098    ) -> Result<(), fidl::Error> {
26099        self.control_handle.inner.send::<fidl::encoding::ResultType<
26100            fidl::encoding::EmptyStruct,
26101            fidl_fuchsia_posix::Errno,
26102        >>(
26103            result,
26104            self.tx_id,
26105            0x1ae532b0c066e3a0,
26106            fidl::encoding::DynamicFlags::empty(),
26107        )
26108    }
26109}
26110
26111#[must_use = "FIDL methods require a response to be sent"]
26112#[derive(Debug)]
26113pub struct BaseNetworkSocketGetIpTransparentResponder {
26114    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26115    tx_id: u32,
26116}
26117
26118/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26119/// if the responder is dropped without sending a response, so that the client
26120/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26121impl std::ops::Drop for BaseNetworkSocketGetIpTransparentResponder {
26122    fn drop(&mut self) {
26123        self.control_handle.shutdown();
26124        // Safety: drops once, never accessed again
26125        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26126    }
26127}
26128
26129impl fidl::endpoints::Responder for BaseNetworkSocketGetIpTransparentResponder {
26130    type ControlHandle = BaseNetworkSocketControlHandle;
26131
26132    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26133        &self.control_handle
26134    }
26135
26136    fn drop_without_shutdown(mut self) {
26137        // Safety: drops once, never accessed again due to mem::forget
26138        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26139        // Prevent Drop from running (which would shut down the channel)
26140        std::mem::forget(self);
26141    }
26142}
26143
26144impl BaseNetworkSocketGetIpTransparentResponder {
26145    /// Sends a response to the FIDL transaction.
26146    ///
26147    /// Sets the channel to shutdown if an error occurs.
26148    pub fn send(
26149        self,
26150        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26151    ) -> Result<(), fidl::Error> {
26152        let _result = self.send_raw(result);
26153        if _result.is_err() {
26154            self.control_handle.shutdown();
26155        }
26156        self.drop_without_shutdown();
26157        _result
26158    }
26159
26160    /// Similar to "send" but does not shutdown the channel if an error occurs.
26161    pub fn send_no_shutdown_on_err(
26162        self,
26163        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26164    ) -> Result<(), fidl::Error> {
26165        let _result = self.send_raw(result);
26166        self.drop_without_shutdown();
26167        _result
26168    }
26169
26170    fn send_raw(
26171        &self,
26172        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26173    ) -> Result<(), fidl::Error> {
26174        self.control_handle.inner.send::<fidl::encoding::ResultType<
26175            BaseNetworkSocketGetIpTransparentResponse,
26176            fidl_fuchsia_posix::Errno,
26177        >>(
26178            result.map(|value| (value,)),
26179            self.tx_id,
26180            0x51d43695962ebfb5,
26181            fidl::encoding::DynamicFlags::empty(),
26182        )
26183    }
26184}
26185
26186#[must_use = "FIDL methods require a response to be sent"]
26187#[derive(Debug)]
26188pub struct BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
26189    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26190    tx_id: u32,
26191}
26192
26193/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26194/// if the responder is dropped without sending a response, so that the client
26195/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26196impl std::ops::Drop for BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
26197    fn drop(&mut self) {
26198        self.control_handle.shutdown();
26199        // Safety: drops once, never accessed again
26200        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26201    }
26202}
26203
26204impl fidl::endpoints::Responder
26205    for BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder
26206{
26207    type ControlHandle = BaseNetworkSocketControlHandle;
26208
26209    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26210        &self.control_handle
26211    }
26212
26213    fn drop_without_shutdown(mut self) {
26214        // Safety: drops once, never accessed again due to mem::forget
26215        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26216        // Prevent Drop from running (which would shut down the channel)
26217        std::mem::forget(self);
26218    }
26219}
26220
26221impl BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResponder {
26222    /// Sends a response to the FIDL transaction.
26223    ///
26224    /// Sets the channel to shutdown if an error occurs.
26225    pub fn send(
26226        self,
26227        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26228    ) -> Result<(), fidl::Error> {
26229        let _result = self.send_raw(result);
26230        if _result.is_err() {
26231            self.control_handle.shutdown();
26232        }
26233        self.drop_without_shutdown();
26234        _result
26235    }
26236
26237    /// Similar to "send" but does not shutdown the channel if an error occurs.
26238    pub fn send_no_shutdown_on_err(
26239        self,
26240        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26241    ) -> Result<(), fidl::Error> {
26242        let _result = self.send_raw(result);
26243        self.drop_without_shutdown();
26244        _result
26245    }
26246
26247    fn send_raw(
26248        &self,
26249        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26250    ) -> Result<(), fidl::Error> {
26251        self.control_handle.inner.send::<fidl::encoding::ResultType<
26252            fidl::encoding::EmptyStruct,
26253            fidl_fuchsia_posix::Errno,
26254        >>(
26255            result,
26256            self.tx_id,
26257            0x4722b4ce52f7840,
26258            fidl::encoding::DynamicFlags::empty(),
26259        )
26260    }
26261}
26262
26263#[must_use = "FIDL methods require a response to be sent"]
26264#[derive(Debug)]
26265pub struct BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
26266    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26267    tx_id: u32,
26268}
26269
26270/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26271/// if the responder is dropped without sending a response, so that the client
26272/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26273impl std::ops::Drop for BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
26274    fn drop(&mut self) {
26275        self.control_handle.shutdown();
26276        // Safety: drops once, never accessed again
26277        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26278    }
26279}
26280
26281impl fidl::endpoints::Responder
26282    for BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder
26283{
26284    type ControlHandle = BaseNetworkSocketControlHandle;
26285
26286    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26287        &self.control_handle
26288    }
26289
26290    fn drop_without_shutdown(mut self) {
26291        // Safety: drops once, never accessed again due to mem::forget
26292        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26293        // Prevent Drop from running (which would shut down the channel)
26294        std::mem::forget(self);
26295    }
26296}
26297
26298impl BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponder {
26299    /// Sends a response to the FIDL transaction.
26300    ///
26301    /// Sets the channel to shutdown if an error occurs.
26302    pub fn send(
26303        self,
26304        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26305    ) -> Result<(), fidl::Error> {
26306        let _result = self.send_raw(result);
26307        if _result.is_err() {
26308            self.control_handle.shutdown();
26309        }
26310        self.drop_without_shutdown();
26311        _result
26312    }
26313
26314    /// Similar to "send" but does not shutdown the channel if an error occurs.
26315    pub fn send_no_shutdown_on_err(
26316        self,
26317        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26318    ) -> Result<(), fidl::Error> {
26319        let _result = self.send_raw(result);
26320        self.drop_without_shutdown();
26321        _result
26322    }
26323
26324    fn send_raw(
26325        &self,
26326        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26327    ) -> Result<(), fidl::Error> {
26328        self.control_handle.inner.send::<fidl::encoding::ResultType<
26329            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
26330            fidl_fuchsia_posix::Errno,
26331        >>(
26332            result.map(|value| (value,)),
26333            self.tx_id,
26334            0x2a0e7dc5d6bfdfe9,
26335            fidl::encoding::DynamicFlags::empty(),
26336        )
26337    }
26338}
26339
26340#[must_use = "FIDL methods require a response to be sent"]
26341#[derive(Debug)]
26342pub struct BaseNetworkSocketAddIpv6MembershipResponder {
26343    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26344    tx_id: u32,
26345}
26346
26347/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26348/// if the responder is dropped without sending a response, so that the client
26349/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26350impl std::ops::Drop for BaseNetworkSocketAddIpv6MembershipResponder {
26351    fn drop(&mut self) {
26352        self.control_handle.shutdown();
26353        // Safety: drops once, never accessed again
26354        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26355    }
26356}
26357
26358impl fidl::endpoints::Responder for BaseNetworkSocketAddIpv6MembershipResponder {
26359    type ControlHandle = BaseNetworkSocketControlHandle;
26360
26361    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26362        &self.control_handle
26363    }
26364
26365    fn drop_without_shutdown(mut self) {
26366        // Safety: drops once, never accessed again due to mem::forget
26367        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26368        // Prevent Drop from running (which would shut down the channel)
26369        std::mem::forget(self);
26370    }
26371}
26372
26373impl BaseNetworkSocketAddIpv6MembershipResponder {
26374    /// Sends a response to the FIDL transaction.
26375    ///
26376    /// Sets the channel to shutdown if an error occurs.
26377    pub fn send(
26378        self,
26379        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26380    ) -> Result<(), fidl::Error> {
26381        let _result = self.send_raw(result);
26382        if _result.is_err() {
26383            self.control_handle.shutdown();
26384        }
26385        self.drop_without_shutdown();
26386        _result
26387    }
26388
26389    /// Similar to "send" but does not shutdown the channel if an error occurs.
26390    pub fn send_no_shutdown_on_err(
26391        self,
26392        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26393    ) -> Result<(), fidl::Error> {
26394        let _result = self.send_raw(result);
26395        self.drop_without_shutdown();
26396        _result
26397    }
26398
26399    fn send_raw(
26400        &self,
26401        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26402    ) -> Result<(), fidl::Error> {
26403        self.control_handle.inner.send::<fidl::encoding::ResultType<
26404            fidl::encoding::EmptyStruct,
26405            fidl_fuchsia_posix::Errno,
26406        >>(
26407            result,
26408            self.tx_id,
26409            0x7c94727acb4ea4b3,
26410            fidl::encoding::DynamicFlags::empty(),
26411        )
26412    }
26413}
26414
26415#[must_use = "FIDL methods require a response to be sent"]
26416#[derive(Debug)]
26417pub struct BaseNetworkSocketDropIpv6MembershipResponder {
26418    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26419    tx_id: u32,
26420}
26421
26422/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26423/// if the responder is dropped without sending a response, so that the client
26424/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26425impl std::ops::Drop for BaseNetworkSocketDropIpv6MembershipResponder {
26426    fn drop(&mut self) {
26427        self.control_handle.shutdown();
26428        // Safety: drops once, never accessed again
26429        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26430    }
26431}
26432
26433impl fidl::endpoints::Responder for BaseNetworkSocketDropIpv6MembershipResponder {
26434    type ControlHandle = BaseNetworkSocketControlHandle;
26435
26436    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26437        &self.control_handle
26438    }
26439
26440    fn drop_without_shutdown(mut self) {
26441        // Safety: drops once, never accessed again due to mem::forget
26442        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26443        // Prevent Drop from running (which would shut down the channel)
26444        std::mem::forget(self);
26445    }
26446}
26447
26448impl BaseNetworkSocketDropIpv6MembershipResponder {
26449    /// Sends a response to the FIDL transaction.
26450    ///
26451    /// Sets the channel to shutdown if an error occurs.
26452    pub fn send(
26453        self,
26454        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26455    ) -> Result<(), fidl::Error> {
26456        let _result = self.send_raw(result);
26457        if _result.is_err() {
26458            self.control_handle.shutdown();
26459        }
26460        self.drop_without_shutdown();
26461        _result
26462    }
26463
26464    /// Similar to "send" but does not shutdown the channel if an error occurs.
26465    pub fn send_no_shutdown_on_err(
26466        self,
26467        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26468    ) -> Result<(), fidl::Error> {
26469        let _result = self.send_raw(result);
26470        self.drop_without_shutdown();
26471        _result
26472    }
26473
26474    fn send_raw(
26475        &self,
26476        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26477    ) -> Result<(), fidl::Error> {
26478        self.control_handle.inner.send::<fidl::encoding::ResultType<
26479            fidl::encoding::EmptyStruct,
26480            fidl_fuchsia_posix::Errno,
26481        >>(
26482            result,
26483            self.tx_id,
26484            0x42104c70ccaba304,
26485            fidl::encoding::DynamicFlags::empty(),
26486        )
26487    }
26488}
26489
26490#[must_use = "FIDL methods require a response to be sent"]
26491#[derive(Debug)]
26492pub struct BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
26493    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26494    tx_id: u32,
26495}
26496
26497/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26498/// if the responder is dropped without sending a response, so that the client
26499/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26500impl std::ops::Drop for BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
26501    fn drop(&mut self) {
26502        self.control_handle.shutdown();
26503        // Safety: drops once, never accessed again
26504        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26505    }
26506}
26507
26508impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
26509    type ControlHandle = BaseNetworkSocketControlHandle;
26510
26511    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26512        &self.control_handle
26513    }
26514
26515    fn drop_without_shutdown(mut self) {
26516        // Safety: drops once, never accessed again due to mem::forget
26517        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26518        // Prevent Drop from running (which would shut down the channel)
26519        std::mem::forget(self);
26520    }
26521}
26522
26523impl BaseNetworkSocketSetIpv6MulticastInterfaceResponder {
26524    /// Sends a response to the FIDL transaction.
26525    ///
26526    /// Sets the channel to shutdown if an error occurs.
26527    pub fn send(
26528        self,
26529        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26530    ) -> Result<(), fidl::Error> {
26531        let _result = self.send_raw(result);
26532        if _result.is_err() {
26533            self.control_handle.shutdown();
26534        }
26535        self.drop_without_shutdown();
26536        _result
26537    }
26538
26539    /// Similar to "send" but does not shutdown the channel if an error occurs.
26540    pub fn send_no_shutdown_on_err(
26541        self,
26542        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26543    ) -> Result<(), fidl::Error> {
26544        let _result = self.send_raw(result);
26545        self.drop_without_shutdown();
26546        _result
26547    }
26548
26549    fn send_raw(
26550        &self,
26551        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26552    ) -> Result<(), fidl::Error> {
26553        self.control_handle.inner.send::<fidl::encoding::ResultType<
26554            fidl::encoding::EmptyStruct,
26555            fidl_fuchsia_posix::Errno,
26556        >>(
26557            result,
26558            self.tx_id,
26559            0x135f76db3774ab3b,
26560            fidl::encoding::DynamicFlags::empty(),
26561        )
26562    }
26563}
26564
26565#[must_use = "FIDL methods require a response to be sent"]
26566#[derive(Debug)]
26567pub struct BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
26568    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26569    tx_id: u32,
26570}
26571
26572/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26573/// if the responder is dropped without sending a response, so that the client
26574/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26575impl std::ops::Drop for BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
26576    fn drop(&mut self) {
26577        self.control_handle.shutdown();
26578        // Safety: drops once, never accessed again
26579        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26580    }
26581}
26582
26583impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
26584    type ControlHandle = BaseNetworkSocketControlHandle;
26585
26586    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26587        &self.control_handle
26588    }
26589
26590    fn drop_without_shutdown(mut self) {
26591        // Safety: drops once, never accessed again due to mem::forget
26592        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26593        // Prevent Drop from running (which would shut down the channel)
26594        std::mem::forget(self);
26595    }
26596}
26597
26598impl BaseNetworkSocketGetIpv6MulticastInterfaceResponder {
26599    /// Sends a response to the FIDL transaction.
26600    ///
26601    /// Sets the channel to shutdown if an error occurs.
26602    pub fn send(
26603        self,
26604        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
26605    ) -> Result<(), fidl::Error> {
26606        let _result = self.send_raw(result);
26607        if _result.is_err() {
26608            self.control_handle.shutdown();
26609        }
26610        self.drop_without_shutdown();
26611        _result
26612    }
26613
26614    /// Similar to "send" but does not shutdown the channel if an error occurs.
26615    pub fn send_no_shutdown_on_err(
26616        self,
26617        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
26618    ) -> Result<(), fidl::Error> {
26619        let _result = self.send_raw(result);
26620        self.drop_without_shutdown();
26621        _result
26622    }
26623
26624    fn send_raw(
26625        &self,
26626        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
26627    ) -> Result<(), fidl::Error> {
26628        self.control_handle.inner.send::<fidl::encoding::ResultType<
26629            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
26630            fidl_fuchsia_posix::Errno,
26631        >>(
26632            result.map(|value| (value,)),
26633            self.tx_id,
26634            0x1f26fcdd348f1882,
26635            fidl::encoding::DynamicFlags::empty(),
26636        )
26637    }
26638}
26639
26640#[must_use = "FIDL methods require a response to be sent"]
26641#[derive(Debug)]
26642pub struct BaseNetworkSocketSetIpv6UnicastHopsResponder {
26643    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26644    tx_id: u32,
26645}
26646
26647/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26648/// if the responder is dropped without sending a response, so that the client
26649/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26650impl std::ops::Drop for BaseNetworkSocketSetIpv6UnicastHopsResponder {
26651    fn drop(&mut self) {
26652        self.control_handle.shutdown();
26653        // Safety: drops once, never accessed again
26654        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26655    }
26656}
26657
26658impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6UnicastHopsResponder {
26659    type ControlHandle = BaseNetworkSocketControlHandle;
26660
26661    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26662        &self.control_handle
26663    }
26664
26665    fn drop_without_shutdown(mut self) {
26666        // Safety: drops once, never accessed again due to mem::forget
26667        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26668        // Prevent Drop from running (which would shut down the channel)
26669        std::mem::forget(self);
26670    }
26671}
26672
26673impl BaseNetworkSocketSetIpv6UnicastHopsResponder {
26674    /// Sends a response to the FIDL transaction.
26675    ///
26676    /// Sets the channel to shutdown if an error occurs.
26677    pub fn send(
26678        self,
26679        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26680    ) -> Result<(), fidl::Error> {
26681        let _result = self.send_raw(result);
26682        if _result.is_err() {
26683            self.control_handle.shutdown();
26684        }
26685        self.drop_without_shutdown();
26686        _result
26687    }
26688
26689    /// Similar to "send" but does not shutdown the channel if an error occurs.
26690    pub fn send_no_shutdown_on_err(
26691        self,
26692        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26693    ) -> Result<(), fidl::Error> {
26694        let _result = self.send_raw(result);
26695        self.drop_without_shutdown();
26696        _result
26697    }
26698
26699    fn send_raw(
26700        &self,
26701        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26702    ) -> Result<(), fidl::Error> {
26703        self.control_handle.inner.send::<fidl::encoding::ResultType<
26704            fidl::encoding::EmptyStruct,
26705            fidl_fuchsia_posix::Errno,
26706        >>(
26707            result,
26708            self.tx_id,
26709            0x157d51e98f462859,
26710            fidl::encoding::DynamicFlags::empty(),
26711        )
26712    }
26713}
26714
26715#[must_use = "FIDL methods require a response to be sent"]
26716#[derive(Debug)]
26717pub struct BaseNetworkSocketGetIpv6UnicastHopsResponder {
26718    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26719    tx_id: u32,
26720}
26721
26722/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26723/// if the responder is dropped without sending a response, so that the client
26724/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26725impl std::ops::Drop for BaseNetworkSocketGetIpv6UnicastHopsResponder {
26726    fn drop(&mut self) {
26727        self.control_handle.shutdown();
26728        // Safety: drops once, never accessed again
26729        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26730    }
26731}
26732
26733impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6UnicastHopsResponder {
26734    type ControlHandle = BaseNetworkSocketControlHandle;
26735
26736    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26737        &self.control_handle
26738    }
26739
26740    fn drop_without_shutdown(mut self) {
26741        // Safety: drops once, never accessed again due to mem::forget
26742        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26743        // Prevent Drop from running (which would shut down the channel)
26744        std::mem::forget(self);
26745    }
26746}
26747
26748impl BaseNetworkSocketGetIpv6UnicastHopsResponder {
26749    /// Sends a response to the FIDL transaction.
26750    ///
26751    /// Sets the channel to shutdown if an error occurs.
26752    pub fn send(
26753        self,
26754        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
26755    ) -> Result<(), fidl::Error> {
26756        let _result = self.send_raw(result);
26757        if _result.is_err() {
26758            self.control_handle.shutdown();
26759        }
26760        self.drop_without_shutdown();
26761        _result
26762    }
26763
26764    /// Similar to "send" but does not shutdown the channel if an error occurs.
26765    pub fn send_no_shutdown_on_err(
26766        self,
26767        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
26768    ) -> Result<(), fidl::Error> {
26769        let _result = self.send_raw(result);
26770        self.drop_without_shutdown();
26771        _result
26772    }
26773
26774    fn send_raw(
26775        &self,
26776        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
26777    ) -> Result<(), fidl::Error> {
26778        self.control_handle.inner.send::<fidl::encoding::ResultType<
26779            BaseNetworkSocketGetIpv6UnicastHopsResponse,
26780            fidl_fuchsia_posix::Errno,
26781        >>(
26782            result.map(|value| (value,)),
26783            self.tx_id,
26784            0x21f4641cad8bd8d2,
26785            fidl::encoding::DynamicFlags::empty(),
26786        )
26787    }
26788}
26789
26790#[must_use = "FIDL methods require a response to be sent"]
26791#[derive(Debug)]
26792pub struct BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
26793    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26794    tx_id: u32,
26795}
26796
26797/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26798/// if the responder is dropped without sending a response, so that the client
26799/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26800impl std::ops::Drop for BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
26801    fn drop(&mut self) {
26802        self.control_handle.shutdown();
26803        // Safety: drops once, never accessed again
26804        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26805    }
26806}
26807
26808impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
26809    type ControlHandle = BaseNetworkSocketControlHandle;
26810
26811    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26812        &self.control_handle
26813    }
26814
26815    fn drop_without_shutdown(mut self) {
26816        // Safety: drops once, never accessed again due to mem::forget
26817        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26818        // Prevent Drop from running (which would shut down the channel)
26819        std::mem::forget(self);
26820    }
26821}
26822
26823impl BaseNetworkSocketSetIpv6ReceiveHopLimitResponder {
26824    /// Sends a response to the FIDL transaction.
26825    ///
26826    /// Sets the channel to shutdown if an error occurs.
26827    pub fn send(
26828        self,
26829        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26830    ) -> Result<(), fidl::Error> {
26831        let _result = self.send_raw(result);
26832        if _result.is_err() {
26833            self.control_handle.shutdown();
26834        }
26835        self.drop_without_shutdown();
26836        _result
26837    }
26838
26839    /// Similar to "send" but does not shutdown the channel if an error occurs.
26840    pub fn send_no_shutdown_on_err(
26841        self,
26842        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26843    ) -> Result<(), fidl::Error> {
26844        let _result = self.send_raw(result);
26845        self.drop_without_shutdown();
26846        _result
26847    }
26848
26849    fn send_raw(
26850        &self,
26851        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26852    ) -> Result<(), fidl::Error> {
26853        self.control_handle.inner.send::<fidl::encoding::ResultType<
26854            fidl::encoding::EmptyStruct,
26855            fidl_fuchsia_posix::Errno,
26856        >>(
26857            result,
26858            self.tx_id,
26859            0x5c24808ed2e84a1e,
26860            fidl::encoding::DynamicFlags::empty(),
26861        )
26862    }
26863}
26864
26865#[must_use = "FIDL methods require a response to be sent"]
26866#[derive(Debug)]
26867pub struct BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
26868    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26869    tx_id: u32,
26870}
26871
26872/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26873/// if the responder is dropped without sending a response, so that the client
26874/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26875impl std::ops::Drop for BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
26876    fn drop(&mut self) {
26877        self.control_handle.shutdown();
26878        // Safety: drops once, never accessed again
26879        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26880    }
26881}
26882
26883impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
26884    type ControlHandle = BaseNetworkSocketControlHandle;
26885
26886    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26887        &self.control_handle
26888    }
26889
26890    fn drop_without_shutdown(mut self) {
26891        // Safety: drops once, never accessed again due to mem::forget
26892        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26893        // Prevent Drop from running (which would shut down the channel)
26894        std::mem::forget(self);
26895    }
26896}
26897
26898impl BaseNetworkSocketGetIpv6ReceiveHopLimitResponder {
26899    /// Sends a response to the FIDL transaction.
26900    ///
26901    /// Sets the channel to shutdown if an error occurs.
26902    pub fn send(
26903        self,
26904        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26905    ) -> Result<(), fidl::Error> {
26906        let _result = self.send_raw(result);
26907        if _result.is_err() {
26908            self.control_handle.shutdown();
26909        }
26910        self.drop_without_shutdown();
26911        _result
26912    }
26913
26914    /// Similar to "send" but does not shutdown the channel if an error occurs.
26915    pub fn send_no_shutdown_on_err(
26916        self,
26917        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26918    ) -> Result<(), fidl::Error> {
26919        let _result = self.send_raw(result);
26920        self.drop_without_shutdown();
26921        _result
26922    }
26923
26924    fn send_raw(
26925        &self,
26926        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
26927    ) -> Result<(), fidl::Error> {
26928        self.control_handle.inner.send::<fidl::encoding::ResultType<
26929            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
26930            fidl_fuchsia_posix::Errno,
26931        >>(
26932            result.map(|value| (value,)),
26933            self.tx_id,
26934            0x341e06689885b4c0,
26935            fidl::encoding::DynamicFlags::empty(),
26936        )
26937    }
26938}
26939
26940#[must_use = "FIDL methods require a response to be sent"]
26941#[derive(Debug)]
26942pub struct BaseNetworkSocketSetIpv6MulticastHopsResponder {
26943    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
26944    tx_id: u32,
26945}
26946
26947/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
26948/// if the responder is dropped without sending a response, so that the client
26949/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
26950impl std::ops::Drop for BaseNetworkSocketSetIpv6MulticastHopsResponder {
26951    fn drop(&mut self) {
26952        self.control_handle.shutdown();
26953        // Safety: drops once, never accessed again
26954        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26955    }
26956}
26957
26958impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6MulticastHopsResponder {
26959    type ControlHandle = BaseNetworkSocketControlHandle;
26960
26961    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
26962        &self.control_handle
26963    }
26964
26965    fn drop_without_shutdown(mut self) {
26966        // Safety: drops once, never accessed again due to mem::forget
26967        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
26968        // Prevent Drop from running (which would shut down the channel)
26969        std::mem::forget(self);
26970    }
26971}
26972
26973impl BaseNetworkSocketSetIpv6MulticastHopsResponder {
26974    /// Sends a response to the FIDL transaction.
26975    ///
26976    /// Sets the channel to shutdown if an error occurs.
26977    pub fn send(
26978        self,
26979        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26980    ) -> Result<(), fidl::Error> {
26981        let _result = self.send_raw(result);
26982        if _result.is_err() {
26983            self.control_handle.shutdown();
26984        }
26985        self.drop_without_shutdown();
26986        _result
26987    }
26988
26989    /// Similar to "send" but does not shutdown the channel if an error occurs.
26990    pub fn send_no_shutdown_on_err(
26991        self,
26992        mut result: Result<(), fidl_fuchsia_posix::Errno>,
26993    ) -> Result<(), fidl::Error> {
26994        let _result = self.send_raw(result);
26995        self.drop_without_shutdown();
26996        _result
26997    }
26998
26999    fn send_raw(
27000        &self,
27001        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27002    ) -> Result<(), fidl::Error> {
27003        self.control_handle.inner.send::<fidl::encoding::ResultType<
27004            fidl::encoding::EmptyStruct,
27005            fidl_fuchsia_posix::Errno,
27006        >>(
27007            result,
27008            self.tx_id,
27009            0x25b9cd4d181f82c1,
27010            fidl::encoding::DynamicFlags::empty(),
27011        )
27012    }
27013}
27014
27015#[must_use = "FIDL methods require a response to be sent"]
27016#[derive(Debug)]
27017pub struct BaseNetworkSocketGetIpv6MulticastHopsResponder {
27018    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27019    tx_id: u32,
27020}
27021
27022/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27023/// if the responder is dropped without sending a response, so that the client
27024/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27025impl std::ops::Drop for BaseNetworkSocketGetIpv6MulticastHopsResponder {
27026    fn drop(&mut self) {
27027        self.control_handle.shutdown();
27028        // Safety: drops once, never accessed again
27029        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27030    }
27031}
27032
27033impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6MulticastHopsResponder {
27034    type ControlHandle = BaseNetworkSocketControlHandle;
27035
27036    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27037        &self.control_handle
27038    }
27039
27040    fn drop_without_shutdown(mut self) {
27041        // Safety: drops once, never accessed again due to mem::forget
27042        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27043        // Prevent Drop from running (which would shut down the channel)
27044        std::mem::forget(self);
27045    }
27046}
27047
27048impl BaseNetworkSocketGetIpv6MulticastHopsResponder {
27049    /// Sends a response to the FIDL transaction.
27050    ///
27051    /// Sets the channel to shutdown if an error occurs.
27052    pub fn send(
27053        self,
27054        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27055    ) -> Result<(), fidl::Error> {
27056        let _result = self.send_raw(result);
27057        if _result.is_err() {
27058            self.control_handle.shutdown();
27059        }
27060        self.drop_without_shutdown();
27061        _result
27062    }
27063
27064    /// Similar to "send" but does not shutdown the channel if an error occurs.
27065    pub fn send_no_shutdown_on_err(
27066        self,
27067        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27068    ) -> Result<(), fidl::Error> {
27069        let _result = self.send_raw(result);
27070        self.drop_without_shutdown();
27071        _result
27072    }
27073
27074    fn send_raw(
27075        &self,
27076        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27077    ) -> Result<(), fidl::Error> {
27078        self.control_handle.inner.send::<fidl::encoding::ResultType<
27079            BaseNetworkSocketGetIpv6MulticastHopsResponse,
27080            fidl_fuchsia_posix::Errno,
27081        >>(
27082            result.map(|value| (value,)),
27083            self.tx_id,
27084            0x52916948a365012a,
27085            fidl::encoding::DynamicFlags::empty(),
27086        )
27087    }
27088}
27089
27090#[must_use = "FIDL methods require a response to be sent"]
27091#[derive(Debug)]
27092pub struct BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27093    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27094    tx_id: u32,
27095}
27096
27097/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27098/// if the responder is dropped without sending a response, so that the client
27099/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27100impl std::ops::Drop for BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27101    fn drop(&mut self) {
27102        self.control_handle.shutdown();
27103        // Safety: drops once, never accessed again
27104        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27105    }
27106}
27107
27108impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27109    type ControlHandle = BaseNetworkSocketControlHandle;
27110
27111    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27112        &self.control_handle
27113    }
27114
27115    fn drop_without_shutdown(mut self) {
27116        // Safety: drops once, never accessed again due to mem::forget
27117        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27118        // Prevent Drop from running (which would shut down the channel)
27119        std::mem::forget(self);
27120    }
27121}
27122
27123impl BaseNetworkSocketSetIpv6MulticastLoopbackResponder {
27124    /// Sends a response to the FIDL transaction.
27125    ///
27126    /// Sets the channel to shutdown if an error occurs.
27127    pub fn send(
27128        self,
27129        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27130    ) -> Result<(), fidl::Error> {
27131        let _result = self.send_raw(result);
27132        if _result.is_err() {
27133            self.control_handle.shutdown();
27134        }
27135        self.drop_without_shutdown();
27136        _result
27137    }
27138
27139    /// Similar to "send" but does not shutdown the channel if an error occurs.
27140    pub fn send_no_shutdown_on_err(
27141        self,
27142        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27143    ) -> Result<(), fidl::Error> {
27144        let _result = self.send_raw(result);
27145        self.drop_without_shutdown();
27146        _result
27147    }
27148
27149    fn send_raw(
27150        &self,
27151        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27152    ) -> Result<(), fidl::Error> {
27153        self.control_handle.inner.send::<fidl::encoding::ResultType<
27154            fidl::encoding::EmptyStruct,
27155            fidl_fuchsia_posix::Errno,
27156        >>(
27157            result,
27158            self.tx_id,
27159            0x55701c409ff41b40,
27160            fidl::encoding::DynamicFlags::empty(),
27161        )
27162    }
27163}
27164
27165#[must_use = "FIDL methods require a response to be sent"]
27166#[derive(Debug)]
27167pub struct BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27168    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27169    tx_id: u32,
27170}
27171
27172/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27173/// if the responder is dropped without sending a response, so that the client
27174/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27175impl std::ops::Drop for BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27176    fn drop(&mut self) {
27177        self.control_handle.shutdown();
27178        // Safety: drops once, never accessed again
27179        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27180    }
27181}
27182
27183impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27184    type ControlHandle = BaseNetworkSocketControlHandle;
27185
27186    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27187        &self.control_handle
27188    }
27189
27190    fn drop_without_shutdown(mut self) {
27191        // Safety: drops once, never accessed again due to mem::forget
27192        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27193        // Prevent Drop from running (which would shut down the channel)
27194        std::mem::forget(self);
27195    }
27196}
27197
27198impl BaseNetworkSocketGetIpv6MulticastLoopbackResponder {
27199    /// Sends a response to the FIDL transaction.
27200    ///
27201    /// Sets the channel to shutdown if an error occurs.
27202    pub fn send(
27203        self,
27204        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27205    ) -> Result<(), fidl::Error> {
27206        let _result = self.send_raw(result);
27207        if _result.is_err() {
27208            self.control_handle.shutdown();
27209        }
27210        self.drop_without_shutdown();
27211        _result
27212    }
27213
27214    /// Similar to "send" but does not shutdown the channel if an error occurs.
27215    pub fn send_no_shutdown_on_err(
27216        self,
27217        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27218    ) -> Result<(), fidl::Error> {
27219        let _result = self.send_raw(result);
27220        self.drop_without_shutdown();
27221        _result
27222    }
27223
27224    fn send_raw(
27225        &self,
27226        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27227    ) -> Result<(), fidl::Error> {
27228        self.control_handle.inner.send::<fidl::encoding::ResultType<
27229            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
27230            fidl_fuchsia_posix::Errno,
27231        >>(
27232            result.map(|value| (value,)),
27233            self.tx_id,
27234            0x4415b701fde319c3,
27235            fidl::encoding::DynamicFlags::empty(),
27236        )
27237    }
27238}
27239
27240#[must_use = "FIDL methods require a response to be sent"]
27241#[derive(Debug)]
27242pub struct BaseNetworkSocketSetIpv6OnlyResponder {
27243    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27244    tx_id: u32,
27245}
27246
27247/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27248/// if the responder is dropped without sending a response, so that the client
27249/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27250impl std::ops::Drop for BaseNetworkSocketSetIpv6OnlyResponder {
27251    fn drop(&mut self) {
27252        self.control_handle.shutdown();
27253        // Safety: drops once, never accessed again
27254        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27255    }
27256}
27257
27258impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6OnlyResponder {
27259    type ControlHandle = BaseNetworkSocketControlHandle;
27260
27261    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27262        &self.control_handle
27263    }
27264
27265    fn drop_without_shutdown(mut self) {
27266        // Safety: drops once, never accessed again due to mem::forget
27267        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27268        // Prevent Drop from running (which would shut down the channel)
27269        std::mem::forget(self);
27270    }
27271}
27272
27273impl BaseNetworkSocketSetIpv6OnlyResponder {
27274    /// Sends a response to the FIDL transaction.
27275    ///
27276    /// Sets the channel to shutdown if an error occurs.
27277    pub fn send(
27278        self,
27279        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27280    ) -> Result<(), fidl::Error> {
27281        let _result = self.send_raw(result);
27282        if _result.is_err() {
27283            self.control_handle.shutdown();
27284        }
27285        self.drop_without_shutdown();
27286        _result
27287    }
27288
27289    /// Similar to "send" but does not shutdown the channel if an error occurs.
27290    pub fn send_no_shutdown_on_err(
27291        self,
27292        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27293    ) -> Result<(), fidl::Error> {
27294        let _result = self.send_raw(result);
27295        self.drop_without_shutdown();
27296        _result
27297    }
27298
27299    fn send_raw(
27300        &self,
27301        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27302    ) -> Result<(), fidl::Error> {
27303        self.control_handle.inner.send::<fidl::encoding::ResultType<
27304            fidl::encoding::EmptyStruct,
27305            fidl_fuchsia_posix::Errno,
27306        >>(
27307            result,
27308            self.tx_id,
27309            0x4873f1364758cbba,
27310            fidl::encoding::DynamicFlags::empty(),
27311        )
27312    }
27313}
27314
27315#[must_use = "FIDL methods require a response to be sent"]
27316#[derive(Debug)]
27317pub struct BaseNetworkSocketGetIpv6OnlyResponder {
27318    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27319    tx_id: u32,
27320}
27321
27322/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27323/// if the responder is dropped without sending a response, so that the client
27324/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27325impl std::ops::Drop for BaseNetworkSocketGetIpv6OnlyResponder {
27326    fn drop(&mut self) {
27327        self.control_handle.shutdown();
27328        // Safety: drops once, never accessed again
27329        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27330    }
27331}
27332
27333impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6OnlyResponder {
27334    type ControlHandle = BaseNetworkSocketControlHandle;
27335
27336    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27337        &self.control_handle
27338    }
27339
27340    fn drop_without_shutdown(mut self) {
27341        // Safety: drops once, never accessed again due to mem::forget
27342        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27343        // Prevent Drop from running (which would shut down the channel)
27344        std::mem::forget(self);
27345    }
27346}
27347
27348impl BaseNetworkSocketGetIpv6OnlyResponder {
27349    /// Sends a response to the FIDL transaction.
27350    ///
27351    /// Sets the channel to shutdown if an error occurs.
27352    pub fn send(
27353        self,
27354        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27355    ) -> Result<(), fidl::Error> {
27356        let _result = self.send_raw(result);
27357        if _result.is_err() {
27358            self.control_handle.shutdown();
27359        }
27360        self.drop_without_shutdown();
27361        _result
27362    }
27363
27364    /// Similar to "send" but does not shutdown the channel if an error occurs.
27365    pub fn send_no_shutdown_on_err(
27366        self,
27367        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27368    ) -> Result<(), fidl::Error> {
27369        let _result = self.send_raw(result);
27370        self.drop_without_shutdown();
27371        _result
27372    }
27373
27374    fn send_raw(
27375        &self,
27376        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27377    ) -> Result<(), fidl::Error> {
27378        self.control_handle.inner.send::<fidl::encoding::ResultType<
27379            BaseNetworkSocketGetIpv6OnlyResponse,
27380            fidl_fuchsia_posix::Errno,
27381        >>(
27382            result.map(|value| (value,)),
27383            self.tx_id,
27384            0x4aa3340a1a26b89c,
27385            fidl::encoding::DynamicFlags::empty(),
27386        )
27387    }
27388}
27389
27390#[must_use = "FIDL methods require a response to be sent"]
27391#[derive(Debug)]
27392pub struct BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27393    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27394    tx_id: u32,
27395}
27396
27397/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27398/// if the responder is dropped without sending a response, so that the client
27399/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27400impl std::ops::Drop for BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27401    fn drop(&mut self) {
27402        self.control_handle.shutdown();
27403        // Safety: drops once, never accessed again
27404        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27405    }
27406}
27407
27408impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27409    type ControlHandle = BaseNetworkSocketControlHandle;
27410
27411    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27412        &self.control_handle
27413    }
27414
27415    fn drop_without_shutdown(mut self) {
27416        // Safety: drops once, never accessed again due to mem::forget
27417        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27418        // Prevent Drop from running (which would shut down the channel)
27419        std::mem::forget(self);
27420    }
27421}
27422
27423impl BaseNetworkSocketSetIpv6ReceiveTrafficClassResponder {
27424    /// Sends a response to the FIDL transaction.
27425    ///
27426    /// Sets the channel to shutdown if an error occurs.
27427    pub fn send(
27428        self,
27429        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27430    ) -> Result<(), fidl::Error> {
27431        let _result = self.send_raw(result);
27432        if _result.is_err() {
27433            self.control_handle.shutdown();
27434        }
27435        self.drop_without_shutdown();
27436        _result
27437    }
27438
27439    /// Similar to "send" but does not shutdown the channel if an error occurs.
27440    pub fn send_no_shutdown_on_err(
27441        self,
27442        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27443    ) -> Result<(), fidl::Error> {
27444        let _result = self.send_raw(result);
27445        self.drop_without_shutdown();
27446        _result
27447    }
27448
27449    fn send_raw(
27450        &self,
27451        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27452    ) -> Result<(), fidl::Error> {
27453        self.control_handle.inner.send::<fidl::encoding::ResultType<
27454            fidl::encoding::EmptyStruct,
27455            fidl_fuchsia_posix::Errno,
27456        >>(
27457            result,
27458            self.tx_id,
27459            0x58f07c8788d099a0,
27460            fidl::encoding::DynamicFlags::empty(),
27461        )
27462    }
27463}
27464
27465#[must_use = "FIDL methods require a response to be sent"]
27466#[derive(Debug)]
27467pub struct BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
27468    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27469    tx_id: u32,
27470}
27471
27472/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27473/// if the responder is dropped without sending a response, so that the client
27474/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27475impl std::ops::Drop for BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
27476    fn drop(&mut self) {
27477        self.control_handle.shutdown();
27478        // Safety: drops once, never accessed again
27479        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27480    }
27481}
27482
27483impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
27484    type ControlHandle = BaseNetworkSocketControlHandle;
27485
27486    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27487        &self.control_handle
27488    }
27489
27490    fn drop_without_shutdown(mut self) {
27491        // Safety: drops once, never accessed again due to mem::forget
27492        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27493        // Prevent Drop from running (which would shut down the channel)
27494        std::mem::forget(self);
27495    }
27496}
27497
27498impl BaseNetworkSocketGetIpv6ReceiveTrafficClassResponder {
27499    /// Sends a response to the FIDL transaction.
27500    ///
27501    /// Sets the channel to shutdown if an error occurs.
27502    pub fn send(
27503        self,
27504        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27505    ) -> Result<(), fidl::Error> {
27506        let _result = self.send_raw(result);
27507        if _result.is_err() {
27508            self.control_handle.shutdown();
27509        }
27510        self.drop_without_shutdown();
27511        _result
27512    }
27513
27514    /// Similar to "send" but does not shutdown the channel if an error occurs.
27515    pub fn send_no_shutdown_on_err(
27516        self,
27517        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27518    ) -> Result<(), fidl::Error> {
27519        let _result = self.send_raw(result);
27520        self.drop_without_shutdown();
27521        _result
27522    }
27523
27524    fn send_raw(
27525        &self,
27526        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27527    ) -> Result<(), fidl::Error> {
27528        self.control_handle.inner.send::<fidl::encoding::ResultType<
27529            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
27530            fidl_fuchsia_posix::Errno,
27531        >>(
27532            result.map(|value| (value,)),
27533            self.tx_id,
27534            0x2e334df1da553ffa,
27535            fidl::encoding::DynamicFlags::empty(),
27536        )
27537    }
27538}
27539
27540#[must_use = "FIDL methods require a response to be sent"]
27541#[derive(Debug)]
27542pub struct BaseNetworkSocketSetIpv6TrafficClassResponder {
27543    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27544    tx_id: u32,
27545}
27546
27547/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27548/// if the responder is dropped without sending a response, so that the client
27549/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27550impl std::ops::Drop for BaseNetworkSocketSetIpv6TrafficClassResponder {
27551    fn drop(&mut self) {
27552        self.control_handle.shutdown();
27553        // Safety: drops once, never accessed again
27554        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27555    }
27556}
27557
27558impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6TrafficClassResponder {
27559    type ControlHandle = BaseNetworkSocketControlHandle;
27560
27561    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27562        &self.control_handle
27563    }
27564
27565    fn drop_without_shutdown(mut self) {
27566        // Safety: drops once, never accessed again due to mem::forget
27567        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27568        // Prevent Drop from running (which would shut down the channel)
27569        std::mem::forget(self);
27570    }
27571}
27572
27573impl BaseNetworkSocketSetIpv6TrafficClassResponder {
27574    /// Sends a response to the FIDL transaction.
27575    ///
27576    /// Sets the channel to shutdown if an error occurs.
27577    pub fn send(
27578        self,
27579        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27580    ) -> Result<(), fidl::Error> {
27581        let _result = self.send_raw(result);
27582        if _result.is_err() {
27583            self.control_handle.shutdown();
27584        }
27585        self.drop_without_shutdown();
27586        _result
27587    }
27588
27589    /// Similar to "send" but does not shutdown the channel if an error occurs.
27590    pub fn send_no_shutdown_on_err(
27591        self,
27592        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27593    ) -> Result<(), fidl::Error> {
27594        let _result = self.send_raw(result);
27595        self.drop_without_shutdown();
27596        _result
27597    }
27598
27599    fn send_raw(
27600        &self,
27601        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27602    ) -> Result<(), fidl::Error> {
27603        self.control_handle.inner.send::<fidl::encoding::ResultType<
27604            fidl::encoding::EmptyStruct,
27605            fidl_fuchsia_posix::Errno,
27606        >>(
27607            result,
27608            self.tx_id,
27609            0x6af077800c5a0b4f,
27610            fidl::encoding::DynamicFlags::empty(),
27611        )
27612    }
27613}
27614
27615#[must_use = "FIDL methods require a response to be sent"]
27616#[derive(Debug)]
27617pub struct BaseNetworkSocketGetIpv6TrafficClassResponder {
27618    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27619    tx_id: u32,
27620}
27621
27622/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27623/// if the responder is dropped without sending a response, so that the client
27624/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27625impl std::ops::Drop for BaseNetworkSocketGetIpv6TrafficClassResponder {
27626    fn drop(&mut self) {
27627        self.control_handle.shutdown();
27628        // Safety: drops once, never accessed again
27629        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27630    }
27631}
27632
27633impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6TrafficClassResponder {
27634    type ControlHandle = BaseNetworkSocketControlHandle;
27635
27636    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27637        &self.control_handle
27638    }
27639
27640    fn drop_without_shutdown(mut self) {
27641        // Safety: drops once, never accessed again due to mem::forget
27642        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27643        // Prevent Drop from running (which would shut down the channel)
27644        std::mem::forget(self);
27645    }
27646}
27647
27648impl BaseNetworkSocketGetIpv6TrafficClassResponder {
27649    /// Sends a response to the FIDL transaction.
27650    ///
27651    /// Sets the channel to shutdown if an error occurs.
27652    pub fn send(
27653        self,
27654        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27655    ) -> Result<(), fidl::Error> {
27656        let _result = self.send_raw(result);
27657        if _result.is_err() {
27658            self.control_handle.shutdown();
27659        }
27660        self.drop_without_shutdown();
27661        _result
27662    }
27663
27664    /// Similar to "send" but does not shutdown the channel if an error occurs.
27665    pub fn send_no_shutdown_on_err(
27666        self,
27667        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27668    ) -> Result<(), fidl::Error> {
27669        let _result = self.send_raw(result);
27670        self.drop_without_shutdown();
27671        _result
27672    }
27673
27674    fn send_raw(
27675        &self,
27676        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
27677    ) -> Result<(), fidl::Error> {
27678        self.control_handle.inner.send::<fidl::encoding::ResultType<
27679            BaseNetworkSocketGetIpv6TrafficClassResponse,
27680            fidl_fuchsia_posix::Errno,
27681        >>(
27682            result.map(|value| (value,)),
27683            self.tx_id,
27684            0x6baf6eed8fc2f04,
27685            fidl::encoding::DynamicFlags::empty(),
27686        )
27687    }
27688}
27689
27690#[must_use = "FIDL methods require a response to be sent"]
27691#[derive(Debug)]
27692pub struct BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
27693    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27694    tx_id: u32,
27695}
27696
27697/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27698/// if the responder is dropped without sending a response, so that the client
27699/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27700impl std::ops::Drop for BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
27701    fn drop(&mut self) {
27702        self.control_handle.shutdown();
27703        // Safety: drops once, never accessed again
27704        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27705    }
27706}
27707
27708impl fidl::endpoints::Responder for BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
27709    type ControlHandle = BaseNetworkSocketControlHandle;
27710
27711    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27712        &self.control_handle
27713    }
27714
27715    fn drop_without_shutdown(mut self) {
27716        // Safety: drops once, never accessed again due to mem::forget
27717        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27718        // Prevent Drop from running (which would shut down the channel)
27719        std::mem::forget(self);
27720    }
27721}
27722
27723impl BaseNetworkSocketSetIpv6ReceivePacketInfoResponder {
27724    /// Sends a response to the FIDL transaction.
27725    ///
27726    /// Sets the channel to shutdown if an error occurs.
27727    pub fn send(
27728        self,
27729        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27730    ) -> Result<(), fidl::Error> {
27731        let _result = self.send_raw(result);
27732        if _result.is_err() {
27733            self.control_handle.shutdown();
27734        }
27735        self.drop_without_shutdown();
27736        _result
27737    }
27738
27739    /// Similar to "send" but does not shutdown the channel if an error occurs.
27740    pub fn send_no_shutdown_on_err(
27741        self,
27742        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27743    ) -> Result<(), fidl::Error> {
27744        let _result = self.send_raw(result);
27745        self.drop_without_shutdown();
27746        _result
27747    }
27748
27749    fn send_raw(
27750        &self,
27751        mut result: Result<(), fidl_fuchsia_posix::Errno>,
27752    ) -> Result<(), fidl::Error> {
27753        self.control_handle.inner.send::<fidl::encoding::ResultType<
27754            fidl::encoding::EmptyStruct,
27755            fidl_fuchsia_posix::Errno,
27756        >>(
27757            result,
27758            self.tx_id,
27759            0x19259775b1a92768,
27760            fidl::encoding::DynamicFlags::empty(),
27761        )
27762    }
27763}
27764
27765#[must_use = "FIDL methods require a response to be sent"]
27766#[derive(Debug)]
27767pub struct BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
27768    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27769    tx_id: u32,
27770}
27771
27772/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27773/// if the responder is dropped without sending a response, so that the client
27774/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27775impl std::ops::Drop for BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
27776    fn drop(&mut self) {
27777        self.control_handle.shutdown();
27778        // Safety: drops once, never accessed again
27779        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27780    }
27781}
27782
27783impl fidl::endpoints::Responder for BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
27784    type ControlHandle = BaseNetworkSocketControlHandle;
27785
27786    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27787        &self.control_handle
27788    }
27789
27790    fn drop_without_shutdown(mut self) {
27791        // Safety: drops once, never accessed again due to mem::forget
27792        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27793        // Prevent Drop from running (which would shut down the channel)
27794        std::mem::forget(self);
27795    }
27796}
27797
27798impl BaseNetworkSocketGetIpv6ReceivePacketInfoResponder {
27799    /// Sends a response to the FIDL transaction.
27800    ///
27801    /// Sets the channel to shutdown if an error occurs.
27802    pub fn send(
27803        self,
27804        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27805    ) -> Result<(), fidl::Error> {
27806        let _result = self.send_raw(result);
27807        if _result.is_err() {
27808            self.control_handle.shutdown();
27809        }
27810        self.drop_without_shutdown();
27811        _result
27812    }
27813
27814    /// Similar to "send" but does not shutdown the channel if an error occurs.
27815    pub fn send_no_shutdown_on_err(
27816        self,
27817        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27818    ) -> Result<(), fidl::Error> {
27819        let _result = self.send_raw(result);
27820        self.drop_without_shutdown();
27821        _result
27822    }
27823
27824    fn send_raw(
27825        &self,
27826        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
27827    ) -> Result<(), fidl::Error> {
27828        self.control_handle.inner.send::<fidl::encoding::ResultType<
27829            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
27830            fidl_fuchsia_posix::Errno,
27831        >>(
27832            result.map(|value| (value,)),
27833            self.tx_id,
27834            0x7acd4a2775baec75,
27835            fidl::encoding::DynamicFlags::empty(),
27836        )
27837    }
27838}
27839
27840#[must_use = "FIDL methods require a response to be sent"]
27841#[derive(Debug)]
27842pub struct BaseNetworkSocketGetOriginalDestinationResponder {
27843    control_handle: std::mem::ManuallyDrop<BaseNetworkSocketControlHandle>,
27844    tx_id: u32,
27845}
27846
27847/// Set the the channel to be shutdown (see [`BaseNetworkSocketControlHandle::shutdown`])
27848/// if the responder is dropped without sending a response, so that the client
27849/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
27850impl std::ops::Drop for BaseNetworkSocketGetOriginalDestinationResponder {
27851    fn drop(&mut self) {
27852        self.control_handle.shutdown();
27853        // Safety: drops once, never accessed again
27854        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27855    }
27856}
27857
27858impl fidl::endpoints::Responder for BaseNetworkSocketGetOriginalDestinationResponder {
27859    type ControlHandle = BaseNetworkSocketControlHandle;
27860
27861    fn control_handle(&self) -> &BaseNetworkSocketControlHandle {
27862        &self.control_handle
27863    }
27864
27865    fn drop_without_shutdown(mut self) {
27866        // Safety: drops once, never accessed again due to mem::forget
27867        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
27868        // Prevent Drop from running (which would shut down the channel)
27869        std::mem::forget(self);
27870    }
27871}
27872
27873impl BaseNetworkSocketGetOriginalDestinationResponder {
27874    /// Sends a response to the FIDL transaction.
27875    ///
27876    /// Sets the channel to shutdown if an error occurs.
27877    pub fn send(
27878        self,
27879        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
27880    ) -> Result<(), fidl::Error> {
27881        let _result = self.send_raw(result);
27882        if _result.is_err() {
27883            self.control_handle.shutdown();
27884        }
27885        self.drop_without_shutdown();
27886        _result
27887    }
27888
27889    /// Similar to "send" but does not shutdown the channel if an error occurs.
27890    pub fn send_no_shutdown_on_err(
27891        self,
27892        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
27893    ) -> Result<(), fidl::Error> {
27894        let _result = self.send_raw(result);
27895        self.drop_without_shutdown();
27896        _result
27897    }
27898
27899    fn send_raw(
27900        &self,
27901        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
27902    ) -> Result<(), fidl::Error> {
27903        self.control_handle.inner.send::<fidl::encoding::ResultType<
27904            BaseNetworkSocketGetOriginalDestinationResponse,
27905            fidl_fuchsia_posix::Errno,
27906        >>(
27907            result.map(|value| (value,)),
27908            self.tx_id,
27909            0x38bf28f0dafdbac0,
27910            fidl::encoding::DynamicFlags::empty(),
27911        )
27912    }
27913}
27914
27915#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
27916pub struct BaseSocketMarker;
27917
27918impl fidl::endpoints::ProtocolMarker for BaseSocketMarker {
27919    type Proxy = BaseSocketProxy;
27920    type RequestStream = BaseSocketRequestStream;
27921    #[cfg(target_os = "fuchsia")]
27922    type SynchronousProxy = BaseSocketSynchronousProxy;
27923
27924    const DEBUG_NAME: &'static str = "(anonymous) BaseSocket";
27925}
27926pub type BaseSocketSetReuseAddressResult = Result<(), fidl_fuchsia_posix::Errno>;
27927pub type BaseSocketGetReuseAddressResult = Result<bool, fidl_fuchsia_posix::Errno>;
27928pub type BaseSocketGetErrorResult = Result<(), fidl_fuchsia_posix::Errno>;
27929pub type BaseSocketSetBroadcastResult = Result<(), fidl_fuchsia_posix::Errno>;
27930pub type BaseSocketGetBroadcastResult = Result<bool, fidl_fuchsia_posix::Errno>;
27931pub type BaseSocketSetSendBufferResult = Result<(), fidl_fuchsia_posix::Errno>;
27932pub type BaseSocketGetSendBufferResult = Result<u64, fidl_fuchsia_posix::Errno>;
27933pub type BaseSocketSetReceiveBufferResult = Result<(), fidl_fuchsia_posix::Errno>;
27934pub type BaseSocketGetReceiveBufferResult = Result<u64, fidl_fuchsia_posix::Errno>;
27935pub type BaseSocketSetKeepAliveResult = Result<(), fidl_fuchsia_posix::Errno>;
27936pub type BaseSocketGetKeepAliveResult = Result<bool, fidl_fuchsia_posix::Errno>;
27937pub type BaseSocketSetOutOfBandInlineResult = Result<(), fidl_fuchsia_posix::Errno>;
27938pub type BaseSocketGetOutOfBandInlineResult = Result<bool, fidl_fuchsia_posix::Errno>;
27939pub type BaseSocketSetNoCheckResult = Result<(), fidl_fuchsia_posix::Errno>;
27940pub type BaseSocketGetNoCheckResult = Result<bool, fidl_fuchsia_posix::Errno>;
27941pub type BaseSocketSetLingerResult = Result<(), fidl_fuchsia_posix::Errno>;
27942pub type BaseSocketGetLingerResult = Result<(bool, u32), fidl_fuchsia_posix::Errno>;
27943pub type BaseSocketSetReusePortResult = Result<(), fidl_fuchsia_posix::Errno>;
27944pub type BaseSocketGetReusePortResult = Result<bool, fidl_fuchsia_posix::Errno>;
27945pub type BaseSocketGetAcceptConnResult = Result<bool, fidl_fuchsia_posix::Errno>;
27946pub type BaseSocketSetBindToDeviceResult = Result<(), fidl_fuchsia_posix::Errno>;
27947pub type BaseSocketGetBindToDeviceResult = Result<String, fidl_fuchsia_posix::Errno>;
27948pub type BaseSocketSetBindToInterfaceIndexResult = Result<(), fidl_fuchsia_posix::Errno>;
27949pub type BaseSocketGetBindToInterfaceIndexResult = Result<u64, fidl_fuchsia_posix::Errno>;
27950pub type BaseSocketSetTimestampResult = Result<(), fidl_fuchsia_posix::Errno>;
27951pub type BaseSocketGetTimestampResult = Result<TimestampOption, fidl_fuchsia_posix::Errno>;
27952pub type BaseSocketSetMarkResult = Result<(), fidl_fuchsia_posix::Errno>;
27953pub type BaseSocketGetMarkResult = Result<OptionalUint32, fidl_fuchsia_posix::Errno>;
27954pub type BaseSocketGetCookieResult = Result<u64, fidl_fuchsia_posix::Errno>;
27955
27956pub trait BaseSocketProxyInterface: Send + Sync {
27957    fn r#clone(
27958        &self,
27959        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
27960    ) -> Result<(), fidl::Error>;
27961    type CloseResponseFut: std::future::Future<
27962            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
27963        > + Send;
27964    fn r#close(&self) -> Self::CloseResponseFut;
27965    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
27966    fn r#query(&self) -> Self::QueryResponseFut;
27967    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
27968        + Send;
27969    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
27970    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
27971        + Send;
27972    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
27973    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
27974        + Send;
27975    fn r#get_error(&self) -> Self::GetErrorResponseFut;
27976    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
27977        + Send;
27978    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
27979    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
27980        + Send;
27981    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
27982    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
27983        + Send;
27984    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
27985    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
27986        + Send;
27987    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
27988    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
27989        + Send;
27990    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
27991    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
27992        + Send;
27993    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
27994    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
27995        + Send;
27996    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
27997    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
27998        + Send;
27999    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
28000    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
28001        + Send;
28002    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
28003    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
28004        + Send;
28005    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
28006    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
28007        + Send;
28008    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
28009    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
28010        + Send;
28011    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
28012    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
28013        + Send;
28014    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
28015    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
28016        + Send;
28017    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
28018    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
28019        + Send;
28020    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
28021    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
28022        + Send;
28023    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
28024    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
28025        + Send;
28026    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
28027    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
28028        + Send;
28029    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
28030    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
28031        + Send;
28032    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
28033    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
28034        + Send;
28035    fn r#set_bind_to_interface_index(&self, value: u64)
28036    -> Self::SetBindToInterfaceIndexResponseFut;
28037    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
28038        + Send;
28039    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
28040    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
28041        + Send;
28042    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
28043    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
28044        + Send;
28045    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
28046    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
28047        + Send;
28048    fn r#set_mark(
28049        &self,
28050        domain: fidl_fuchsia_net::MarkDomain,
28051        mark: &OptionalUint32,
28052    ) -> Self::SetMarkResponseFut;
28053    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
28054        + Send;
28055    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
28056    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
28057        + Send;
28058    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
28059}
28060#[derive(Debug)]
28061#[cfg(target_os = "fuchsia")]
28062pub struct BaseSocketSynchronousProxy {
28063    client: fidl::client::sync::Client,
28064}
28065
28066#[cfg(target_os = "fuchsia")]
28067impl fidl::endpoints::SynchronousProxy for BaseSocketSynchronousProxy {
28068    type Proxy = BaseSocketProxy;
28069    type Protocol = BaseSocketMarker;
28070
28071    fn from_channel(inner: fidl::Channel) -> Self {
28072        Self::new(inner)
28073    }
28074
28075    fn into_channel(self) -> fidl::Channel {
28076        self.client.into_channel()
28077    }
28078
28079    fn as_channel(&self) -> &fidl::Channel {
28080        self.client.as_channel()
28081    }
28082}
28083
28084#[cfg(target_os = "fuchsia")]
28085impl BaseSocketSynchronousProxy {
28086    pub fn new(channel: fidl::Channel) -> Self {
28087        let protocol_name = <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
28088        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
28089    }
28090
28091    pub fn into_channel(self) -> fidl::Channel {
28092        self.client.into_channel()
28093    }
28094
28095    /// Waits until an event arrives and returns it. It is safe for other
28096    /// threads to make concurrent requests while waiting for an event.
28097    pub fn wait_for_event(
28098        &self,
28099        deadline: zx::MonotonicInstant,
28100    ) -> Result<BaseSocketEvent, fidl::Error> {
28101        BaseSocketEvent::decode(self.client.wait_for_event(deadline)?)
28102    }
28103
28104    pub fn r#clone(
28105        &self,
28106        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
28107    ) -> Result<(), fidl::Error> {
28108        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
28109            (request,),
28110            0x20d8a7aba2168a79,
28111            fidl::encoding::DynamicFlags::empty(),
28112        )
28113    }
28114
28115    /// Terminates the connection.
28116    ///
28117    /// After calling `Close`, the client must not send any other requests.
28118    ///
28119    /// Servers, after sending the status response, should close the connection
28120    /// regardless of status and without sending an epitaph.
28121    ///
28122    /// Closing the client end of the channel should be semantically equivalent
28123    /// to calling `Close` without knowing when the close has completed or its
28124    /// status.
28125    pub fn r#close(
28126        &self,
28127        ___deadline: zx::MonotonicInstant,
28128    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
28129        let _response = self.client.send_query::<
28130            fidl::encoding::EmptyPayload,
28131            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
28132        >(
28133            (),
28134            0x5ac5d459ad7f657e,
28135            fidl::encoding::DynamicFlags::empty(),
28136            ___deadline,
28137        )?;
28138        Ok(_response.map(|x| x))
28139    }
28140
28141    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
28142        let _response = self.client.send_query::<
28143            fidl::encoding::EmptyPayload,
28144            fidl_fuchsia_unknown::QueryableQueryResponse,
28145        >(
28146            (),
28147            0x2658edee9decfc06,
28148            fidl::encoding::DynamicFlags::empty(),
28149            ___deadline,
28150        )?;
28151        Ok(_response.protocol)
28152    }
28153
28154    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
28155    pub fn r#set_reuse_address(
28156        &self,
28157        mut value: bool,
28158        ___deadline: zx::MonotonicInstant,
28159    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
28160        let _response =
28161            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
28162                fidl::encoding::EmptyStruct,
28163                fidl_fuchsia_posix::Errno,
28164            >>(
28165                (value,),
28166                0x1fd74ee8b9a4a876,
28167                fidl::encoding::DynamicFlags::empty(),
28168                ___deadline,
28169            )?;
28170        Ok(_response.map(|x| x))
28171    }
28172
28173    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
28174    pub fn r#get_reuse_address(
28175        &self,
28176        ___deadline: zx::MonotonicInstant,
28177    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
28178        let _response = self
28179            .client
28180            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28181                BaseSocketGetReuseAddressResponse,
28182                fidl_fuchsia_posix::Errno,
28183            >>(
28184                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
28185            )?;
28186        Ok(_response.map(|x| x.value))
28187    }
28188
28189    /// Get `SOL_SOCKET` -> `SO_ERROR`.
28190    /// Returns the last error if there is an error set on the socket.
28191    pub fn r#get_error(
28192        &self,
28193        ___deadline: zx::MonotonicInstant,
28194    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
28195        let _response =
28196            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28197                fidl::encoding::EmptyStruct,
28198                fidl_fuchsia_posix::Errno,
28199            >>(
28200                (),
28201                0x5aad39b33e5f6ebb,
28202                fidl::encoding::DynamicFlags::empty(),
28203                ___deadline,
28204            )?;
28205        Ok(_response.map(|x| x))
28206    }
28207
28208    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
28209    pub fn r#set_broadcast(
28210        &self,
28211        mut value: bool,
28212        ___deadline: zx::MonotonicInstant,
28213    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
28214        let _response =
28215            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
28216                fidl::encoding::EmptyStruct,
28217                fidl_fuchsia_posix::Errno,
28218            >>(
28219                (value,),
28220                0x6023e081ce3cd947,
28221                fidl::encoding::DynamicFlags::empty(),
28222                ___deadline,
28223            )?;
28224        Ok(_response.map(|x| x))
28225    }
28226
28227    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
28228    pub fn r#get_broadcast(
28229        &self,
28230        ___deadline: zx::MonotonicInstant,
28231    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
28232        let _response =
28233            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28234                BaseSocketGetBroadcastResponse,
28235                fidl_fuchsia_posix::Errno,
28236            >>(
28237                (),
28238                0x68796fc556f9780d,
28239                fidl::encoding::DynamicFlags::empty(),
28240                ___deadline,
28241            )?;
28242        Ok(_response.map(|x| x.value))
28243    }
28244
28245    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
28246    pub fn r#set_send_buffer(
28247        &self,
28248        mut value_bytes: u64,
28249        ___deadline: zx::MonotonicInstant,
28250    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
28251        let _response =
28252            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
28253                fidl::encoding::EmptyStruct,
28254                fidl_fuchsia_posix::Errno,
28255            >>(
28256                (value_bytes,),
28257                0x756eac32d73a7a70,
28258                fidl::encoding::DynamicFlags::empty(),
28259                ___deadline,
28260            )?;
28261        Ok(_response.map(|x| x))
28262    }
28263
28264    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
28265    pub fn r#get_send_buffer(
28266        &self,
28267        ___deadline: zx::MonotonicInstant,
28268    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
28269        let _response = self
28270            .client
28271            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28272                BaseSocketGetSendBufferResponse,
28273                fidl_fuchsia_posix::Errno,
28274            >>(
28275                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
28276            )?;
28277        Ok(_response.map(|x| x.value_bytes))
28278    }
28279
28280    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
28281    pub fn r#set_receive_buffer(
28282        &self,
28283        mut value_bytes: u64,
28284        ___deadline: zx::MonotonicInstant,
28285    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
28286        let _response =
28287            self.client
28288                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
28289                    fidl::encoding::EmptyStruct,
28290                    fidl_fuchsia_posix::Errno,
28291                >>(
28292                    (value_bytes,),
28293                    0x6b0cf2f1919c7001,
28294                    fidl::encoding::DynamicFlags::empty(),
28295                    ___deadline,
28296                )?;
28297        Ok(_response.map(|x| x))
28298    }
28299
28300    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
28301    pub fn r#get_receive_buffer(
28302        &self,
28303        ___deadline: zx::MonotonicInstant,
28304    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
28305        let _response = self
28306            .client
28307            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28308                BaseSocketGetReceiveBufferResponse,
28309                fidl_fuchsia_posix::Errno,
28310            >>(
28311                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
28312            )?;
28313        Ok(_response.map(|x| x.value_bytes))
28314    }
28315
28316    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
28317    pub fn r#set_keep_alive(
28318        &self,
28319        mut value: bool,
28320        ___deadline: zx::MonotonicInstant,
28321    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
28322        let _response =
28323            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
28324                fidl::encoding::EmptyStruct,
28325                fidl_fuchsia_posix::Errno,
28326            >>(
28327                (value,),
28328                0x572df8f0b920d2c7,
28329                fidl::encoding::DynamicFlags::empty(),
28330                ___deadline,
28331            )?;
28332        Ok(_response.map(|x| x))
28333    }
28334
28335    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
28336    pub fn r#get_keep_alive(
28337        &self,
28338        ___deadline: zx::MonotonicInstant,
28339    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
28340        let _response =
28341            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28342                BaseSocketGetKeepAliveResponse,
28343                fidl_fuchsia_posix::Errno,
28344            >>(
28345                (),
28346                0x2dd29d3215f2c9d2,
28347                fidl::encoding::DynamicFlags::empty(),
28348                ___deadline,
28349            )?;
28350        Ok(_response.map(|x| x.value))
28351    }
28352
28353    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
28354    pub fn r#set_out_of_band_inline(
28355        &self,
28356        mut value: bool,
28357        ___deadline: zx::MonotonicInstant,
28358    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
28359        let _response =
28360            self.client
28361                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
28362                    fidl::encoding::EmptyStruct,
28363                    fidl_fuchsia_posix::Errno,
28364                >>(
28365                    (value,),
28366                    0x3ecb49968bee439,
28367                    fidl::encoding::DynamicFlags::empty(),
28368                    ___deadline,
28369                )?;
28370        Ok(_response.map(|x| x))
28371    }
28372
28373    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
28374    pub fn r#get_out_of_band_inline(
28375        &self,
28376        ___deadline: zx::MonotonicInstant,
28377    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
28378        let _response = self
28379            .client
28380            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28381                BaseSocketGetOutOfBandInlineResponse,
28382                fidl_fuchsia_posix::Errno,
28383            >>(
28384                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
28385            )?;
28386        Ok(_response.map(|x| x.value))
28387    }
28388
28389    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
28390    pub fn r#set_no_check(
28391        &self,
28392        mut value: bool,
28393        ___deadline: zx::MonotonicInstant,
28394    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
28395        let _response =
28396            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
28397                fidl::encoding::EmptyStruct,
28398                fidl_fuchsia_posix::Errno,
28399            >>(
28400                (value,),
28401                0x6bbf00c53a4c78c2,
28402                fidl::encoding::DynamicFlags::empty(),
28403                ___deadline,
28404            )?;
28405        Ok(_response.map(|x| x))
28406    }
28407
28408    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
28409    pub fn r#get_no_check(
28410        &self,
28411        ___deadline: zx::MonotonicInstant,
28412    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
28413        let _response =
28414            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28415                BaseSocketGetNoCheckResponse,
28416                fidl_fuchsia_posix::Errno,
28417            >>(
28418                (),
28419                0x2cd4249286417694,
28420                fidl::encoding::DynamicFlags::empty(),
28421                ___deadline,
28422            )?;
28423        Ok(_response.map(|x| x.value))
28424    }
28425
28426    /// Set `SOL_SOCKET` -> `SO_LINGER`.
28427    pub fn r#set_linger(
28428        &self,
28429        mut linger: bool,
28430        mut length_secs: u32,
28431        ___deadline: zx::MonotonicInstant,
28432    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
28433        let _response =
28434            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
28435                fidl::encoding::EmptyStruct,
28436                fidl_fuchsia_posix::Errno,
28437            >>(
28438                (linger, length_secs),
28439                0x45386351246e998e,
28440                fidl::encoding::DynamicFlags::empty(),
28441                ___deadline,
28442            )?;
28443        Ok(_response.map(|x| x))
28444    }
28445
28446    /// Get `SOL_SOCKET` -> `SO_LINGER`.
28447    pub fn r#get_linger(
28448        &self,
28449        ___deadline: zx::MonotonicInstant,
28450    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
28451        let _response =
28452            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28453                BaseSocketGetLingerResponse,
28454                fidl_fuchsia_posix::Errno,
28455            >>(
28456                (),
28457                0x48eb20fc5ccb0e45,
28458                fidl::encoding::DynamicFlags::empty(),
28459                ___deadline,
28460            )?;
28461        Ok(_response.map(|x| (x.linger, x.length_secs)))
28462    }
28463
28464    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
28465    pub fn r#set_reuse_port(
28466        &self,
28467        mut value: bool,
28468        ___deadline: zx::MonotonicInstant,
28469    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
28470        let _response =
28471            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
28472                fidl::encoding::EmptyStruct,
28473                fidl_fuchsia_posix::Errno,
28474            >>(
28475                (value,),
28476                0x24dd3e5cb36d9ccb,
28477                fidl::encoding::DynamicFlags::empty(),
28478                ___deadline,
28479            )?;
28480        Ok(_response.map(|x| x))
28481    }
28482
28483    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
28484    pub fn r#get_reuse_port(
28485        &self,
28486        ___deadline: zx::MonotonicInstant,
28487    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
28488        let _response =
28489            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28490                BaseSocketGetReusePortResponse,
28491                fidl_fuchsia_posix::Errno,
28492            >>(
28493                (),
28494                0x7a112c1ab54ff828,
28495                fidl::encoding::DynamicFlags::empty(),
28496                ___deadline,
28497            )?;
28498        Ok(_response.map(|x| x.value))
28499    }
28500
28501    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
28502    pub fn r#get_accept_conn(
28503        &self,
28504        ___deadline: zx::MonotonicInstant,
28505    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
28506        let _response = self
28507            .client
28508            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28509                BaseSocketGetAcceptConnResponse,
28510                fidl_fuchsia_posix::Errno,
28511            >>(
28512                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
28513            )?;
28514        Ok(_response.map(|x| x.value))
28515    }
28516
28517    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
28518    pub fn r#set_bind_to_device(
28519        &self,
28520        mut value: &str,
28521        ___deadline: zx::MonotonicInstant,
28522    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
28523        let _response =
28524            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
28525                fidl::encoding::EmptyStruct,
28526                fidl_fuchsia_posix::Errno,
28527            >>(
28528                (value,),
28529                0x2118b483f28aafc4,
28530                fidl::encoding::DynamicFlags::empty(),
28531                ___deadline,
28532            )?;
28533        Ok(_response.map(|x| x))
28534    }
28535
28536    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
28537    pub fn r#get_bind_to_device(
28538        &self,
28539        ___deadline: zx::MonotonicInstant,
28540    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
28541        let _response = self
28542            .client
28543            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28544                BaseSocketGetBindToDeviceResponse,
28545                fidl_fuchsia_posix::Errno,
28546            >>(
28547                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
28548            )?;
28549        Ok(_response.map(|x| x.value))
28550    }
28551
28552    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
28553    /// If `value` is 0, this clears the bound interface.
28554    pub fn r#set_bind_to_interface_index(
28555        &self,
28556        mut value: u64,
28557        ___deadline: zx::MonotonicInstant,
28558    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
28559        let _response =
28560            self.client
28561                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
28562                    fidl::encoding::EmptyStruct,
28563                    fidl_fuchsia_posix::Errno,
28564                >>(
28565                    (value,),
28566                    0x6e387a0def00821,
28567                    fidl::encoding::DynamicFlags::empty(),
28568                    ___deadline,
28569                )?;
28570        Ok(_response.map(|x| x))
28571    }
28572
28573    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
28574    pub fn r#get_bind_to_interface_index(
28575        &self,
28576        ___deadline: zx::MonotonicInstant,
28577    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
28578        let _response = self
28579            .client
28580            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28581                BaseSocketGetBindToInterfaceIndexResponse,
28582                fidl_fuchsia_posix::Errno,
28583            >>(
28584                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
28585            )?;
28586        Ok(_response.map(|x| x.value))
28587    }
28588
28589    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
28590    pub fn r#set_timestamp(
28591        &self,
28592        mut value: TimestampOption,
28593        ___deadline: zx::MonotonicInstant,
28594    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
28595        let _response =
28596            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
28597                fidl::encoding::EmptyStruct,
28598                fidl_fuchsia_posix::Errno,
28599            >>(
28600                (value,),
28601                0x285d6516c263d839,
28602                fidl::encoding::DynamicFlags::empty(),
28603                ___deadline,
28604            )?;
28605        Ok(_response.map(|x| x))
28606    }
28607
28608    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
28609    pub fn r#get_timestamp(
28610        &self,
28611        ___deadline: zx::MonotonicInstant,
28612    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
28613        let _response =
28614            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28615                BaseSocketGetTimestampResponse,
28616                fidl_fuchsia_posix::Errno,
28617            >>(
28618                (),
28619                0x49f2fffbbcc2bd27,
28620                fidl::encoding::DynamicFlags::empty(),
28621                ___deadline,
28622            )?;
28623        Ok(_response.map(|x| x.value))
28624    }
28625
28626    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
28627    /// unlike the standard SO_MARK, this API has multiple mark domains and each
28628    /// mark can be set independently in each domain.
28629    pub fn r#set_mark(
28630        &self,
28631        mut domain: fidl_fuchsia_net::MarkDomain,
28632        mut mark: &OptionalUint32,
28633        ___deadline: zx::MonotonicInstant,
28634    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
28635        let _response =
28636            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
28637                fidl::encoding::EmptyStruct,
28638                fidl_fuchsia_posix::Errno,
28639            >>(
28640                (domain, mark),
28641                0x6ead6de09f653236,
28642                fidl::encoding::DynamicFlags::empty(),
28643                ___deadline,
28644            )?;
28645        Ok(_response.map(|x| x))
28646    }
28647
28648    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
28649    /// unlike the standard SO_MARK, this API has multiple mark domains and each
28650    /// mark can be retrieved independently in each domain.
28651    pub fn r#get_mark(
28652        &self,
28653        mut domain: fidl_fuchsia_net::MarkDomain,
28654        ___deadline: zx::MonotonicInstant,
28655    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
28656        let _response =
28657            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
28658                BaseSocketGetMarkResponse,
28659                fidl_fuchsia_posix::Errno,
28660            >>(
28661                (domain,),
28662                0x57a2752c61d93d47,
28663                fidl::encoding::DynamicFlags::empty(),
28664                ___deadline,
28665            )?;
28666        Ok(_response.map(|x| x.mark))
28667    }
28668
28669    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
28670    pub fn r#get_cookie(
28671        &self,
28672        ___deadline: zx::MonotonicInstant,
28673    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
28674        let _response =
28675            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
28676                BaseSocketGetCookieResponse,
28677                fidl_fuchsia_posix::Errno,
28678            >>(
28679                (),
28680                0x2c2f47fd8f924e52,
28681                fidl::encoding::DynamicFlags::empty(),
28682                ___deadline,
28683            )?;
28684        Ok(_response.map(|x| x.value))
28685    }
28686}
28687
28688#[cfg(target_os = "fuchsia")]
28689impl From<BaseSocketSynchronousProxy> for zx::Handle {
28690    fn from(value: BaseSocketSynchronousProxy) -> Self {
28691        value.into_channel().into()
28692    }
28693}
28694
28695#[cfg(target_os = "fuchsia")]
28696impl From<fidl::Channel> for BaseSocketSynchronousProxy {
28697    fn from(value: fidl::Channel) -> Self {
28698        Self::new(value)
28699    }
28700}
28701
28702#[cfg(target_os = "fuchsia")]
28703impl fidl::endpoints::FromClient for BaseSocketSynchronousProxy {
28704    type Protocol = BaseSocketMarker;
28705
28706    fn from_client(value: fidl::endpoints::ClientEnd<BaseSocketMarker>) -> Self {
28707        Self::new(value.into_channel())
28708    }
28709}
28710
28711#[derive(Debug, Clone)]
28712pub struct BaseSocketProxy {
28713    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
28714}
28715
28716impl fidl::endpoints::Proxy for BaseSocketProxy {
28717    type Protocol = BaseSocketMarker;
28718
28719    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
28720        Self::new(inner)
28721    }
28722
28723    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
28724        self.client.into_channel().map_err(|client| Self { client })
28725    }
28726
28727    fn as_channel(&self) -> &::fidl::AsyncChannel {
28728        self.client.as_channel()
28729    }
28730}
28731
28732impl BaseSocketProxy {
28733    /// Create a new Proxy for fuchsia.posix.socket/BaseSocket.
28734    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
28735        let protocol_name = <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
28736        Self { client: fidl::client::Client::new(channel, protocol_name) }
28737    }
28738
28739    /// Get a Stream of events from the remote end of the protocol.
28740    ///
28741    /// # Panics
28742    ///
28743    /// Panics if the event stream was already taken.
28744    pub fn take_event_stream(&self) -> BaseSocketEventStream {
28745        BaseSocketEventStream { event_receiver: self.client.take_event_receiver() }
28746    }
28747
28748    pub fn r#clone(
28749        &self,
28750        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
28751    ) -> Result<(), fidl::Error> {
28752        BaseSocketProxyInterface::r#clone(self, request)
28753    }
28754
28755    /// Terminates the connection.
28756    ///
28757    /// After calling `Close`, the client must not send any other requests.
28758    ///
28759    /// Servers, after sending the status response, should close the connection
28760    /// regardless of status and without sending an epitaph.
28761    ///
28762    /// Closing the client end of the channel should be semantically equivalent
28763    /// to calling `Close` without knowing when the close has completed or its
28764    /// status.
28765    pub fn r#close(
28766        &self,
28767    ) -> fidl::client::QueryResponseFut<
28768        fidl_fuchsia_unknown::CloseableCloseResult,
28769        fidl::encoding::DefaultFuchsiaResourceDialect,
28770    > {
28771        BaseSocketProxyInterface::r#close(self)
28772    }
28773
28774    pub fn r#query(
28775        &self,
28776    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
28777    {
28778        BaseSocketProxyInterface::r#query(self)
28779    }
28780
28781    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
28782    pub fn r#set_reuse_address(
28783        &self,
28784        mut value: bool,
28785    ) -> fidl::client::QueryResponseFut<
28786        BaseSocketSetReuseAddressResult,
28787        fidl::encoding::DefaultFuchsiaResourceDialect,
28788    > {
28789        BaseSocketProxyInterface::r#set_reuse_address(self, value)
28790    }
28791
28792    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
28793    pub fn r#get_reuse_address(
28794        &self,
28795    ) -> fidl::client::QueryResponseFut<
28796        BaseSocketGetReuseAddressResult,
28797        fidl::encoding::DefaultFuchsiaResourceDialect,
28798    > {
28799        BaseSocketProxyInterface::r#get_reuse_address(self)
28800    }
28801
28802    /// Get `SOL_SOCKET` -> `SO_ERROR`.
28803    /// Returns the last error if there is an error set on the socket.
28804    pub fn r#get_error(
28805        &self,
28806    ) -> fidl::client::QueryResponseFut<
28807        BaseSocketGetErrorResult,
28808        fidl::encoding::DefaultFuchsiaResourceDialect,
28809    > {
28810        BaseSocketProxyInterface::r#get_error(self)
28811    }
28812
28813    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
28814    pub fn r#set_broadcast(
28815        &self,
28816        mut value: bool,
28817    ) -> fidl::client::QueryResponseFut<
28818        BaseSocketSetBroadcastResult,
28819        fidl::encoding::DefaultFuchsiaResourceDialect,
28820    > {
28821        BaseSocketProxyInterface::r#set_broadcast(self, value)
28822    }
28823
28824    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
28825    pub fn r#get_broadcast(
28826        &self,
28827    ) -> fidl::client::QueryResponseFut<
28828        BaseSocketGetBroadcastResult,
28829        fidl::encoding::DefaultFuchsiaResourceDialect,
28830    > {
28831        BaseSocketProxyInterface::r#get_broadcast(self)
28832    }
28833
28834    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
28835    pub fn r#set_send_buffer(
28836        &self,
28837        mut value_bytes: u64,
28838    ) -> fidl::client::QueryResponseFut<
28839        BaseSocketSetSendBufferResult,
28840        fidl::encoding::DefaultFuchsiaResourceDialect,
28841    > {
28842        BaseSocketProxyInterface::r#set_send_buffer(self, value_bytes)
28843    }
28844
28845    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
28846    pub fn r#get_send_buffer(
28847        &self,
28848    ) -> fidl::client::QueryResponseFut<
28849        BaseSocketGetSendBufferResult,
28850        fidl::encoding::DefaultFuchsiaResourceDialect,
28851    > {
28852        BaseSocketProxyInterface::r#get_send_buffer(self)
28853    }
28854
28855    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
28856    pub fn r#set_receive_buffer(
28857        &self,
28858        mut value_bytes: u64,
28859    ) -> fidl::client::QueryResponseFut<
28860        BaseSocketSetReceiveBufferResult,
28861        fidl::encoding::DefaultFuchsiaResourceDialect,
28862    > {
28863        BaseSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
28864    }
28865
28866    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
28867    pub fn r#get_receive_buffer(
28868        &self,
28869    ) -> fidl::client::QueryResponseFut<
28870        BaseSocketGetReceiveBufferResult,
28871        fidl::encoding::DefaultFuchsiaResourceDialect,
28872    > {
28873        BaseSocketProxyInterface::r#get_receive_buffer(self)
28874    }
28875
28876    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
28877    pub fn r#set_keep_alive(
28878        &self,
28879        mut value: bool,
28880    ) -> fidl::client::QueryResponseFut<
28881        BaseSocketSetKeepAliveResult,
28882        fidl::encoding::DefaultFuchsiaResourceDialect,
28883    > {
28884        BaseSocketProxyInterface::r#set_keep_alive(self, value)
28885    }
28886
28887    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
28888    pub fn r#get_keep_alive(
28889        &self,
28890    ) -> fidl::client::QueryResponseFut<
28891        BaseSocketGetKeepAliveResult,
28892        fidl::encoding::DefaultFuchsiaResourceDialect,
28893    > {
28894        BaseSocketProxyInterface::r#get_keep_alive(self)
28895    }
28896
28897    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
28898    pub fn r#set_out_of_band_inline(
28899        &self,
28900        mut value: bool,
28901    ) -> fidl::client::QueryResponseFut<
28902        BaseSocketSetOutOfBandInlineResult,
28903        fidl::encoding::DefaultFuchsiaResourceDialect,
28904    > {
28905        BaseSocketProxyInterface::r#set_out_of_band_inline(self, value)
28906    }
28907
28908    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
28909    pub fn r#get_out_of_band_inline(
28910        &self,
28911    ) -> fidl::client::QueryResponseFut<
28912        BaseSocketGetOutOfBandInlineResult,
28913        fidl::encoding::DefaultFuchsiaResourceDialect,
28914    > {
28915        BaseSocketProxyInterface::r#get_out_of_band_inline(self)
28916    }
28917
28918    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
28919    pub fn r#set_no_check(
28920        &self,
28921        mut value: bool,
28922    ) -> fidl::client::QueryResponseFut<
28923        BaseSocketSetNoCheckResult,
28924        fidl::encoding::DefaultFuchsiaResourceDialect,
28925    > {
28926        BaseSocketProxyInterface::r#set_no_check(self, value)
28927    }
28928
28929    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
28930    pub fn r#get_no_check(
28931        &self,
28932    ) -> fidl::client::QueryResponseFut<
28933        BaseSocketGetNoCheckResult,
28934        fidl::encoding::DefaultFuchsiaResourceDialect,
28935    > {
28936        BaseSocketProxyInterface::r#get_no_check(self)
28937    }
28938
28939    /// Set `SOL_SOCKET` -> `SO_LINGER`.
28940    pub fn r#set_linger(
28941        &self,
28942        mut linger: bool,
28943        mut length_secs: u32,
28944    ) -> fidl::client::QueryResponseFut<
28945        BaseSocketSetLingerResult,
28946        fidl::encoding::DefaultFuchsiaResourceDialect,
28947    > {
28948        BaseSocketProxyInterface::r#set_linger(self, linger, length_secs)
28949    }
28950
28951    /// Get `SOL_SOCKET` -> `SO_LINGER`.
28952    pub fn r#get_linger(
28953        &self,
28954    ) -> fidl::client::QueryResponseFut<
28955        BaseSocketGetLingerResult,
28956        fidl::encoding::DefaultFuchsiaResourceDialect,
28957    > {
28958        BaseSocketProxyInterface::r#get_linger(self)
28959    }
28960
28961    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
28962    pub fn r#set_reuse_port(
28963        &self,
28964        mut value: bool,
28965    ) -> fidl::client::QueryResponseFut<
28966        BaseSocketSetReusePortResult,
28967        fidl::encoding::DefaultFuchsiaResourceDialect,
28968    > {
28969        BaseSocketProxyInterface::r#set_reuse_port(self, value)
28970    }
28971
28972    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
28973    pub fn r#get_reuse_port(
28974        &self,
28975    ) -> fidl::client::QueryResponseFut<
28976        BaseSocketGetReusePortResult,
28977        fidl::encoding::DefaultFuchsiaResourceDialect,
28978    > {
28979        BaseSocketProxyInterface::r#get_reuse_port(self)
28980    }
28981
28982    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
28983    pub fn r#get_accept_conn(
28984        &self,
28985    ) -> fidl::client::QueryResponseFut<
28986        BaseSocketGetAcceptConnResult,
28987        fidl::encoding::DefaultFuchsiaResourceDialect,
28988    > {
28989        BaseSocketProxyInterface::r#get_accept_conn(self)
28990    }
28991
28992    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
28993    pub fn r#set_bind_to_device(
28994        &self,
28995        mut value: &str,
28996    ) -> fidl::client::QueryResponseFut<
28997        BaseSocketSetBindToDeviceResult,
28998        fidl::encoding::DefaultFuchsiaResourceDialect,
28999    > {
29000        BaseSocketProxyInterface::r#set_bind_to_device(self, value)
29001    }
29002
29003    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
29004    pub fn r#get_bind_to_device(
29005        &self,
29006    ) -> fidl::client::QueryResponseFut<
29007        BaseSocketGetBindToDeviceResult,
29008        fidl::encoding::DefaultFuchsiaResourceDialect,
29009    > {
29010        BaseSocketProxyInterface::r#get_bind_to_device(self)
29011    }
29012
29013    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
29014    /// If `value` is 0, this clears the bound interface.
29015    pub fn r#set_bind_to_interface_index(
29016        &self,
29017        mut value: u64,
29018    ) -> fidl::client::QueryResponseFut<
29019        BaseSocketSetBindToInterfaceIndexResult,
29020        fidl::encoding::DefaultFuchsiaResourceDialect,
29021    > {
29022        BaseSocketProxyInterface::r#set_bind_to_interface_index(self, value)
29023    }
29024
29025    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
29026    pub fn r#get_bind_to_interface_index(
29027        &self,
29028    ) -> fidl::client::QueryResponseFut<
29029        BaseSocketGetBindToInterfaceIndexResult,
29030        fidl::encoding::DefaultFuchsiaResourceDialect,
29031    > {
29032        BaseSocketProxyInterface::r#get_bind_to_interface_index(self)
29033    }
29034
29035    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
29036    pub fn r#set_timestamp(
29037        &self,
29038        mut value: TimestampOption,
29039    ) -> fidl::client::QueryResponseFut<
29040        BaseSocketSetTimestampResult,
29041        fidl::encoding::DefaultFuchsiaResourceDialect,
29042    > {
29043        BaseSocketProxyInterface::r#set_timestamp(self, value)
29044    }
29045
29046    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
29047    pub fn r#get_timestamp(
29048        &self,
29049    ) -> fidl::client::QueryResponseFut<
29050        BaseSocketGetTimestampResult,
29051        fidl::encoding::DefaultFuchsiaResourceDialect,
29052    > {
29053        BaseSocketProxyInterface::r#get_timestamp(self)
29054    }
29055
29056    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
29057    /// unlike the standard SO_MARK, this API has multiple mark domains and each
29058    /// mark can be set independently in each domain.
29059    pub fn r#set_mark(
29060        &self,
29061        mut domain: fidl_fuchsia_net::MarkDomain,
29062        mut mark: &OptionalUint32,
29063    ) -> fidl::client::QueryResponseFut<
29064        BaseSocketSetMarkResult,
29065        fidl::encoding::DefaultFuchsiaResourceDialect,
29066    > {
29067        BaseSocketProxyInterface::r#set_mark(self, domain, mark)
29068    }
29069
29070    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
29071    /// unlike the standard SO_MARK, this API has multiple mark domains and each
29072    /// mark can be retrieved independently in each domain.
29073    pub fn r#get_mark(
29074        &self,
29075        mut domain: fidl_fuchsia_net::MarkDomain,
29076    ) -> fidl::client::QueryResponseFut<
29077        BaseSocketGetMarkResult,
29078        fidl::encoding::DefaultFuchsiaResourceDialect,
29079    > {
29080        BaseSocketProxyInterface::r#get_mark(self, domain)
29081    }
29082
29083    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
29084    pub fn r#get_cookie(
29085        &self,
29086    ) -> fidl::client::QueryResponseFut<
29087        BaseSocketGetCookieResult,
29088        fidl::encoding::DefaultFuchsiaResourceDialect,
29089    > {
29090        BaseSocketProxyInterface::r#get_cookie(self)
29091    }
29092}
29093
29094impl BaseSocketProxyInterface for BaseSocketProxy {
29095    fn r#clone(
29096        &self,
29097        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
29098    ) -> Result<(), fidl::Error> {
29099        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
29100            (request,),
29101            0x20d8a7aba2168a79,
29102            fidl::encoding::DynamicFlags::empty(),
29103        )
29104    }
29105
29106    type CloseResponseFut = fidl::client::QueryResponseFut<
29107        fidl_fuchsia_unknown::CloseableCloseResult,
29108        fidl::encoding::DefaultFuchsiaResourceDialect,
29109    >;
29110    fn r#close(&self) -> Self::CloseResponseFut {
29111        fn _decode(
29112            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29113        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
29114            let _response = fidl::client::decode_transaction_body::<
29115                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
29116                fidl::encoding::DefaultFuchsiaResourceDialect,
29117                0x5ac5d459ad7f657e,
29118            >(_buf?)?;
29119            Ok(_response.map(|x| x))
29120        }
29121        self.client.send_query_and_decode::<
29122            fidl::encoding::EmptyPayload,
29123            fidl_fuchsia_unknown::CloseableCloseResult,
29124        >(
29125            (),
29126            0x5ac5d459ad7f657e,
29127            fidl::encoding::DynamicFlags::empty(),
29128            _decode,
29129        )
29130    }
29131
29132    type QueryResponseFut =
29133        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
29134    fn r#query(&self) -> Self::QueryResponseFut {
29135        fn _decode(
29136            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29137        ) -> Result<Vec<u8>, fidl::Error> {
29138            let _response = fidl::client::decode_transaction_body::<
29139                fidl_fuchsia_unknown::QueryableQueryResponse,
29140                fidl::encoding::DefaultFuchsiaResourceDialect,
29141                0x2658edee9decfc06,
29142            >(_buf?)?;
29143            Ok(_response.protocol)
29144        }
29145        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
29146            (),
29147            0x2658edee9decfc06,
29148            fidl::encoding::DynamicFlags::empty(),
29149            _decode,
29150        )
29151    }
29152
29153    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
29154        BaseSocketSetReuseAddressResult,
29155        fidl::encoding::DefaultFuchsiaResourceDialect,
29156    >;
29157    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
29158        fn _decode(
29159            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29160        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
29161            let _response = fidl::client::decode_transaction_body::<
29162                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29163                fidl::encoding::DefaultFuchsiaResourceDialect,
29164                0x1fd74ee8b9a4a876,
29165            >(_buf?)?;
29166            Ok(_response.map(|x| x))
29167        }
29168        self.client.send_query_and_decode::<
29169            BaseSocketSetReuseAddressRequest,
29170            BaseSocketSetReuseAddressResult,
29171        >(
29172            (value,),
29173            0x1fd74ee8b9a4a876,
29174            fidl::encoding::DynamicFlags::empty(),
29175            _decode,
29176        )
29177    }
29178
29179    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
29180        BaseSocketGetReuseAddressResult,
29181        fidl::encoding::DefaultFuchsiaResourceDialect,
29182    >;
29183    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
29184        fn _decode(
29185            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29186        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
29187            let _response = fidl::client::decode_transaction_body::<
29188                fidl::encoding::ResultType<
29189                    BaseSocketGetReuseAddressResponse,
29190                    fidl_fuchsia_posix::Errno,
29191                >,
29192                fidl::encoding::DefaultFuchsiaResourceDialect,
29193                0x67b7206b8d1bc0a5,
29194            >(_buf?)?;
29195            Ok(_response.map(|x| x.value))
29196        }
29197        self.client
29198            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
29199                (),
29200                0x67b7206b8d1bc0a5,
29201                fidl::encoding::DynamicFlags::empty(),
29202                _decode,
29203            )
29204    }
29205
29206    type GetErrorResponseFut = fidl::client::QueryResponseFut<
29207        BaseSocketGetErrorResult,
29208        fidl::encoding::DefaultFuchsiaResourceDialect,
29209    >;
29210    fn r#get_error(&self) -> Self::GetErrorResponseFut {
29211        fn _decode(
29212            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29213        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
29214            let _response = fidl::client::decode_transaction_body::<
29215                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29216                fidl::encoding::DefaultFuchsiaResourceDialect,
29217                0x5aad39b33e5f6ebb,
29218            >(_buf?)?;
29219            Ok(_response.map(|x| x))
29220        }
29221        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
29222            (),
29223            0x5aad39b33e5f6ebb,
29224            fidl::encoding::DynamicFlags::empty(),
29225            _decode,
29226        )
29227    }
29228
29229    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
29230        BaseSocketSetBroadcastResult,
29231        fidl::encoding::DefaultFuchsiaResourceDialect,
29232    >;
29233    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
29234        fn _decode(
29235            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29236        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
29237            let _response = fidl::client::decode_transaction_body::<
29238                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29239                fidl::encoding::DefaultFuchsiaResourceDialect,
29240                0x6023e081ce3cd947,
29241            >(_buf?)?;
29242            Ok(_response.map(|x| x))
29243        }
29244        self.client
29245            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
29246                (value,),
29247                0x6023e081ce3cd947,
29248                fidl::encoding::DynamicFlags::empty(),
29249                _decode,
29250            )
29251    }
29252
29253    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
29254        BaseSocketGetBroadcastResult,
29255        fidl::encoding::DefaultFuchsiaResourceDialect,
29256    >;
29257    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
29258        fn _decode(
29259            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29260        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
29261            let _response = fidl::client::decode_transaction_body::<
29262                fidl::encoding::ResultType<
29263                    BaseSocketGetBroadcastResponse,
29264                    fidl_fuchsia_posix::Errno,
29265                >,
29266                fidl::encoding::DefaultFuchsiaResourceDialect,
29267                0x68796fc556f9780d,
29268            >(_buf?)?;
29269            Ok(_response.map(|x| x.value))
29270        }
29271        self.client
29272            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
29273                (),
29274                0x68796fc556f9780d,
29275                fidl::encoding::DynamicFlags::empty(),
29276                _decode,
29277            )
29278    }
29279
29280    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
29281        BaseSocketSetSendBufferResult,
29282        fidl::encoding::DefaultFuchsiaResourceDialect,
29283    >;
29284    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
29285        fn _decode(
29286            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29287        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
29288            let _response = fidl::client::decode_transaction_body::<
29289                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29290                fidl::encoding::DefaultFuchsiaResourceDialect,
29291                0x756eac32d73a7a70,
29292            >(_buf?)?;
29293            Ok(_response.map(|x| x))
29294        }
29295        self.client
29296            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
29297                (value_bytes,),
29298                0x756eac32d73a7a70,
29299                fidl::encoding::DynamicFlags::empty(),
29300                _decode,
29301            )
29302    }
29303
29304    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
29305        BaseSocketGetSendBufferResult,
29306        fidl::encoding::DefaultFuchsiaResourceDialect,
29307    >;
29308    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
29309        fn _decode(
29310            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29311        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
29312            let _response = fidl::client::decode_transaction_body::<
29313                fidl::encoding::ResultType<
29314                    BaseSocketGetSendBufferResponse,
29315                    fidl_fuchsia_posix::Errno,
29316                >,
29317                fidl::encoding::DefaultFuchsiaResourceDialect,
29318                0x78a52fd9c7b2410b,
29319            >(_buf?)?;
29320            Ok(_response.map(|x| x.value_bytes))
29321        }
29322        self.client
29323            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
29324                (),
29325                0x78a52fd9c7b2410b,
29326                fidl::encoding::DynamicFlags::empty(),
29327                _decode,
29328            )
29329    }
29330
29331    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
29332        BaseSocketSetReceiveBufferResult,
29333        fidl::encoding::DefaultFuchsiaResourceDialect,
29334    >;
29335    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
29336        fn _decode(
29337            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29338        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
29339            let _response = fidl::client::decode_transaction_body::<
29340                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29341                fidl::encoding::DefaultFuchsiaResourceDialect,
29342                0x6b0cf2f1919c7001,
29343            >(_buf?)?;
29344            Ok(_response.map(|x| x))
29345        }
29346        self.client.send_query_and_decode::<
29347            BaseSocketSetReceiveBufferRequest,
29348            BaseSocketSetReceiveBufferResult,
29349        >(
29350            (value_bytes,),
29351            0x6b0cf2f1919c7001,
29352            fidl::encoding::DynamicFlags::empty(),
29353            _decode,
29354        )
29355    }
29356
29357    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
29358        BaseSocketGetReceiveBufferResult,
29359        fidl::encoding::DefaultFuchsiaResourceDialect,
29360    >;
29361    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
29362        fn _decode(
29363            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29364        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
29365            let _response = fidl::client::decode_transaction_body::<
29366                fidl::encoding::ResultType<
29367                    BaseSocketGetReceiveBufferResponse,
29368                    fidl_fuchsia_posix::Errno,
29369                >,
29370                fidl::encoding::DefaultFuchsiaResourceDialect,
29371                0x14c1a4b64f709e5c,
29372            >(_buf?)?;
29373            Ok(_response.map(|x| x.value_bytes))
29374        }
29375        self.client.send_query_and_decode::<
29376            fidl::encoding::EmptyPayload,
29377            BaseSocketGetReceiveBufferResult,
29378        >(
29379            (),
29380            0x14c1a4b64f709e5c,
29381            fidl::encoding::DynamicFlags::empty(),
29382            _decode,
29383        )
29384    }
29385
29386    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
29387        BaseSocketSetKeepAliveResult,
29388        fidl::encoding::DefaultFuchsiaResourceDialect,
29389    >;
29390    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
29391        fn _decode(
29392            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29393        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
29394            let _response = fidl::client::decode_transaction_body::<
29395                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29396                fidl::encoding::DefaultFuchsiaResourceDialect,
29397                0x572df8f0b920d2c7,
29398            >(_buf?)?;
29399            Ok(_response.map(|x| x))
29400        }
29401        self.client
29402            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
29403                (value,),
29404                0x572df8f0b920d2c7,
29405                fidl::encoding::DynamicFlags::empty(),
29406                _decode,
29407            )
29408    }
29409
29410    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
29411        BaseSocketGetKeepAliveResult,
29412        fidl::encoding::DefaultFuchsiaResourceDialect,
29413    >;
29414    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
29415        fn _decode(
29416            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29417        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
29418            let _response = fidl::client::decode_transaction_body::<
29419                fidl::encoding::ResultType<
29420                    BaseSocketGetKeepAliveResponse,
29421                    fidl_fuchsia_posix::Errno,
29422                >,
29423                fidl::encoding::DefaultFuchsiaResourceDialect,
29424                0x2dd29d3215f2c9d2,
29425            >(_buf?)?;
29426            Ok(_response.map(|x| x.value))
29427        }
29428        self.client
29429            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
29430                (),
29431                0x2dd29d3215f2c9d2,
29432                fidl::encoding::DynamicFlags::empty(),
29433                _decode,
29434            )
29435    }
29436
29437    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
29438        BaseSocketSetOutOfBandInlineResult,
29439        fidl::encoding::DefaultFuchsiaResourceDialect,
29440    >;
29441    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
29442        fn _decode(
29443            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29444        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
29445            let _response = fidl::client::decode_transaction_body::<
29446                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29447                fidl::encoding::DefaultFuchsiaResourceDialect,
29448                0x3ecb49968bee439,
29449            >(_buf?)?;
29450            Ok(_response.map(|x| x))
29451        }
29452        self.client.send_query_and_decode::<
29453            BaseSocketSetOutOfBandInlineRequest,
29454            BaseSocketSetOutOfBandInlineResult,
29455        >(
29456            (value,),
29457            0x3ecb49968bee439,
29458            fidl::encoding::DynamicFlags::empty(),
29459            _decode,
29460        )
29461    }
29462
29463    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
29464        BaseSocketGetOutOfBandInlineResult,
29465        fidl::encoding::DefaultFuchsiaResourceDialect,
29466    >;
29467    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
29468        fn _decode(
29469            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29470        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
29471            let _response = fidl::client::decode_transaction_body::<
29472                fidl::encoding::ResultType<
29473                    BaseSocketGetOutOfBandInlineResponse,
29474                    fidl_fuchsia_posix::Errno,
29475                >,
29476                fidl::encoding::DefaultFuchsiaResourceDialect,
29477                0x348c1ab3aeca1745,
29478            >(_buf?)?;
29479            Ok(_response.map(|x| x.value))
29480        }
29481        self.client.send_query_and_decode::<
29482            fidl::encoding::EmptyPayload,
29483            BaseSocketGetOutOfBandInlineResult,
29484        >(
29485            (),
29486            0x348c1ab3aeca1745,
29487            fidl::encoding::DynamicFlags::empty(),
29488            _decode,
29489        )
29490    }
29491
29492    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
29493        BaseSocketSetNoCheckResult,
29494        fidl::encoding::DefaultFuchsiaResourceDialect,
29495    >;
29496    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
29497        fn _decode(
29498            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29499        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
29500            let _response = fidl::client::decode_transaction_body::<
29501                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29502                fidl::encoding::DefaultFuchsiaResourceDialect,
29503                0x6bbf00c53a4c78c2,
29504            >(_buf?)?;
29505            Ok(_response.map(|x| x))
29506        }
29507        self.client
29508            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
29509                (value,),
29510                0x6bbf00c53a4c78c2,
29511                fidl::encoding::DynamicFlags::empty(),
29512                _decode,
29513            )
29514    }
29515
29516    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
29517        BaseSocketGetNoCheckResult,
29518        fidl::encoding::DefaultFuchsiaResourceDialect,
29519    >;
29520    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
29521        fn _decode(
29522            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29523        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
29524            let _response = fidl::client::decode_transaction_body::<
29525                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
29526                fidl::encoding::DefaultFuchsiaResourceDialect,
29527                0x2cd4249286417694,
29528            >(_buf?)?;
29529            Ok(_response.map(|x| x.value))
29530        }
29531        self.client
29532            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
29533                (),
29534                0x2cd4249286417694,
29535                fidl::encoding::DynamicFlags::empty(),
29536                _decode,
29537            )
29538    }
29539
29540    type SetLingerResponseFut = fidl::client::QueryResponseFut<
29541        BaseSocketSetLingerResult,
29542        fidl::encoding::DefaultFuchsiaResourceDialect,
29543    >;
29544    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
29545        fn _decode(
29546            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29547        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
29548            let _response = fidl::client::decode_transaction_body::<
29549                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29550                fidl::encoding::DefaultFuchsiaResourceDialect,
29551                0x45386351246e998e,
29552            >(_buf?)?;
29553            Ok(_response.map(|x| x))
29554        }
29555        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
29556            (linger, length_secs),
29557            0x45386351246e998e,
29558            fidl::encoding::DynamicFlags::empty(),
29559            _decode,
29560        )
29561    }
29562
29563    type GetLingerResponseFut = fidl::client::QueryResponseFut<
29564        BaseSocketGetLingerResult,
29565        fidl::encoding::DefaultFuchsiaResourceDialect,
29566    >;
29567    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
29568        fn _decode(
29569            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29570        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
29571            let _response = fidl::client::decode_transaction_body::<
29572                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
29573                fidl::encoding::DefaultFuchsiaResourceDialect,
29574                0x48eb20fc5ccb0e45,
29575            >(_buf?)?;
29576            Ok(_response.map(|x| (x.linger, x.length_secs)))
29577        }
29578        self.client
29579            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
29580                (),
29581                0x48eb20fc5ccb0e45,
29582                fidl::encoding::DynamicFlags::empty(),
29583                _decode,
29584            )
29585    }
29586
29587    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
29588        BaseSocketSetReusePortResult,
29589        fidl::encoding::DefaultFuchsiaResourceDialect,
29590    >;
29591    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
29592        fn _decode(
29593            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29594        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
29595            let _response = fidl::client::decode_transaction_body::<
29596                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29597                fidl::encoding::DefaultFuchsiaResourceDialect,
29598                0x24dd3e5cb36d9ccb,
29599            >(_buf?)?;
29600            Ok(_response.map(|x| x))
29601        }
29602        self.client
29603            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
29604                (value,),
29605                0x24dd3e5cb36d9ccb,
29606                fidl::encoding::DynamicFlags::empty(),
29607                _decode,
29608            )
29609    }
29610
29611    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
29612        BaseSocketGetReusePortResult,
29613        fidl::encoding::DefaultFuchsiaResourceDialect,
29614    >;
29615    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
29616        fn _decode(
29617            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29618        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
29619            let _response = fidl::client::decode_transaction_body::<
29620                fidl::encoding::ResultType<
29621                    BaseSocketGetReusePortResponse,
29622                    fidl_fuchsia_posix::Errno,
29623                >,
29624                fidl::encoding::DefaultFuchsiaResourceDialect,
29625                0x7a112c1ab54ff828,
29626            >(_buf?)?;
29627            Ok(_response.map(|x| x.value))
29628        }
29629        self.client
29630            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
29631                (),
29632                0x7a112c1ab54ff828,
29633                fidl::encoding::DynamicFlags::empty(),
29634                _decode,
29635            )
29636    }
29637
29638    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
29639        BaseSocketGetAcceptConnResult,
29640        fidl::encoding::DefaultFuchsiaResourceDialect,
29641    >;
29642    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
29643        fn _decode(
29644            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29645        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
29646            let _response = fidl::client::decode_transaction_body::<
29647                fidl::encoding::ResultType<
29648                    BaseSocketGetAcceptConnResponse,
29649                    fidl_fuchsia_posix::Errno,
29650                >,
29651                fidl::encoding::DefaultFuchsiaResourceDialect,
29652                0x67ce6db6c2ec8966,
29653            >(_buf?)?;
29654            Ok(_response.map(|x| x.value))
29655        }
29656        self.client
29657            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
29658                (),
29659                0x67ce6db6c2ec8966,
29660                fidl::encoding::DynamicFlags::empty(),
29661                _decode,
29662            )
29663    }
29664
29665    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
29666        BaseSocketSetBindToDeviceResult,
29667        fidl::encoding::DefaultFuchsiaResourceDialect,
29668    >;
29669    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
29670        fn _decode(
29671            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29672        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
29673            let _response = fidl::client::decode_transaction_body::<
29674                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29675                fidl::encoding::DefaultFuchsiaResourceDialect,
29676                0x2118b483f28aafc4,
29677            >(_buf?)?;
29678            Ok(_response.map(|x| x))
29679        }
29680        self.client.send_query_and_decode::<
29681            BaseSocketSetBindToDeviceRequest,
29682            BaseSocketSetBindToDeviceResult,
29683        >(
29684            (value,),
29685            0x2118b483f28aafc4,
29686            fidl::encoding::DynamicFlags::empty(),
29687            _decode,
29688        )
29689    }
29690
29691    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
29692        BaseSocketGetBindToDeviceResult,
29693        fidl::encoding::DefaultFuchsiaResourceDialect,
29694    >;
29695    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
29696        fn _decode(
29697            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29698        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
29699            let _response = fidl::client::decode_transaction_body::<
29700                fidl::encoding::ResultType<
29701                    BaseSocketGetBindToDeviceResponse,
29702                    fidl_fuchsia_posix::Errno,
29703                >,
29704                fidl::encoding::DefaultFuchsiaResourceDialect,
29705                0x1ab1fbf0ef7906c8,
29706            >(_buf?)?;
29707            Ok(_response.map(|x| x.value))
29708        }
29709        self.client
29710            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
29711                (),
29712                0x1ab1fbf0ef7906c8,
29713                fidl::encoding::DynamicFlags::empty(),
29714                _decode,
29715            )
29716    }
29717
29718    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
29719        BaseSocketSetBindToInterfaceIndexResult,
29720        fidl::encoding::DefaultFuchsiaResourceDialect,
29721    >;
29722    fn r#set_bind_to_interface_index(
29723        &self,
29724        mut value: u64,
29725    ) -> Self::SetBindToInterfaceIndexResponseFut {
29726        fn _decode(
29727            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29728        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
29729            let _response = fidl::client::decode_transaction_body::<
29730                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29731                fidl::encoding::DefaultFuchsiaResourceDialect,
29732                0x6e387a0def00821,
29733            >(_buf?)?;
29734            Ok(_response.map(|x| x))
29735        }
29736        self.client.send_query_and_decode::<
29737            BaseSocketSetBindToInterfaceIndexRequest,
29738            BaseSocketSetBindToInterfaceIndexResult,
29739        >(
29740            (value,),
29741            0x6e387a0def00821,
29742            fidl::encoding::DynamicFlags::empty(),
29743            _decode,
29744        )
29745    }
29746
29747    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
29748        BaseSocketGetBindToInterfaceIndexResult,
29749        fidl::encoding::DefaultFuchsiaResourceDialect,
29750    >;
29751    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
29752        fn _decode(
29753            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29754        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
29755            let _response = fidl::client::decode_transaction_body::<
29756                fidl::encoding::ResultType<
29757                    BaseSocketGetBindToInterfaceIndexResponse,
29758                    fidl_fuchsia_posix::Errno,
29759                >,
29760                fidl::encoding::DefaultFuchsiaResourceDialect,
29761                0x59c31dd3e3078295,
29762            >(_buf?)?;
29763            Ok(_response.map(|x| x.value))
29764        }
29765        self.client.send_query_and_decode::<
29766            fidl::encoding::EmptyPayload,
29767            BaseSocketGetBindToInterfaceIndexResult,
29768        >(
29769            (),
29770            0x59c31dd3e3078295,
29771            fidl::encoding::DynamicFlags::empty(),
29772            _decode,
29773        )
29774    }
29775
29776    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
29777        BaseSocketSetTimestampResult,
29778        fidl::encoding::DefaultFuchsiaResourceDialect,
29779    >;
29780    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
29781        fn _decode(
29782            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29783        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
29784            let _response = fidl::client::decode_transaction_body::<
29785                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29786                fidl::encoding::DefaultFuchsiaResourceDialect,
29787                0x285d6516c263d839,
29788            >(_buf?)?;
29789            Ok(_response.map(|x| x))
29790        }
29791        self.client
29792            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
29793                (value,),
29794                0x285d6516c263d839,
29795                fidl::encoding::DynamicFlags::empty(),
29796                _decode,
29797            )
29798    }
29799
29800    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
29801        BaseSocketGetTimestampResult,
29802        fidl::encoding::DefaultFuchsiaResourceDialect,
29803    >;
29804    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
29805        fn _decode(
29806            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29807        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
29808            let _response = fidl::client::decode_transaction_body::<
29809                fidl::encoding::ResultType<
29810                    BaseSocketGetTimestampResponse,
29811                    fidl_fuchsia_posix::Errno,
29812                >,
29813                fidl::encoding::DefaultFuchsiaResourceDialect,
29814                0x49f2fffbbcc2bd27,
29815            >(_buf?)?;
29816            Ok(_response.map(|x| x.value))
29817        }
29818        self.client
29819            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
29820                (),
29821                0x49f2fffbbcc2bd27,
29822                fidl::encoding::DynamicFlags::empty(),
29823                _decode,
29824            )
29825    }
29826
29827    type SetMarkResponseFut = fidl::client::QueryResponseFut<
29828        BaseSocketSetMarkResult,
29829        fidl::encoding::DefaultFuchsiaResourceDialect,
29830    >;
29831    fn r#set_mark(
29832        &self,
29833        mut domain: fidl_fuchsia_net::MarkDomain,
29834        mut mark: &OptionalUint32,
29835    ) -> Self::SetMarkResponseFut {
29836        fn _decode(
29837            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29838        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
29839            let _response = fidl::client::decode_transaction_body::<
29840                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
29841                fidl::encoding::DefaultFuchsiaResourceDialect,
29842                0x6ead6de09f653236,
29843            >(_buf?)?;
29844            Ok(_response.map(|x| x))
29845        }
29846        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
29847            (domain, mark),
29848            0x6ead6de09f653236,
29849            fidl::encoding::DynamicFlags::empty(),
29850            _decode,
29851        )
29852    }
29853
29854    type GetMarkResponseFut = fidl::client::QueryResponseFut<
29855        BaseSocketGetMarkResult,
29856        fidl::encoding::DefaultFuchsiaResourceDialect,
29857    >;
29858    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
29859        fn _decode(
29860            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29861        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
29862            let _response = fidl::client::decode_transaction_body::<
29863                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
29864                fidl::encoding::DefaultFuchsiaResourceDialect,
29865                0x57a2752c61d93d47,
29866            >(_buf?)?;
29867            Ok(_response.map(|x| x.mark))
29868        }
29869        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
29870            (domain,),
29871            0x57a2752c61d93d47,
29872            fidl::encoding::DynamicFlags::empty(),
29873            _decode,
29874        )
29875    }
29876
29877    type GetCookieResponseFut = fidl::client::QueryResponseFut<
29878        BaseSocketGetCookieResult,
29879        fidl::encoding::DefaultFuchsiaResourceDialect,
29880    >;
29881    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
29882        fn _decode(
29883            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
29884        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
29885            let _response = fidl::client::decode_transaction_body::<
29886                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
29887                fidl::encoding::DefaultFuchsiaResourceDialect,
29888                0x2c2f47fd8f924e52,
29889            >(_buf?)?;
29890            Ok(_response.map(|x| x.value))
29891        }
29892        self.client
29893            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
29894                (),
29895                0x2c2f47fd8f924e52,
29896                fidl::encoding::DynamicFlags::empty(),
29897                _decode,
29898            )
29899    }
29900}
29901
29902pub struct BaseSocketEventStream {
29903    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
29904}
29905
29906impl std::marker::Unpin for BaseSocketEventStream {}
29907
29908impl futures::stream::FusedStream for BaseSocketEventStream {
29909    fn is_terminated(&self) -> bool {
29910        self.event_receiver.is_terminated()
29911    }
29912}
29913
29914impl futures::Stream for BaseSocketEventStream {
29915    type Item = Result<BaseSocketEvent, fidl::Error>;
29916
29917    fn poll_next(
29918        mut self: std::pin::Pin<&mut Self>,
29919        cx: &mut std::task::Context<'_>,
29920    ) -> std::task::Poll<Option<Self::Item>> {
29921        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
29922            &mut self.event_receiver,
29923            cx
29924        )?) {
29925            Some(buf) => std::task::Poll::Ready(Some(BaseSocketEvent::decode(buf))),
29926            None => std::task::Poll::Ready(None),
29927        }
29928    }
29929}
29930
29931#[derive(Debug)]
29932pub enum BaseSocketEvent {}
29933
29934impl BaseSocketEvent {
29935    /// Decodes a message buffer as a [`BaseSocketEvent`].
29936    fn decode(
29937        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
29938    ) -> Result<BaseSocketEvent, fidl::Error> {
29939        let (bytes, _handles) = buf.split_mut();
29940        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
29941        debug_assert_eq!(tx_header.tx_id, 0);
29942        match tx_header.ordinal {
29943            _ => Err(fidl::Error::UnknownOrdinal {
29944                ordinal: tx_header.ordinal,
29945                protocol_name: <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
29946            }),
29947        }
29948    }
29949}
29950
29951/// A Stream of incoming requests for fuchsia.posix.socket/BaseSocket.
29952pub struct BaseSocketRequestStream {
29953    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
29954    is_terminated: bool,
29955}
29956
29957impl std::marker::Unpin for BaseSocketRequestStream {}
29958
29959impl futures::stream::FusedStream for BaseSocketRequestStream {
29960    fn is_terminated(&self) -> bool {
29961        self.is_terminated
29962    }
29963}
29964
29965impl fidl::endpoints::RequestStream for BaseSocketRequestStream {
29966    type Protocol = BaseSocketMarker;
29967    type ControlHandle = BaseSocketControlHandle;
29968
29969    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
29970        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
29971    }
29972
29973    fn control_handle(&self) -> Self::ControlHandle {
29974        BaseSocketControlHandle { inner: self.inner.clone() }
29975    }
29976
29977    fn into_inner(
29978        self,
29979    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
29980    {
29981        (self.inner, self.is_terminated)
29982    }
29983
29984    fn from_inner(
29985        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
29986        is_terminated: bool,
29987    ) -> Self {
29988        Self { inner, is_terminated }
29989    }
29990}
29991
29992impl futures::Stream for BaseSocketRequestStream {
29993    type Item = Result<BaseSocketRequest, fidl::Error>;
29994
29995    fn poll_next(
29996        mut self: std::pin::Pin<&mut Self>,
29997        cx: &mut std::task::Context<'_>,
29998    ) -> std::task::Poll<Option<Self::Item>> {
29999        let this = &mut *self;
30000        if this.inner.check_shutdown(cx) {
30001            this.is_terminated = true;
30002            return std::task::Poll::Ready(None);
30003        }
30004        if this.is_terminated {
30005            panic!("polled BaseSocketRequestStream after completion");
30006        }
30007        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
30008            |bytes, handles| {
30009                match this.inner.channel().read_etc(cx, bytes, handles) {
30010                    std::task::Poll::Ready(Ok(())) => {}
30011                    std::task::Poll::Pending => return std::task::Poll::Pending,
30012                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
30013                        this.is_terminated = true;
30014                        return std::task::Poll::Ready(None);
30015                    }
30016                    std::task::Poll::Ready(Err(e)) => {
30017                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
30018                            e.into(),
30019                        ))));
30020                    }
30021                }
30022
30023                // A message has been received from the channel
30024                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
30025
30026                std::task::Poll::Ready(Some(match header.ordinal {
30027                    0x20d8a7aba2168a79 => {
30028                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
30029                        let mut req = fidl::new_empty!(
30030                            fidl_fuchsia_unknown::CloneableCloneRequest,
30031                            fidl::encoding::DefaultFuchsiaResourceDialect
30032                        );
30033                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
30034                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30035                        Ok(BaseSocketRequest::Clone { request: req.request, control_handle })
30036                    }
30037                    0x5ac5d459ad7f657e => {
30038                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30039                        let mut req = fidl::new_empty!(
30040                            fidl::encoding::EmptyPayload,
30041                            fidl::encoding::DefaultFuchsiaResourceDialect
30042                        );
30043                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30044                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30045                        Ok(BaseSocketRequest::Close {
30046                            responder: BaseSocketCloseResponder {
30047                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30048                                tx_id: header.tx_id,
30049                            },
30050                        })
30051                    }
30052                    0x2658edee9decfc06 => {
30053                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30054                        let mut req = fidl::new_empty!(
30055                            fidl::encoding::EmptyPayload,
30056                            fidl::encoding::DefaultFuchsiaResourceDialect
30057                        );
30058                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30059                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30060                        Ok(BaseSocketRequest::Query {
30061                            responder: BaseSocketQueryResponder {
30062                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30063                                tx_id: header.tx_id,
30064                            },
30065                        })
30066                    }
30067                    0x1fd74ee8b9a4a876 => {
30068                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30069                        let mut req = fidl::new_empty!(
30070                            BaseSocketSetReuseAddressRequest,
30071                            fidl::encoding::DefaultFuchsiaResourceDialect
30072                        );
30073                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
30074                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30075                        Ok(BaseSocketRequest::SetReuseAddress {
30076                            value: req.value,
30077
30078                            responder: BaseSocketSetReuseAddressResponder {
30079                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30080                                tx_id: header.tx_id,
30081                            },
30082                        })
30083                    }
30084                    0x67b7206b8d1bc0a5 => {
30085                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30086                        let mut req = fidl::new_empty!(
30087                            fidl::encoding::EmptyPayload,
30088                            fidl::encoding::DefaultFuchsiaResourceDialect
30089                        );
30090                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30091                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30092                        Ok(BaseSocketRequest::GetReuseAddress {
30093                            responder: BaseSocketGetReuseAddressResponder {
30094                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30095                                tx_id: header.tx_id,
30096                            },
30097                        })
30098                    }
30099                    0x5aad39b33e5f6ebb => {
30100                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30101                        let mut req = fidl::new_empty!(
30102                            fidl::encoding::EmptyPayload,
30103                            fidl::encoding::DefaultFuchsiaResourceDialect
30104                        );
30105                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30106                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30107                        Ok(BaseSocketRequest::GetError {
30108                            responder: BaseSocketGetErrorResponder {
30109                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30110                                tx_id: header.tx_id,
30111                            },
30112                        })
30113                    }
30114                    0x6023e081ce3cd947 => {
30115                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30116                        let mut req = fidl::new_empty!(
30117                            BaseSocketSetBroadcastRequest,
30118                            fidl::encoding::DefaultFuchsiaResourceDialect
30119                        );
30120                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
30121                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30122                        Ok(BaseSocketRequest::SetBroadcast {
30123                            value: req.value,
30124
30125                            responder: BaseSocketSetBroadcastResponder {
30126                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30127                                tx_id: header.tx_id,
30128                            },
30129                        })
30130                    }
30131                    0x68796fc556f9780d => {
30132                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30133                        let mut req = fidl::new_empty!(
30134                            fidl::encoding::EmptyPayload,
30135                            fidl::encoding::DefaultFuchsiaResourceDialect
30136                        );
30137                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30138                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30139                        Ok(BaseSocketRequest::GetBroadcast {
30140                            responder: BaseSocketGetBroadcastResponder {
30141                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30142                                tx_id: header.tx_id,
30143                            },
30144                        })
30145                    }
30146                    0x756eac32d73a7a70 => {
30147                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30148                        let mut req = fidl::new_empty!(
30149                            BaseSocketSetSendBufferRequest,
30150                            fidl::encoding::DefaultFuchsiaResourceDialect
30151                        );
30152                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
30153                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30154                        Ok(BaseSocketRequest::SetSendBuffer {
30155                            value_bytes: req.value_bytes,
30156
30157                            responder: BaseSocketSetSendBufferResponder {
30158                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30159                                tx_id: header.tx_id,
30160                            },
30161                        })
30162                    }
30163                    0x78a52fd9c7b2410b => {
30164                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30165                        let mut req = fidl::new_empty!(
30166                            fidl::encoding::EmptyPayload,
30167                            fidl::encoding::DefaultFuchsiaResourceDialect
30168                        );
30169                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30170                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30171                        Ok(BaseSocketRequest::GetSendBuffer {
30172                            responder: BaseSocketGetSendBufferResponder {
30173                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30174                                tx_id: header.tx_id,
30175                            },
30176                        })
30177                    }
30178                    0x6b0cf2f1919c7001 => {
30179                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30180                        let mut req = fidl::new_empty!(
30181                            BaseSocketSetReceiveBufferRequest,
30182                            fidl::encoding::DefaultFuchsiaResourceDialect
30183                        );
30184                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
30185                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30186                        Ok(BaseSocketRequest::SetReceiveBuffer {
30187                            value_bytes: req.value_bytes,
30188
30189                            responder: BaseSocketSetReceiveBufferResponder {
30190                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30191                                tx_id: header.tx_id,
30192                            },
30193                        })
30194                    }
30195                    0x14c1a4b64f709e5c => {
30196                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30197                        let mut req = fidl::new_empty!(
30198                            fidl::encoding::EmptyPayload,
30199                            fidl::encoding::DefaultFuchsiaResourceDialect
30200                        );
30201                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30202                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30203                        Ok(BaseSocketRequest::GetReceiveBuffer {
30204                            responder: BaseSocketGetReceiveBufferResponder {
30205                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30206                                tx_id: header.tx_id,
30207                            },
30208                        })
30209                    }
30210                    0x572df8f0b920d2c7 => {
30211                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30212                        let mut req = fidl::new_empty!(
30213                            BaseSocketSetKeepAliveRequest,
30214                            fidl::encoding::DefaultFuchsiaResourceDialect
30215                        );
30216                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
30217                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30218                        Ok(BaseSocketRequest::SetKeepAlive {
30219                            value: req.value,
30220
30221                            responder: BaseSocketSetKeepAliveResponder {
30222                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30223                                tx_id: header.tx_id,
30224                            },
30225                        })
30226                    }
30227                    0x2dd29d3215f2c9d2 => {
30228                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30229                        let mut req = fidl::new_empty!(
30230                            fidl::encoding::EmptyPayload,
30231                            fidl::encoding::DefaultFuchsiaResourceDialect
30232                        );
30233                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30234                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30235                        Ok(BaseSocketRequest::GetKeepAlive {
30236                            responder: BaseSocketGetKeepAliveResponder {
30237                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30238                                tx_id: header.tx_id,
30239                            },
30240                        })
30241                    }
30242                    0x3ecb49968bee439 => {
30243                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30244                        let mut req = fidl::new_empty!(
30245                            BaseSocketSetOutOfBandInlineRequest,
30246                            fidl::encoding::DefaultFuchsiaResourceDialect
30247                        );
30248                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
30249                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30250                        Ok(BaseSocketRequest::SetOutOfBandInline {
30251                            value: req.value,
30252
30253                            responder: BaseSocketSetOutOfBandInlineResponder {
30254                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30255                                tx_id: header.tx_id,
30256                            },
30257                        })
30258                    }
30259                    0x348c1ab3aeca1745 => {
30260                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30261                        let mut req = fidl::new_empty!(
30262                            fidl::encoding::EmptyPayload,
30263                            fidl::encoding::DefaultFuchsiaResourceDialect
30264                        );
30265                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30266                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30267                        Ok(BaseSocketRequest::GetOutOfBandInline {
30268                            responder: BaseSocketGetOutOfBandInlineResponder {
30269                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30270                                tx_id: header.tx_id,
30271                            },
30272                        })
30273                    }
30274                    0x6bbf00c53a4c78c2 => {
30275                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30276                        let mut req = fidl::new_empty!(
30277                            BaseSocketSetNoCheckRequest,
30278                            fidl::encoding::DefaultFuchsiaResourceDialect
30279                        );
30280                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
30281                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30282                        Ok(BaseSocketRequest::SetNoCheck {
30283                            value: req.value,
30284
30285                            responder: BaseSocketSetNoCheckResponder {
30286                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30287                                tx_id: header.tx_id,
30288                            },
30289                        })
30290                    }
30291                    0x2cd4249286417694 => {
30292                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30293                        let mut req = fidl::new_empty!(
30294                            fidl::encoding::EmptyPayload,
30295                            fidl::encoding::DefaultFuchsiaResourceDialect
30296                        );
30297                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30298                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30299                        Ok(BaseSocketRequest::GetNoCheck {
30300                            responder: BaseSocketGetNoCheckResponder {
30301                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30302                                tx_id: header.tx_id,
30303                            },
30304                        })
30305                    }
30306                    0x45386351246e998e => {
30307                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30308                        let mut req = fidl::new_empty!(
30309                            BaseSocketSetLingerRequest,
30310                            fidl::encoding::DefaultFuchsiaResourceDialect
30311                        );
30312                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
30313                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30314                        Ok(BaseSocketRequest::SetLinger {
30315                            linger: req.linger,
30316                            length_secs: req.length_secs,
30317
30318                            responder: BaseSocketSetLingerResponder {
30319                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30320                                tx_id: header.tx_id,
30321                            },
30322                        })
30323                    }
30324                    0x48eb20fc5ccb0e45 => {
30325                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30326                        let mut req = fidl::new_empty!(
30327                            fidl::encoding::EmptyPayload,
30328                            fidl::encoding::DefaultFuchsiaResourceDialect
30329                        );
30330                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30331                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30332                        Ok(BaseSocketRequest::GetLinger {
30333                            responder: BaseSocketGetLingerResponder {
30334                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30335                                tx_id: header.tx_id,
30336                            },
30337                        })
30338                    }
30339                    0x24dd3e5cb36d9ccb => {
30340                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30341                        let mut req = fidl::new_empty!(
30342                            BaseSocketSetReusePortRequest,
30343                            fidl::encoding::DefaultFuchsiaResourceDialect
30344                        );
30345                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
30346                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30347                        Ok(BaseSocketRequest::SetReusePort {
30348                            value: req.value,
30349
30350                            responder: BaseSocketSetReusePortResponder {
30351                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30352                                tx_id: header.tx_id,
30353                            },
30354                        })
30355                    }
30356                    0x7a112c1ab54ff828 => {
30357                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30358                        let mut req = fidl::new_empty!(
30359                            fidl::encoding::EmptyPayload,
30360                            fidl::encoding::DefaultFuchsiaResourceDialect
30361                        );
30362                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30363                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30364                        Ok(BaseSocketRequest::GetReusePort {
30365                            responder: BaseSocketGetReusePortResponder {
30366                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30367                                tx_id: header.tx_id,
30368                            },
30369                        })
30370                    }
30371                    0x67ce6db6c2ec8966 => {
30372                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30373                        let mut req = fidl::new_empty!(
30374                            fidl::encoding::EmptyPayload,
30375                            fidl::encoding::DefaultFuchsiaResourceDialect
30376                        );
30377                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30378                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30379                        Ok(BaseSocketRequest::GetAcceptConn {
30380                            responder: BaseSocketGetAcceptConnResponder {
30381                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30382                                tx_id: header.tx_id,
30383                            },
30384                        })
30385                    }
30386                    0x2118b483f28aafc4 => {
30387                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30388                        let mut req = fidl::new_empty!(
30389                            BaseSocketSetBindToDeviceRequest,
30390                            fidl::encoding::DefaultFuchsiaResourceDialect
30391                        );
30392                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
30393                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30394                        Ok(BaseSocketRequest::SetBindToDevice {
30395                            value: req.value,
30396
30397                            responder: BaseSocketSetBindToDeviceResponder {
30398                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30399                                tx_id: header.tx_id,
30400                            },
30401                        })
30402                    }
30403                    0x1ab1fbf0ef7906c8 => {
30404                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30405                        let mut req = fidl::new_empty!(
30406                            fidl::encoding::EmptyPayload,
30407                            fidl::encoding::DefaultFuchsiaResourceDialect
30408                        );
30409                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30410                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30411                        Ok(BaseSocketRequest::GetBindToDevice {
30412                            responder: BaseSocketGetBindToDeviceResponder {
30413                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30414                                tx_id: header.tx_id,
30415                            },
30416                        })
30417                    }
30418                    0x6e387a0def00821 => {
30419                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30420                        let mut req = fidl::new_empty!(
30421                            BaseSocketSetBindToInterfaceIndexRequest,
30422                            fidl::encoding::DefaultFuchsiaResourceDialect
30423                        );
30424                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
30425                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30426                        Ok(BaseSocketRequest::SetBindToInterfaceIndex {
30427                            value: req.value,
30428
30429                            responder: BaseSocketSetBindToInterfaceIndexResponder {
30430                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30431                                tx_id: header.tx_id,
30432                            },
30433                        })
30434                    }
30435                    0x59c31dd3e3078295 => {
30436                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30437                        let mut req = fidl::new_empty!(
30438                            fidl::encoding::EmptyPayload,
30439                            fidl::encoding::DefaultFuchsiaResourceDialect
30440                        );
30441                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30442                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30443                        Ok(BaseSocketRequest::GetBindToInterfaceIndex {
30444                            responder: BaseSocketGetBindToInterfaceIndexResponder {
30445                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30446                                tx_id: header.tx_id,
30447                            },
30448                        })
30449                    }
30450                    0x285d6516c263d839 => {
30451                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30452                        let mut req = fidl::new_empty!(
30453                            BaseSocketSetTimestampRequest,
30454                            fidl::encoding::DefaultFuchsiaResourceDialect
30455                        );
30456                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
30457                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30458                        Ok(BaseSocketRequest::SetTimestamp {
30459                            value: req.value,
30460
30461                            responder: BaseSocketSetTimestampResponder {
30462                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30463                                tx_id: header.tx_id,
30464                            },
30465                        })
30466                    }
30467                    0x49f2fffbbcc2bd27 => {
30468                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30469                        let mut req = fidl::new_empty!(
30470                            fidl::encoding::EmptyPayload,
30471                            fidl::encoding::DefaultFuchsiaResourceDialect
30472                        );
30473                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30474                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30475                        Ok(BaseSocketRequest::GetTimestamp {
30476                            responder: BaseSocketGetTimestampResponder {
30477                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30478                                tx_id: header.tx_id,
30479                            },
30480                        })
30481                    }
30482                    0x6ead6de09f653236 => {
30483                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30484                        let mut req = fidl::new_empty!(
30485                            BaseSocketSetMarkRequest,
30486                            fidl::encoding::DefaultFuchsiaResourceDialect
30487                        );
30488                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
30489                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30490                        Ok(BaseSocketRequest::SetMark {
30491                            domain: req.domain,
30492                            mark: req.mark,
30493
30494                            responder: BaseSocketSetMarkResponder {
30495                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30496                                tx_id: header.tx_id,
30497                            },
30498                        })
30499                    }
30500                    0x57a2752c61d93d47 => {
30501                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30502                        let mut req = fidl::new_empty!(
30503                            BaseSocketGetMarkRequest,
30504                            fidl::encoding::DefaultFuchsiaResourceDialect
30505                        );
30506                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
30507                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30508                        Ok(BaseSocketRequest::GetMark {
30509                            domain: req.domain,
30510
30511                            responder: BaseSocketGetMarkResponder {
30512                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30513                                tx_id: header.tx_id,
30514                            },
30515                        })
30516                    }
30517                    0x2c2f47fd8f924e52 => {
30518                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
30519                        let mut req = fidl::new_empty!(
30520                            fidl::encoding::EmptyPayload,
30521                            fidl::encoding::DefaultFuchsiaResourceDialect
30522                        );
30523                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
30524                        let control_handle = BaseSocketControlHandle { inner: this.inner.clone() };
30525                        Ok(BaseSocketRequest::GetCookie {
30526                            responder: BaseSocketGetCookieResponder {
30527                                control_handle: std::mem::ManuallyDrop::new(control_handle),
30528                                tx_id: header.tx_id,
30529                            },
30530                        })
30531                    }
30532                    _ => Err(fidl::Error::UnknownOrdinal {
30533                        ordinal: header.ordinal,
30534                        protocol_name:
30535                            <BaseSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
30536                    }),
30537                }))
30538            },
30539        )
30540    }
30541}
30542
30543/// A socket.
30544#[derive(Debug)]
30545pub enum BaseSocketRequest {
30546    Clone {
30547        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
30548        control_handle: BaseSocketControlHandle,
30549    },
30550    /// Terminates the connection.
30551    ///
30552    /// After calling `Close`, the client must not send any other requests.
30553    ///
30554    /// Servers, after sending the status response, should close the connection
30555    /// regardless of status and without sending an epitaph.
30556    ///
30557    /// Closing the client end of the channel should be semantically equivalent
30558    /// to calling `Close` without knowing when the close has completed or its
30559    /// status.
30560    Close {
30561        responder: BaseSocketCloseResponder,
30562    },
30563    Query {
30564        responder: BaseSocketQueryResponder,
30565    },
30566    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
30567    SetReuseAddress {
30568        value: bool,
30569        responder: BaseSocketSetReuseAddressResponder,
30570    },
30571    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
30572    GetReuseAddress {
30573        responder: BaseSocketGetReuseAddressResponder,
30574    },
30575    /// Get `SOL_SOCKET` -> `SO_ERROR`.
30576    /// Returns the last error if there is an error set on the socket.
30577    GetError {
30578        responder: BaseSocketGetErrorResponder,
30579    },
30580    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
30581    SetBroadcast {
30582        value: bool,
30583        responder: BaseSocketSetBroadcastResponder,
30584    },
30585    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
30586    GetBroadcast {
30587        responder: BaseSocketGetBroadcastResponder,
30588    },
30589    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
30590    SetSendBuffer {
30591        value_bytes: u64,
30592        responder: BaseSocketSetSendBufferResponder,
30593    },
30594    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
30595    GetSendBuffer {
30596        responder: BaseSocketGetSendBufferResponder,
30597    },
30598    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
30599    SetReceiveBuffer {
30600        value_bytes: u64,
30601        responder: BaseSocketSetReceiveBufferResponder,
30602    },
30603    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
30604    GetReceiveBuffer {
30605        responder: BaseSocketGetReceiveBufferResponder,
30606    },
30607    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
30608    SetKeepAlive {
30609        value: bool,
30610        responder: BaseSocketSetKeepAliveResponder,
30611    },
30612    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
30613    GetKeepAlive {
30614        responder: BaseSocketGetKeepAliveResponder,
30615    },
30616    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
30617    SetOutOfBandInline {
30618        value: bool,
30619        responder: BaseSocketSetOutOfBandInlineResponder,
30620    },
30621    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
30622    GetOutOfBandInline {
30623        responder: BaseSocketGetOutOfBandInlineResponder,
30624    },
30625    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
30626    SetNoCheck {
30627        value: bool,
30628        responder: BaseSocketSetNoCheckResponder,
30629    },
30630    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
30631    GetNoCheck {
30632        responder: BaseSocketGetNoCheckResponder,
30633    },
30634    /// Set `SOL_SOCKET` -> `SO_LINGER`.
30635    SetLinger {
30636        linger: bool,
30637        length_secs: u32,
30638        responder: BaseSocketSetLingerResponder,
30639    },
30640    /// Get `SOL_SOCKET` -> `SO_LINGER`.
30641    GetLinger {
30642        responder: BaseSocketGetLingerResponder,
30643    },
30644    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
30645    SetReusePort {
30646        value: bool,
30647        responder: BaseSocketSetReusePortResponder,
30648    },
30649    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
30650    GetReusePort {
30651        responder: BaseSocketGetReusePortResponder,
30652    },
30653    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
30654    GetAcceptConn {
30655        responder: BaseSocketGetAcceptConnResponder,
30656    },
30657    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
30658    SetBindToDevice {
30659        value: String,
30660        responder: BaseSocketSetBindToDeviceResponder,
30661    },
30662    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
30663    GetBindToDevice {
30664        responder: BaseSocketGetBindToDeviceResponder,
30665    },
30666    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
30667    /// If `value` is 0, this clears the bound interface.
30668    SetBindToInterfaceIndex {
30669        value: u64,
30670        responder: BaseSocketSetBindToInterfaceIndexResponder,
30671    },
30672    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
30673    GetBindToInterfaceIndex {
30674        responder: BaseSocketGetBindToInterfaceIndexResponder,
30675    },
30676    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
30677    SetTimestamp {
30678        value: TimestampOption,
30679        responder: BaseSocketSetTimestampResponder,
30680    },
30681    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
30682    GetTimestamp {
30683        responder: BaseSocketGetTimestampResponder,
30684    },
30685    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
30686    /// unlike the standard SO_MARK, this API has multiple mark domains and each
30687    /// mark can be set independently in each domain.
30688    SetMark {
30689        domain: fidl_fuchsia_net::MarkDomain,
30690        mark: OptionalUint32,
30691        responder: BaseSocketSetMarkResponder,
30692    },
30693    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
30694    /// unlike the standard SO_MARK, this API has multiple mark domains and each
30695    /// mark can be retrieved independently in each domain.
30696    GetMark {
30697        domain: fidl_fuchsia_net::MarkDomain,
30698        responder: BaseSocketGetMarkResponder,
30699    },
30700    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
30701    GetCookie {
30702        responder: BaseSocketGetCookieResponder,
30703    },
30704}
30705
30706impl BaseSocketRequest {
30707    #[allow(irrefutable_let_patterns)]
30708    pub fn into_clone(
30709        self,
30710    ) -> Option<(
30711        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
30712        BaseSocketControlHandle,
30713    )> {
30714        if let BaseSocketRequest::Clone { request, control_handle } = self {
30715            Some((request, control_handle))
30716        } else {
30717            None
30718        }
30719    }
30720
30721    #[allow(irrefutable_let_patterns)]
30722    pub fn into_close(self) -> Option<(BaseSocketCloseResponder)> {
30723        if let BaseSocketRequest::Close { responder } = self { Some((responder)) } else { None }
30724    }
30725
30726    #[allow(irrefutable_let_patterns)]
30727    pub fn into_query(self) -> Option<(BaseSocketQueryResponder)> {
30728        if let BaseSocketRequest::Query { responder } = self { Some((responder)) } else { None }
30729    }
30730
30731    #[allow(irrefutable_let_patterns)]
30732    pub fn into_set_reuse_address(self) -> Option<(bool, BaseSocketSetReuseAddressResponder)> {
30733        if let BaseSocketRequest::SetReuseAddress { value, responder } = self {
30734            Some((value, responder))
30735        } else {
30736            None
30737        }
30738    }
30739
30740    #[allow(irrefutable_let_patterns)]
30741    pub fn into_get_reuse_address(self) -> Option<(BaseSocketGetReuseAddressResponder)> {
30742        if let BaseSocketRequest::GetReuseAddress { responder } = self {
30743            Some((responder))
30744        } else {
30745            None
30746        }
30747    }
30748
30749    #[allow(irrefutable_let_patterns)]
30750    pub fn into_get_error(self) -> Option<(BaseSocketGetErrorResponder)> {
30751        if let BaseSocketRequest::GetError { responder } = self { Some((responder)) } else { None }
30752    }
30753
30754    #[allow(irrefutable_let_patterns)]
30755    pub fn into_set_broadcast(self) -> Option<(bool, BaseSocketSetBroadcastResponder)> {
30756        if let BaseSocketRequest::SetBroadcast { value, responder } = self {
30757            Some((value, responder))
30758        } else {
30759            None
30760        }
30761    }
30762
30763    #[allow(irrefutable_let_patterns)]
30764    pub fn into_get_broadcast(self) -> Option<(BaseSocketGetBroadcastResponder)> {
30765        if let BaseSocketRequest::GetBroadcast { responder } = self {
30766            Some((responder))
30767        } else {
30768            None
30769        }
30770    }
30771
30772    #[allow(irrefutable_let_patterns)]
30773    pub fn into_set_send_buffer(self) -> Option<(u64, BaseSocketSetSendBufferResponder)> {
30774        if let BaseSocketRequest::SetSendBuffer { value_bytes, responder } = self {
30775            Some((value_bytes, responder))
30776        } else {
30777            None
30778        }
30779    }
30780
30781    #[allow(irrefutable_let_patterns)]
30782    pub fn into_get_send_buffer(self) -> Option<(BaseSocketGetSendBufferResponder)> {
30783        if let BaseSocketRequest::GetSendBuffer { responder } = self {
30784            Some((responder))
30785        } else {
30786            None
30787        }
30788    }
30789
30790    #[allow(irrefutable_let_patterns)]
30791    pub fn into_set_receive_buffer(self) -> Option<(u64, BaseSocketSetReceiveBufferResponder)> {
30792        if let BaseSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
30793            Some((value_bytes, responder))
30794        } else {
30795            None
30796        }
30797    }
30798
30799    #[allow(irrefutable_let_patterns)]
30800    pub fn into_get_receive_buffer(self) -> Option<(BaseSocketGetReceiveBufferResponder)> {
30801        if let BaseSocketRequest::GetReceiveBuffer { responder } = self {
30802            Some((responder))
30803        } else {
30804            None
30805        }
30806    }
30807
30808    #[allow(irrefutable_let_patterns)]
30809    pub fn into_set_keep_alive(self) -> Option<(bool, BaseSocketSetKeepAliveResponder)> {
30810        if let BaseSocketRequest::SetKeepAlive { value, responder } = self {
30811            Some((value, responder))
30812        } else {
30813            None
30814        }
30815    }
30816
30817    #[allow(irrefutable_let_patterns)]
30818    pub fn into_get_keep_alive(self) -> Option<(BaseSocketGetKeepAliveResponder)> {
30819        if let BaseSocketRequest::GetKeepAlive { responder } = self {
30820            Some((responder))
30821        } else {
30822            None
30823        }
30824    }
30825
30826    #[allow(irrefutable_let_patterns)]
30827    pub fn into_set_out_of_band_inline(
30828        self,
30829    ) -> Option<(bool, BaseSocketSetOutOfBandInlineResponder)> {
30830        if let BaseSocketRequest::SetOutOfBandInline { value, responder } = self {
30831            Some((value, responder))
30832        } else {
30833            None
30834        }
30835    }
30836
30837    #[allow(irrefutable_let_patterns)]
30838    pub fn into_get_out_of_band_inline(self) -> Option<(BaseSocketGetOutOfBandInlineResponder)> {
30839        if let BaseSocketRequest::GetOutOfBandInline { responder } = self {
30840            Some((responder))
30841        } else {
30842            None
30843        }
30844    }
30845
30846    #[allow(irrefutable_let_patterns)]
30847    pub fn into_set_no_check(self) -> Option<(bool, BaseSocketSetNoCheckResponder)> {
30848        if let BaseSocketRequest::SetNoCheck { value, responder } = self {
30849            Some((value, responder))
30850        } else {
30851            None
30852        }
30853    }
30854
30855    #[allow(irrefutable_let_patterns)]
30856    pub fn into_get_no_check(self) -> Option<(BaseSocketGetNoCheckResponder)> {
30857        if let BaseSocketRequest::GetNoCheck { responder } = self {
30858            Some((responder))
30859        } else {
30860            None
30861        }
30862    }
30863
30864    #[allow(irrefutable_let_patterns)]
30865    pub fn into_set_linger(self) -> Option<(bool, u32, BaseSocketSetLingerResponder)> {
30866        if let BaseSocketRequest::SetLinger { linger, length_secs, responder } = self {
30867            Some((linger, length_secs, responder))
30868        } else {
30869            None
30870        }
30871    }
30872
30873    #[allow(irrefutable_let_patterns)]
30874    pub fn into_get_linger(self) -> Option<(BaseSocketGetLingerResponder)> {
30875        if let BaseSocketRequest::GetLinger { responder } = self { Some((responder)) } else { None }
30876    }
30877
30878    #[allow(irrefutable_let_patterns)]
30879    pub fn into_set_reuse_port(self) -> Option<(bool, BaseSocketSetReusePortResponder)> {
30880        if let BaseSocketRequest::SetReusePort { value, responder } = self {
30881            Some((value, responder))
30882        } else {
30883            None
30884        }
30885    }
30886
30887    #[allow(irrefutable_let_patterns)]
30888    pub fn into_get_reuse_port(self) -> Option<(BaseSocketGetReusePortResponder)> {
30889        if let BaseSocketRequest::GetReusePort { responder } = self {
30890            Some((responder))
30891        } else {
30892            None
30893        }
30894    }
30895
30896    #[allow(irrefutable_let_patterns)]
30897    pub fn into_get_accept_conn(self) -> Option<(BaseSocketGetAcceptConnResponder)> {
30898        if let BaseSocketRequest::GetAcceptConn { responder } = self {
30899            Some((responder))
30900        } else {
30901            None
30902        }
30903    }
30904
30905    #[allow(irrefutable_let_patterns)]
30906    pub fn into_set_bind_to_device(self) -> Option<(String, BaseSocketSetBindToDeviceResponder)> {
30907        if let BaseSocketRequest::SetBindToDevice { value, responder } = self {
30908            Some((value, responder))
30909        } else {
30910            None
30911        }
30912    }
30913
30914    #[allow(irrefutable_let_patterns)]
30915    pub fn into_get_bind_to_device(self) -> Option<(BaseSocketGetBindToDeviceResponder)> {
30916        if let BaseSocketRequest::GetBindToDevice { responder } = self {
30917            Some((responder))
30918        } else {
30919            None
30920        }
30921    }
30922
30923    #[allow(irrefutable_let_patterns)]
30924    pub fn into_set_bind_to_interface_index(
30925        self,
30926    ) -> Option<(u64, BaseSocketSetBindToInterfaceIndexResponder)> {
30927        if let BaseSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
30928            Some((value, responder))
30929        } else {
30930            None
30931        }
30932    }
30933
30934    #[allow(irrefutable_let_patterns)]
30935    pub fn into_get_bind_to_interface_index(
30936        self,
30937    ) -> Option<(BaseSocketGetBindToInterfaceIndexResponder)> {
30938        if let BaseSocketRequest::GetBindToInterfaceIndex { responder } = self {
30939            Some((responder))
30940        } else {
30941            None
30942        }
30943    }
30944
30945    #[allow(irrefutable_let_patterns)]
30946    pub fn into_set_timestamp(self) -> Option<(TimestampOption, BaseSocketSetTimestampResponder)> {
30947        if let BaseSocketRequest::SetTimestamp { value, responder } = self {
30948            Some((value, responder))
30949        } else {
30950            None
30951        }
30952    }
30953
30954    #[allow(irrefutable_let_patterns)]
30955    pub fn into_get_timestamp(self) -> Option<(BaseSocketGetTimestampResponder)> {
30956        if let BaseSocketRequest::GetTimestamp { responder } = self {
30957            Some((responder))
30958        } else {
30959            None
30960        }
30961    }
30962
30963    #[allow(irrefutable_let_patterns)]
30964    pub fn into_set_mark(
30965        self,
30966    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, BaseSocketSetMarkResponder)> {
30967        if let BaseSocketRequest::SetMark { domain, mark, responder } = self {
30968            Some((domain, mark, responder))
30969        } else {
30970            None
30971        }
30972    }
30973
30974    #[allow(irrefutable_let_patterns)]
30975    pub fn into_get_mark(
30976        self,
30977    ) -> Option<(fidl_fuchsia_net::MarkDomain, BaseSocketGetMarkResponder)> {
30978        if let BaseSocketRequest::GetMark { domain, responder } = self {
30979            Some((domain, responder))
30980        } else {
30981            None
30982        }
30983    }
30984
30985    #[allow(irrefutable_let_patterns)]
30986    pub fn into_get_cookie(self) -> Option<(BaseSocketGetCookieResponder)> {
30987        if let BaseSocketRequest::GetCookie { responder } = self { Some((responder)) } else { None }
30988    }
30989
30990    /// Name of the method defined in FIDL
30991    pub fn method_name(&self) -> &'static str {
30992        match *self {
30993            BaseSocketRequest::Clone { .. } => "clone",
30994            BaseSocketRequest::Close { .. } => "close",
30995            BaseSocketRequest::Query { .. } => "query",
30996            BaseSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
30997            BaseSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
30998            BaseSocketRequest::GetError { .. } => "get_error",
30999            BaseSocketRequest::SetBroadcast { .. } => "set_broadcast",
31000            BaseSocketRequest::GetBroadcast { .. } => "get_broadcast",
31001            BaseSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
31002            BaseSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
31003            BaseSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
31004            BaseSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
31005            BaseSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
31006            BaseSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
31007            BaseSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
31008            BaseSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
31009            BaseSocketRequest::SetNoCheck { .. } => "set_no_check",
31010            BaseSocketRequest::GetNoCheck { .. } => "get_no_check",
31011            BaseSocketRequest::SetLinger { .. } => "set_linger",
31012            BaseSocketRequest::GetLinger { .. } => "get_linger",
31013            BaseSocketRequest::SetReusePort { .. } => "set_reuse_port",
31014            BaseSocketRequest::GetReusePort { .. } => "get_reuse_port",
31015            BaseSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
31016            BaseSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
31017            BaseSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
31018            BaseSocketRequest::SetBindToInterfaceIndex { .. } => "set_bind_to_interface_index",
31019            BaseSocketRequest::GetBindToInterfaceIndex { .. } => "get_bind_to_interface_index",
31020            BaseSocketRequest::SetTimestamp { .. } => "set_timestamp",
31021            BaseSocketRequest::GetTimestamp { .. } => "get_timestamp",
31022            BaseSocketRequest::SetMark { .. } => "set_mark",
31023            BaseSocketRequest::GetMark { .. } => "get_mark",
31024            BaseSocketRequest::GetCookie { .. } => "get_cookie",
31025        }
31026    }
31027}
31028
31029#[derive(Debug, Clone)]
31030pub struct BaseSocketControlHandle {
31031    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
31032}
31033
31034impl fidl::endpoints::ControlHandle for BaseSocketControlHandle {
31035    fn shutdown(&self) {
31036        self.inner.shutdown()
31037    }
31038    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
31039        self.inner.shutdown_with_epitaph(status)
31040    }
31041
31042    fn is_closed(&self) -> bool {
31043        self.inner.channel().is_closed()
31044    }
31045    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
31046        self.inner.channel().on_closed()
31047    }
31048
31049    #[cfg(target_os = "fuchsia")]
31050    fn signal_peer(
31051        &self,
31052        clear_mask: zx::Signals,
31053        set_mask: zx::Signals,
31054    ) -> Result<(), zx_status::Status> {
31055        use fidl::Peered;
31056        self.inner.channel().signal_peer(clear_mask, set_mask)
31057    }
31058}
31059
31060impl BaseSocketControlHandle {}
31061
31062#[must_use = "FIDL methods require a response to be sent"]
31063#[derive(Debug)]
31064pub struct BaseSocketCloseResponder {
31065    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31066    tx_id: u32,
31067}
31068
31069/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31070/// if the responder is dropped without sending a response, so that the client
31071/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31072impl std::ops::Drop for BaseSocketCloseResponder {
31073    fn drop(&mut self) {
31074        self.control_handle.shutdown();
31075        // Safety: drops once, never accessed again
31076        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31077    }
31078}
31079
31080impl fidl::endpoints::Responder for BaseSocketCloseResponder {
31081    type ControlHandle = BaseSocketControlHandle;
31082
31083    fn control_handle(&self) -> &BaseSocketControlHandle {
31084        &self.control_handle
31085    }
31086
31087    fn drop_without_shutdown(mut self) {
31088        // Safety: drops once, never accessed again due to mem::forget
31089        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31090        // Prevent Drop from running (which would shut down the channel)
31091        std::mem::forget(self);
31092    }
31093}
31094
31095impl BaseSocketCloseResponder {
31096    /// Sends a response to the FIDL transaction.
31097    ///
31098    /// Sets the channel to shutdown if an error occurs.
31099    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
31100        let _result = self.send_raw(result);
31101        if _result.is_err() {
31102            self.control_handle.shutdown();
31103        }
31104        self.drop_without_shutdown();
31105        _result
31106    }
31107
31108    /// Similar to "send" but does not shutdown the channel if an error occurs.
31109    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
31110        let _result = self.send_raw(result);
31111        self.drop_without_shutdown();
31112        _result
31113    }
31114
31115    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
31116        self.control_handle
31117            .inner
31118            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
31119                result,
31120                self.tx_id,
31121                0x5ac5d459ad7f657e,
31122                fidl::encoding::DynamicFlags::empty(),
31123            )
31124    }
31125}
31126
31127#[must_use = "FIDL methods require a response to be sent"]
31128#[derive(Debug)]
31129pub struct BaseSocketQueryResponder {
31130    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31131    tx_id: u32,
31132}
31133
31134/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31135/// if the responder is dropped without sending a response, so that the client
31136/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31137impl std::ops::Drop for BaseSocketQueryResponder {
31138    fn drop(&mut self) {
31139        self.control_handle.shutdown();
31140        // Safety: drops once, never accessed again
31141        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31142    }
31143}
31144
31145impl fidl::endpoints::Responder for BaseSocketQueryResponder {
31146    type ControlHandle = BaseSocketControlHandle;
31147
31148    fn control_handle(&self) -> &BaseSocketControlHandle {
31149        &self.control_handle
31150    }
31151
31152    fn drop_without_shutdown(mut self) {
31153        // Safety: drops once, never accessed again due to mem::forget
31154        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31155        // Prevent Drop from running (which would shut down the channel)
31156        std::mem::forget(self);
31157    }
31158}
31159
31160impl BaseSocketQueryResponder {
31161    /// Sends a response to the FIDL transaction.
31162    ///
31163    /// Sets the channel to shutdown if an error occurs.
31164    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
31165        let _result = self.send_raw(protocol);
31166        if _result.is_err() {
31167            self.control_handle.shutdown();
31168        }
31169        self.drop_without_shutdown();
31170        _result
31171    }
31172
31173    /// Similar to "send" but does not shutdown the channel if an error occurs.
31174    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
31175        let _result = self.send_raw(protocol);
31176        self.drop_without_shutdown();
31177        _result
31178    }
31179
31180    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
31181        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
31182            (protocol,),
31183            self.tx_id,
31184            0x2658edee9decfc06,
31185            fidl::encoding::DynamicFlags::empty(),
31186        )
31187    }
31188}
31189
31190#[must_use = "FIDL methods require a response to be sent"]
31191#[derive(Debug)]
31192pub struct BaseSocketSetReuseAddressResponder {
31193    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31194    tx_id: u32,
31195}
31196
31197/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31198/// if the responder is dropped without sending a response, so that the client
31199/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31200impl std::ops::Drop for BaseSocketSetReuseAddressResponder {
31201    fn drop(&mut self) {
31202        self.control_handle.shutdown();
31203        // Safety: drops once, never accessed again
31204        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31205    }
31206}
31207
31208impl fidl::endpoints::Responder for BaseSocketSetReuseAddressResponder {
31209    type ControlHandle = BaseSocketControlHandle;
31210
31211    fn control_handle(&self) -> &BaseSocketControlHandle {
31212        &self.control_handle
31213    }
31214
31215    fn drop_without_shutdown(mut self) {
31216        // Safety: drops once, never accessed again due to mem::forget
31217        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31218        // Prevent Drop from running (which would shut down the channel)
31219        std::mem::forget(self);
31220    }
31221}
31222
31223impl BaseSocketSetReuseAddressResponder {
31224    /// Sends a response to the FIDL transaction.
31225    ///
31226    /// Sets the channel to shutdown if an error occurs.
31227    pub fn send(
31228        self,
31229        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31230    ) -> Result<(), fidl::Error> {
31231        let _result = self.send_raw(result);
31232        if _result.is_err() {
31233            self.control_handle.shutdown();
31234        }
31235        self.drop_without_shutdown();
31236        _result
31237    }
31238
31239    /// Similar to "send" but does not shutdown the channel if an error occurs.
31240    pub fn send_no_shutdown_on_err(
31241        self,
31242        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31243    ) -> Result<(), fidl::Error> {
31244        let _result = self.send_raw(result);
31245        self.drop_without_shutdown();
31246        _result
31247    }
31248
31249    fn send_raw(
31250        &self,
31251        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31252    ) -> Result<(), fidl::Error> {
31253        self.control_handle.inner.send::<fidl::encoding::ResultType<
31254            fidl::encoding::EmptyStruct,
31255            fidl_fuchsia_posix::Errno,
31256        >>(
31257            result,
31258            self.tx_id,
31259            0x1fd74ee8b9a4a876,
31260            fidl::encoding::DynamicFlags::empty(),
31261        )
31262    }
31263}
31264
31265#[must_use = "FIDL methods require a response to be sent"]
31266#[derive(Debug)]
31267pub struct BaseSocketGetReuseAddressResponder {
31268    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31269    tx_id: u32,
31270}
31271
31272/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31273/// if the responder is dropped without sending a response, so that the client
31274/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31275impl std::ops::Drop for BaseSocketGetReuseAddressResponder {
31276    fn drop(&mut self) {
31277        self.control_handle.shutdown();
31278        // Safety: drops once, never accessed again
31279        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31280    }
31281}
31282
31283impl fidl::endpoints::Responder for BaseSocketGetReuseAddressResponder {
31284    type ControlHandle = BaseSocketControlHandle;
31285
31286    fn control_handle(&self) -> &BaseSocketControlHandle {
31287        &self.control_handle
31288    }
31289
31290    fn drop_without_shutdown(mut self) {
31291        // Safety: drops once, never accessed again due to mem::forget
31292        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31293        // Prevent Drop from running (which would shut down the channel)
31294        std::mem::forget(self);
31295    }
31296}
31297
31298impl BaseSocketGetReuseAddressResponder {
31299    /// Sends a response to the FIDL transaction.
31300    ///
31301    /// Sets the channel to shutdown if an error occurs.
31302    pub fn send(
31303        self,
31304        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31305    ) -> Result<(), fidl::Error> {
31306        let _result = self.send_raw(result);
31307        if _result.is_err() {
31308            self.control_handle.shutdown();
31309        }
31310        self.drop_without_shutdown();
31311        _result
31312    }
31313
31314    /// Similar to "send" but does not shutdown the channel if an error occurs.
31315    pub fn send_no_shutdown_on_err(
31316        self,
31317        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31318    ) -> Result<(), fidl::Error> {
31319        let _result = self.send_raw(result);
31320        self.drop_without_shutdown();
31321        _result
31322    }
31323
31324    fn send_raw(
31325        &self,
31326        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31327    ) -> Result<(), fidl::Error> {
31328        self.control_handle.inner.send::<fidl::encoding::ResultType<
31329            BaseSocketGetReuseAddressResponse,
31330            fidl_fuchsia_posix::Errno,
31331        >>(
31332            result.map(|value| (value,)),
31333            self.tx_id,
31334            0x67b7206b8d1bc0a5,
31335            fidl::encoding::DynamicFlags::empty(),
31336        )
31337    }
31338}
31339
31340#[must_use = "FIDL methods require a response to be sent"]
31341#[derive(Debug)]
31342pub struct BaseSocketGetErrorResponder {
31343    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31344    tx_id: u32,
31345}
31346
31347/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31348/// if the responder is dropped without sending a response, so that the client
31349/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31350impl std::ops::Drop for BaseSocketGetErrorResponder {
31351    fn drop(&mut self) {
31352        self.control_handle.shutdown();
31353        // Safety: drops once, never accessed again
31354        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31355    }
31356}
31357
31358impl fidl::endpoints::Responder for BaseSocketGetErrorResponder {
31359    type ControlHandle = BaseSocketControlHandle;
31360
31361    fn control_handle(&self) -> &BaseSocketControlHandle {
31362        &self.control_handle
31363    }
31364
31365    fn drop_without_shutdown(mut self) {
31366        // Safety: drops once, never accessed again due to mem::forget
31367        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31368        // Prevent Drop from running (which would shut down the channel)
31369        std::mem::forget(self);
31370    }
31371}
31372
31373impl BaseSocketGetErrorResponder {
31374    /// Sends a response to the FIDL transaction.
31375    ///
31376    /// Sets the channel to shutdown if an error occurs.
31377    pub fn send(
31378        self,
31379        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31380    ) -> Result<(), fidl::Error> {
31381        let _result = self.send_raw(result);
31382        if _result.is_err() {
31383            self.control_handle.shutdown();
31384        }
31385        self.drop_without_shutdown();
31386        _result
31387    }
31388
31389    /// Similar to "send" but does not shutdown the channel if an error occurs.
31390    pub fn send_no_shutdown_on_err(
31391        self,
31392        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31393    ) -> Result<(), fidl::Error> {
31394        let _result = self.send_raw(result);
31395        self.drop_without_shutdown();
31396        _result
31397    }
31398
31399    fn send_raw(
31400        &self,
31401        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31402    ) -> Result<(), fidl::Error> {
31403        self.control_handle.inner.send::<fidl::encoding::ResultType<
31404            fidl::encoding::EmptyStruct,
31405            fidl_fuchsia_posix::Errno,
31406        >>(
31407            result,
31408            self.tx_id,
31409            0x5aad39b33e5f6ebb,
31410            fidl::encoding::DynamicFlags::empty(),
31411        )
31412    }
31413}
31414
31415#[must_use = "FIDL methods require a response to be sent"]
31416#[derive(Debug)]
31417pub struct BaseSocketSetBroadcastResponder {
31418    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31419    tx_id: u32,
31420}
31421
31422/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31423/// if the responder is dropped without sending a response, so that the client
31424/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31425impl std::ops::Drop for BaseSocketSetBroadcastResponder {
31426    fn drop(&mut self) {
31427        self.control_handle.shutdown();
31428        // Safety: drops once, never accessed again
31429        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31430    }
31431}
31432
31433impl fidl::endpoints::Responder for BaseSocketSetBroadcastResponder {
31434    type ControlHandle = BaseSocketControlHandle;
31435
31436    fn control_handle(&self) -> &BaseSocketControlHandle {
31437        &self.control_handle
31438    }
31439
31440    fn drop_without_shutdown(mut self) {
31441        // Safety: drops once, never accessed again due to mem::forget
31442        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31443        // Prevent Drop from running (which would shut down the channel)
31444        std::mem::forget(self);
31445    }
31446}
31447
31448impl BaseSocketSetBroadcastResponder {
31449    /// Sends a response to the FIDL transaction.
31450    ///
31451    /// Sets the channel to shutdown if an error occurs.
31452    pub fn send(
31453        self,
31454        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31455    ) -> Result<(), fidl::Error> {
31456        let _result = self.send_raw(result);
31457        if _result.is_err() {
31458            self.control_handle.shutdown();
31459        }
31460        self.drop_without_shutdown();
31461        _result
31462    }
31463
31464    /// Similar to "send" but does not shutdown the channel if an error occurs.
31465    pub fn send_no_shutdown_on_err(
31466        self,
31467        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31468    ) -> Result<(), fidl::Error> {
31469        let _result = self.send_raw(result);
31470        self.drop_without_shutdown();
31471        _result
31472    }
31473
31474    fn send_raw(
31475        &self,
31476        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31477    ) -> Result<(), fidl::Error> {
31478        self.control_handle.inner.send::<fidl::encoding::ResultType<
31479            fidl::encoding::EmptyStruct,
31480            fidl_fuchsia_posix::Errno,
31481        >>(
31482            result,
31483            self.tx_id,
31484            0x6023e081ce3cd947,
31485            fidl::encoding::DynamicFlags::empty(),
31486        )
31487    }
31488}
31489
31490#[must_use = "FIDL methods require a response to be sent"]
31491#[derive(Debug)]
31492pub struct BaseSocketGetBroadcastResponder {
31493    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31494    tx_id: u32,
31495}
31496
31497/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31498/// if the responder is dropped without sending a response, so that the client
31499/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31500impl std::ops::Drop for BaseSocketGetBroadcastResponder {
31501    fn drop(&mut self) {
31502        self.control_handle.shutdown();
31503        // Safety: drops once, never accessed again
31504        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31505    }
31506}
31507
31508impl fidl::endpoints::Responder for BaseSocketGetBroadcastResponder {
31509    type ControlHandle = BaseSocketControlHandle;
31510
31511    fn control_handle(&self) -> &BaseSocketControlHandle {
31512        &self.control_handle
31513    }
31514
31515    fn drop_without_shutdown(mut self) {
31516        // Safety: drops once, never accessed again due to mem::forget
31517        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31518        // Prevent Drop from running (which would shut down the channel)
31519        std::mem::forget(self);
31520    }
31521}
31522
31523impl BaseSocketGetBroadcastResponder {
31524    /// Sends a response to the FIDL transaction.
31525    ///
31526    /// Sets the channel to shutdown if an error occurs.
31527    pub fn send(
31528        self,
31529        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31530    ) -> Result<(), fidl::Error> {
31531        let _result = self.send_raw(result);
31532        if _result.is_err() {
31533            self.control_handle.shutdown();
31534        }
31535        self.drop_without_shutdown();
31536        _result
31537    }
31538
31539    /// Similar to "send" but does not shutdown the channel if an error occurs.
31540    pub fn send_no_shutdown_on_err(
31541        self,
31542        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31543    ) -> Result<(), fidl::Error> {
31544        let _result = self.send_raw(result);
31545        self.drop_without_shutdown();
31546        _result
31547    }
31548
31549    fn send_raw(
31550        &self,
31551        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31552    ) -> Result<(), fidl::Error> {
31553        self.control_handle.inner.send::<fidl::encoding::ResultType<
31554            BaseSocketGetBroadcastResponse,
31555            fidl_fuchsia_posix::Errno,
31556        >>(
31557            result.map(|value| (value,)),
31558            self.tx_id,
31559            0x68796fc556f9780d,
31560            fidl::encoding::DynamicFlags::empty(),
31561        )
31562    }
31563}
31564
31565#[must_use = "FIDL methods require a response to be sent"]
31566#[derive(Debug)]
31567pub struct BaseSocketSetSendBufferResponder {
31568    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31569    tx_id: u32,
31570}
31571
31572/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31573/// if the responder is dropped without sending a response, so that the client
31574/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31575impl std::ops::Drop for BaseSocketSetSendBufferResponder {
31576    fn drop(&mut self) {
31577        self.control_handle.shutdown();
31578        // Safety: drops once, never accessed again
31579        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31580    }
31581}
31582
31583impl fidl::endpoints::Responder for BaseSocketSetSendBufferResponder {
31584    type ControlHandle = BaseSocketControlHandle;
31585
31586    fn control_handle(&self) -> &BaseSocketControlHandle {
31587        &self.control_handle
31588    }
31589
31590    fn drop_without_shutdown(mut self) {
31591        // Safety: drops once, never accessed again due to mem::forget
31592        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31593        // Prevent Drop from running (which would shut down the channel)
31594        std::mem::forget(self);
31595    }
31596}
31597
31598impl BaseSocketSetSendBufferResponder {
31599    /// Sends a response to the FIDL transaction.
31600    ///
31601    /// Sets the channel to shutdown if an error occurs.
31602    pub fn send(
31603        self,
31604        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31605    ) -> Result<(), fidl::Error> {
31606        let _result = self.send_raw(result);
31607        if _result.is_err() {
31608            self.control_handle.shutdown();
31609        }
31610        self.drop_without_shutdown();
31611        _result
31612    }
31613
31614    /// Similar to "send" but does not shutdown the channel if an error occurs.
31615    pub fn send_no_shutdown_on_err(
31616        self,
31617        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31618    ) -> Result<(), fidl::Error> {
31619        let _result = self.send_raw(result);
31620        self.drop_without_shutdown();
31621        _result
31622    }
31623
31624    fn send_raw(
31625        &self,
31626        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31627    ) -> Result<(), fidl::Error> {
31628        self.control_handle.inner.send::<fidl::encoding::ResultType<
31629            fidl::encoding::EmptyStruct,
31630            fidl_fuchsia_posix::Errno,
31631        >>(
31632            result,
31633            self.tx_id,
31634            0x756eac32d73a7a70,
31635            fidl::encoding::DynamicFlags::empty(),
31636        )
31637    }
31638}
31639
31640#[must_use = "FIDL methods require a response to be sent"]
31641#[derive(Debug)]
31642pub struct BaseSocketGetSendBufferResponder {
31643    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31644    tx_id: u32,
31645}
31646
31647/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31648/// if the responder is dropped without sending a response, so that the client
31649/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31650impl std::ops::Drop for BaseSocketGetSendBufferResponder {
31651    fn drop(&mut self) {
31652        self.control_handle.shutdown();
31653        // Safety: drops once, never accessed again
31654        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31655    }
31656}
31657
31658impl fidl::endpoints::Responder for BaseSocketGetSendBufferResponder {
31659    type ControlHandle = BaseSocketControlHandle;
31660
31661    fn control_handle(&self) -> &BaseSocketControlHandle {
31662        &self.control_handle
31663    }
31664
31665    fn drop_without_shutdown(mut self) {
31666        // Safety: drops once, never accessed again due to mem::forget
31667        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31668        // Prevent Drop from running (which would shut down the channel)
31669        std::mem::forget(self);
31670    }
31671}
31672
31673impl BaseSocketGetSendBufferResponder {
31674    /// Sends a response to the FIDL transaction.
31675    ///
31676    /// Sets the channel to shutdown if an error occurs.
31677    pub fn send(
31678        self,
31679        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31680    ) -> Result<(), fidl::Error> {
31681        let _result = self.send_raw(result);
31682        if _result.is_err() {
31683            self.control_handle.shutdown();
31684        }
31685        self.drop_without_shutdown();
31686        _result
31687    }
31688
31689    /// Similar to "send" but does not shutdown the channel if an error occurs.
31690    pub fn send_no_shutdown_on_err(
31691        self,
31692        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31693    ) -> Result<(), fidl::Error> {
31694        let _result = self.send_raw(result);
31695        self.drop_without_shutdown();
31696        _result
31697    }
31698
31699    fn send_raw(
31700        &self,
31701        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31702    ) -> Result<(), fidl::Error> {
31703        self.control_handle.inner.send::<fidl::encoding::ResultType<
31704            BaseSocketGetSendBufferResponse,
31705            fidl_fuchsia_posix::Errno,
31706        >>(
31707            result.map(|value_bytes| (value_bytes,)),
31708            self.tx_id,
31709            0x78a52fd9c7b2410b,
31710            fidl::encoding::DynamicFlags::empty(),
31711        )
31712    }
31713}
31714
31715#[must_use = "FIDL methods require a response to be sent"]
31716#[derive(Debug)]
31717pub struct BaseSocketSetReceiveBufferResponder {
31718    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31719    tx_id: u32,
31720}
31721
31722/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31723/// if the responder is dropped without sending a response, so that the client
31724/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31725impl std::ops::Drop for BaseSocketSetReceiveBufferResponder {
31726    fn drop(&mut self) {
31727        self.control_handle.shutdown();
31728        // Safety: drops once, never accessed again
31729        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31730    }
31731}
31732
31733impl fidl::endpoints::Responder for BaseSocketSetReceiveBufferResponder {
31734    type ControlHandle = BaseSocketControlHandle;
31735
31736    fn control_handle(&self) -> &BaseSocketControlHandle {
31737        &self.control_handle
31738    }
31739
31740    fn drop_without_shutdown(mut self) {
31741        // Safety: drops once, never accessed again due to mem::forget
31742        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31743        // Prevent Drop from running (which would shut down the channel)
31744        std::mem::forget(self);
31745    }
31746}
31747
31748impl BaseSocketSetReceiveBufferResponder {
31749    /// Sends a response to the FIDL transaction.
31750    ///
31751    /// Sets the channel to shutdown if an error occurs.
31752    pub fn send(
31753        self,
31754        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31755    ) -> Result<(), fidl::Error> {
31756        let _result = self.send_raw(result);
31757        if _result.is_err() {
31758            self.control_handle.shutdown();
31759        }
31760        self.drop_without_shutdown();
31761        _result
31762    }
31763
31764    /// Similar to "send" but does not shutdown the channel if an error occurs.
31765    pub fn send_no_shutdown_on_err(
31766        self,
31767        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31768    ) -> Result<(), fidl::Error> {
31769        let _result = self.send_raw(result);
31770        self.drop_without_shutdown();
31771        _result
31772    }
31773
31774    fn send_raw(
31775        &self,
31776        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31777    ) -> Result<(), fidl::Error> {
31778        self.control_handle.inner.send::<fidl::encoding::ResultType<
31779            fidl::encoding::EmptyStruct,
31780            fidl_fuchsia_posix::Errno,
31781        >>(
31782            result,
31783            self.tx_id,
31784            0x6b0cf2f1919c7001,
31785            fidl::encoding::DynamicFlags::empty(),
31786        )
31787    }
31788}
31789
31790#[must_use = "FIDL methods require a response to be sent"]
31791#[derive(Debug)]
31792pub struct BaseSocketGetReceiveBufferResponder {
31793    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31794    tx_id: u32,
31795}
31796
31797/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31798/// if the responder is dropped without sending a response, so that the client
31799/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31800impl std::ops::Drop for BaseSocketGetReceiveBufferResponder {
31801    fn drop(&mut self) {
31802        self.control_handle.shutdown();
31803        // Safety: drops once, never accessed again
31804        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31805    }
31806}
31807
31808impl fidl::endpoints::Responder for BaseSocketGetReceiveBufferResponder {
31809    type ControlHandle = BaseSocketControlHandle;
31810
31811    fn control_handle(&self) -> &BaseSocketControlHandle {
31812        &self.control_handle
31813    }
31814
31815    fn drop_without_shutdown(mut self) {
31816        // Safety: drops once, never accessed again due to mem::forget
31817        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31818        // Prevent Drop from running (which would shut down the channel)
31819        std::mem::forget(self);
31820    }
31821}
31822
31823impl BaseSocketGetReceiveBufferResponder {
31824    /// Sends a response to the FIDL transaction.
31825    ///
31826    /// Sets the channel to shutdown if an error occurs.
31827    pub fn send(
31828        self,
31829        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31830    ) -> Result<(), fidl::Error> {
31831        let _result = self.send_raw(result);
31832        if _result.is_err() {
31833            self.control_handle.shutdown();
31834        }
31835        self.drop_without_shutdown();
31836        _result
31837    }
31838
31839    /// Similar to "send" but does not shutdown the channel if an error occurs.
31840    pub fn send_no_shutdown_on_err(
31841        self,
31842        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31843    ) -> Result<(), fidl::Error> {
31844        let _result = self.send_raw(result);
31845        self.drop_without_shutdown();
31846        _result
31847    }
31848
31849    fn send_raw(
31850        &self,
31851        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
31852    ) -> Result<(), fidl::Error> {
31853        self.control_handle.inner.send::<fidl::encoding::ResultType<
31854            BaseSocketGetReceiveBufferResponse,
31855            fidl_fuchsia_posix::Errno,
31856        >>(
31857            result.map(|value_bytes| (value_bytes,)),
31858            self.tx_id,
31859            0x14c1a4b64f709e5c,
31860            fidl::encoding::DynamicFlags::empty(),
31861        )
31862    }
31863}
31864
31865#[must_use = "FIDL methods require a response to be sent"]
31866#[derive(Debug)]
31867pub struct BaseSocketSetKeepAliveResponder {
31868    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31869    tx_id: u32,
31870}
31871
31872/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31873/// if the responder is dropped without sending a response, so that the client
31874/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31875impl std::ops::Drop for BaseSocketSetKeepAliveResponder {
31876    fn drop(&mut self) {
31877        self.control_handle.shutdown();
31878        // Safety: drops once, never accessed again
31879        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31880    }
31881}
31882
31883impl fidl::endpoints::Responder for BaseSocketSetKeepAliveResponder {
31884    type ControlHandle = BaseSocketControlHandle;
31885
31886    fn control_handle(&self) -> &BaseSocketControlHandle {
31887        &self.control_handle
31888    }
31889
31890    fn drop_without_shutdown(mut self) {
31891        // Safety: drops once, never accessed again due to mem::forget
31892        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31893        // Prevent Drop from running (which would shut down the channel)
31894        std::mem::forget(self);
31895    }
31896}
31897
31898impl BaseSocketSetKeepAliveResponder {
31899    /// Sends a response to the FIDL transaction.
31900    ///
31901    /// Sets the channel to shutdown if an error occurs.
31902    pub fn send(
31903        self,
31904        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31905    ) -> Result<(), fidl::Error> {
31906        let _result = self.send_raw(result);
31907        if _result.is_err() {
31908            self.control_handle.shutdown();
31909        }
31910        self.drop_without_shutdown();
31911        _result
31912    }
31913
31914    /// Similar to "send" but does not shutdown the channel if an error occurs.
31915    pub fn send_no_shutdown_on_err(
31916        self,
31917        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31918    ) -> Result<(), fidl::Error> {
31919        let _result = self.send_raw(result);
31920        self.drop_without_shutdown();
31921        _result
31922    }
31923
31924    fn send_raw(
31925        &self,
31926        mut result: Result<(), fidl_fuchsia_posix::Errno>,
31927    ) -> Result<(), fidl::Error> {
31928        self.control_handle.inner.send::<fidl::encoding::ResultType<
31929            fidl::encoding::EmptyStruct,
31930            fidl_fuchsia_posix::Errno,
31931        >>(
31932            result,
31933            self.tx_id,
31934            0x572df8f0b920d2c7,
31935            fidl::encoding::DynamicFlags::empty(),
31936        )
31937    }
31938}
31939
31940#[must_use = "FIDL methods require a response to be sent"]
31941#[derive(Debug)]
31942pub struct BaseSocketGetKeepAliveResponder {
31943    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
31944    tx_id: u32,
31945}
31946
31947/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
31948/// if the responder is dropped without sending a response, so that the client
31949/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
31950impl std::ops::Drop for BaseSocketGetKeepAliveResponder {
31951    fn drop(&mut self) {
31952        self.control_handle.shutdown();
31953        // Safety: drops once, never accessed again
31954        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31955    }
31956}
31957
31958impl fidl::endpoints::Responder for BaseSocketGetKeepAliveResponder {
31959    type ControlHandle = BaseSocketControlHandle;
31960
31961    fn control_handle(&self) -> &BaseSocketControlHandle {
31962        &self.control_handle
31963    }
31964
31965    fn drop_without_shutdown(mut self) {
31966        // Safety: drops once, never accessed again due to mem::forget
31967        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
31968        // Prevent Drop from running (which would shut down the channel)
31969        std::mem::forget(self);
31970    }
31971}
31972
31973impl BaseSocketGetKeepAliveResponder {
31974    /// Sends a response to the FIDL transaction.
31975    ///
31976    /// Sets the channel to shutdown if an error occurs.
31977    pub fn send(
31978        self,
31979        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31980    ) -> Result<(), fidl::Error> {
31981        let _result = self.send_raw(result);
31982        if _result.is_err() {
31983            self.control_handle.shutdown();
31984        }
31985        self.drop_without_shutdown();
31986        _result
31987    }
31988
31989    /// Similar to "send" but does not shutdown the channel if an error occurs.
31990    pub fn send_no_shutdown_on_err(
31991        self,
31992        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
31993    ) -> Result<(), fidl::Error> {
31994        let _result = self.send_raw(result);
31995        self.drop_without_shutdown();
31996        _result
31997    }
31998
31999    fn send_raw(
32000        &self,
32001        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32002    ) -> Result<(), fidl::Error> {
32003        self.control_handle.inner.send::<fidl::encoding::ResultType<
32004            BaseSocketGetKeepAliveResponse,
32005            fidl_fuchsia_posix::Errno,
32006        >>(
32007            result.map(|value| (value,)),
32008            self.tx_id,
32009            0x2dd29d3215f2c9d2,
32010            fidl::encoding::DynamicFlags::empty(),
32011        )
32012    }
32013}
32014
32015#[must_use = "FIDL methods require a response to be sent"]
32016#[derive(Debug)]
32017pub struct BaseSocketSetOutOfBandInlineResponder {
32018    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32019    tx_id: u32,
32020}
32021
32022/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32023/// if the responder is dropped without sending a response, so that the client
32024/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32025impl std::ops::Drop for BaseSocketSetOutOfBandInlineResponder {
32026    fn drop(&mut self) {
32027        self.control_handle.shutdown();
32028        // Safety: drops once, never accessed again
32029        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32030    }
32031}
32032
32033impl fidl::endpoints::Responder for BaseSocketSetOutOfBandInlineResponder {
32034    type ControlHandle = BaseSocketControlHandle;
32035
32036    fn control_handle(&self) -> &BaseSocketControlHandle {
32037        &self.control_handle
32038    }
32039
32040    fn drop_without_shutdown(mut self) {
32041        // Safety: drops once, never accessed again due to mem::forget
32042        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32043        // Prevent Drop from running (which would shut down the channel)
32044        std::mem::forget(self);
32045    }
32046}
32047
32048impl BaseSocketSetOutOfBandInlineResponder {
32049    /// Sends a response to the FIDL transaction.
32050    ///
32051    /// Sets the channel to shutdown if an error occurs.
32052    pub fn send(
32053        self,
32054        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32055    ) -> Result<(), fidl::Error> {
32056        let _result = self.send_raw(result);
32057        if _result.is_err() {
32058            self.control_handle.shutdown();
32059        }
32060        self.drop_without_shutdown();
32061        _result
32062    }
32063
32064    /// Similar to "send" but does not shutdown the channel if an error occurs.
32065    pub fn send_no_shutdown_on_err(
32066        self,
32067        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32068    ) -> Result<(), fidl::Error> {
32069        let _result = self.send_raw(result);
32070        self.drop_without_shutdown();
32071        _result
32072    }
32073
32074    fn send_raw(
32075        &self,
32076        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32077    ) -> Result<(), fidl::Error> {
32078        self.control_handle.inner.send::<fidl::encoding::ResultType<
32079            fidl::encoding::EmptyStruct,
32080            fidl_fuchsia_posix::Errno,
32081        >>(
32082            result,
32083            self.tx_id,
32084            0x3ecb49968bee439,
32085            fidl::encoding::DynamicFlags::empty(),
32086        )
32087    }
32088}
32089
32090#[must_use = "FIDL methods require a response to be sent"]
32091#[derive(Debug)]
32092pub struct BaseSocketGetOutOfBandInlineResponder {
32093    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32094    tx_id: u32,
32095}
32096
32097/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32098/// if the responder is dropped without sending a response, so that the client
32099/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32100impl std::ops::Drop for BaseSocketGetOutOfBandInlineResponder {
32101    fn drop(&mut self) {
32102        self.control_handle.shutdown();
32103        // Safety: drops once, never accessed again
32104        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32105    }
32106}
32107
32108impl fidl::endpoints::Responder for BaseSocketGetOutOfBandInlineResponder {
32109    type ControlHandle = BaseSocketControlHandle;
32110
32111    fn control_handle(&self) -> &BaseSocketControlHandle {
32112        &self.control_handle
32113    }
32114
32115    fn drop_without_shutdown(mut self) {
32116        // Safety: drops once, never accessed again due to mem::forget
32117        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32118        // Prevent Drop from running (which would shut down the channel)
32119        std::mem::forget(self);
32120    }
32121}
32122
32123impl BaseSocketGetOutOfBandInlineResponder {
32124    /// Sends a response to the FIDL transaction.
32125    ///
32126    /// Sets the channel to shutdown if an error occurs.
32127    pub fn send(
32128        self,
32129        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32130    ) -> Result<(), fidl::Error> {
32131        let _result = self.send_raw(result);
32132        if _result.is_err() {
32133            self.control_handle.shutdown();
32134        }
32135        self.drop_without_shutdown();
32136        _result
32137    }
32138
32139    /// Similar to "send" but does not shutdown the channel if an error occurs.
32140    pub fn send_no_shutdown_on_err(
32141        self,
32142        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32143    ) -> Result<(), fidl::Error> {
32144        let _result = self.send_raw(result);
32145        self.drop_without_shutdown();
32146        _result
32147    }
32148
32149    fn send_raw(
32150        &self,
32151        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32152    ) -> Result<(), fidl::Error> {
32153        self.control_handle.inner.send::<fidl::encoding::ResultType<
32154            BaseSocketGetOutOfBandInlineResponse,
32155            fidl_fuchsia_posix::Errno,
32156        >>(
32157            result.map(|value| (value,)),
32158            self.tx_id,
32159            0x348c1ab3aeca1745,
32160            fidl::encoding::DynamicFlags::empty(),
32161        )
32162    }
32163}
32164
32165#[must_use = "FIDL methods require a response to be sent"]
32166#[derive(Debug)]
32167pub struct BaseSocketSetNoCheckResponder {
32168    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32169    tx_id: u32,
32170}
32171
32172/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32173/// if the responder is dropped without sending a response, so that the client
32174/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32175impl std::ops::Drop for BaseSocketSetNoCheckResponder {
32176    fn drop(&mut self) {
32177        self.control_handle.shutdown();
32178        // Safety: drops once, never accessed again
32179        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32180    }
32181}
32182
32183impl fidl::endpoints::Responder for BaseSocketSetNoCheckResponder {
32184    type ControlHandle = BaseSocketControlHandle;
32185
32186    fn control_handle(&self) -> &BaseSocketControlHandle {
32187        &self.control_handle
32188    }
32189
32190    fn drop_without_shutdown(mut self) {
32191        // Safety: drops once, never accessed again due to mem::forget
32192        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32193        // Prevent Drop from running (which would shut down the channel)
32194        std::mem::forget(self);
32195    }
32196}
32197
32198impl BaseSocketSetNoCheckResponder {
32199    /// Sends a response to the FIDL transaction.
32200    ///
32201    /// Sets the channel to shutdown if an error occurs.
32202    pub fn send(
32203        self,
32204        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32205    ) -> Result<(), fidl::Error> {
32206        let _result = self.send_raw(result);
32207        if _result.is_err() {
32208            self.control_handle.shutdown();
32209        }
32210        self.drop_without_shutdown();
32211        _result
32212    }
32213
32214    /// Similar to "send" but does not shutdown the channel if an error occurs.
32215    pub fn send_no_shutdown_on_err(
32216        self,
32217        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32218    ) -> Result<(), fidl::Error> {
32219        let _result = self.send_raw(result);
32220        self.drop_without_shutdown();
32221        _result
32222    }
32223
32224    fn send_raw(
32225        &self,
32226        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32227    ) -> Result<(), fidl::Error> {
32228        self.control_handle.inner.send::<fidl::encoding::ResultType<
32229            fidl::encoding::EmptyStruct,
32230            fidl_fuchsia_posix::Errno,
32231        >>(
32232            result,
32233            self.tx_id,
32234            0x6bbf00c53a4c78c2,
32235            fidl::encoding::DynamicFlags::empty(),
32236        )
32237    }
32238}
32239
32240#[must_use = "FIDL methods require a response to be sent"]
32241#[derive(Debug)]
32242pub struct BaseSocketGetNoCheckResponder {
32243    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32244    tx_id: u32,
32245}
32246
32247/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32248/// if the responder is dropped without sending a response, so that the client
32249/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32250impl std::ops::Drop for BaseSocketGetNoCheckResponder {
32251    fn drop(&mut self) {
32252        self.control_handle.shutdown();
32253        // Safety: drops once, never accessed again
32254        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32255    }
32256}
32257
32258impl fidl::endpoints::Responder for BaseSocketGetNoCheckResponder {
32259    type ControlHandle = BaseSocketControlHandle;
32260
32261    fn control_handle(&self) -> &BaseSocketControlHandle {
32262        &self.control_handle
32263    }
32264
32265    fn drop_without_shutdown(mut self) {
32266        // Safety: drops once, never accessed again due to mem::forget
32267        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32268        // Prevent Drop from running (which would shut down the channel)
32269        std::mem::forget(self);
32270    }
32271}
32272
32273impl BaseSocketGetNoCheckResponder {
32274    /// Sends a response to the FIDL transaction.
32275    ///
32276    /// Sets the channel to shutdown if an error occurs.
32277    pub fn send(
32278        self,
32279        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32280    ) -> Result<(), fidl::Error> {
32281        let _result = self.send_raw(result);
32282        if _result.is_err() {
32283            self.control_handle.shutdown();
32284        }
32285        self.drop_without_shutdown();
32286        _result
32287    }
32288
32289    /// Similar to "send" but does not shutdown the channel if an error occurs.
32290    pub fn send_no_shutdown_on_err(
32291        self,
32292        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32293    ) -> Result<(), fidl::Error> {
32294        let _result = self.send_raw(result);
32295        self.drop_without_shutdown();
32296        _result
32297    }
32298
32299    fn send_raw(
32300        &self,
32301        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32302    ) -> Result<(), fidl::Error> {
32303        self.control_handle.inner.send::<fidl::encoding::ResultType<
32304            BaseSocketGetNoCheckResponse,
32305            fidl_fuchsia_posix::Errno,
32306        >>(
32307            result.map(|value| (value,)),
32308            self.tx_id,
32309            0x2cd4249286417694,
32310            fidl::encoding::DynamicFlags::empty(),
32311        )
32312    }
32313}
32314
32315#[must_use = "FIDL methods require a response to be sent"]
32316#[derive(Debug)]
32317pub struct BaseSocketSetLingerResponder {
32318    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32319    tx_id: u32,
32320}
32321
32322/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32323/// if the responder is dropped without sending a response, so that the client
32324/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32325impl std::ops::Drop for BaseSocketSetLingerResponder {
32326    fn drop(&mut self) {
32327        self.control_handle.shutdown();
32328        // Safety: drops once, never accessed again
32329        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32330    }
32331}
32332
32333impl fidl::endpoints::Responder for BaseSocketSetLingerResponder {
32334    type ControlHandle = BaseSocketControlHandle;
32335
32336    fn control_handle(&self) -> &BaseSocketControlHandle {
32337        &self.control_handle
32338    }
32339
32340    fn drop_without_shutdown(mut self) {
32341        // Safety: drops once, never accessed again due to mem::forget
32342        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32343        // Prevent Drop from running (which would shut down the channel)
32344        std::mem::forget(self);
32345    }
32346}
32347
32348impl BaseSocketSetLingerResponder {
32349    /// Sends a response to the FIDL transaction.
32350    ///
32351    /// Sets the channel to shutdown if an error occurs.
32352    pub fn send(
32353        self,
32354        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32355    ) -> Result<(), fidl::Error> {
32356        let _result = self.send_raw(result);
32357        if _result.is_err() {
32358            self.control_handle.shutdown();
32359        }
32360        self.drop_without_shutdown();
32361        _result
32362    }
32363
32364    /// Similar to "send" but does not shutdown the channel if an error occurs.
32365    pub fn send_no_shutdown_on_err(
32366        self,
32367        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32368    ) -> Result<(), fidl::Error> {
32369        let _result = self.send_raw(result);
32370        self.drop_without_shutdown();
32371        _result
32372    }
32373
32374    fn send_raw(
32375        &self,
32376        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32377    ) -> Result<(), fidl::Error> {
32378        self.control_handle.inner.send::<fidl::encoding::ResultType<
32379            fidl::encoding::EmptyStruct,
32380            fidl_fuchsia_posix::Errno,
32381        >>(
32382            result,
32383            self.tx_id,
32384            0x45386351246e998e,
32385            fidl::encoding::DynamicFlags::empty(),
32386        )
32387    }
32388}
32389
32390#[must_use = "FIDL methods require a response to be sent"]
32391#[derive(Debug)]
32392pub struct BaseSocketGetLingerResponder {
32393    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32394    tx_id: u32,
32395}
32396
32397/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32398/// if the responder is dropped without sending a response, so that the client
32399/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32400impl std::ops::Drop for BaseSocketGetLingerResponder {
32401    fn drop(&mut self) {
32402        self.control_handle.shutdown();
32403        // Safety: drops once, never accessed again
32404        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32405    }
32406}
32407
32408impl fidl::endpoints::Responder for BaseSocketGetLingerResponder {
32409    type ControlHandle = BaseSocketControlHandle;
32410
32411    fn control_handle(&self) -> &BaseSocketControlHandle {
32412        &self.control_handle
32413    }
32414
32415    fn drop_without_shutdown(mut self) {
32416        // Safety: drops once, never accessed again due to mem::forget
32417        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32418        // Prevent Drop from running (which would shut down the channel)
32419        std::mem::forget(self);
32420    }
32421}
32422
32423impl BaseSocketGetLingerResponder {
32424    /// Sends a response to the FIDL transaction.
32425    ///
32426    /// Sets the channel to shutdown if an error occurs.
32427    pub fn send(
32428        self,
32429        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
32430    ) -> Result<(), fidl::Error> {
32431        let _result = self.send_raw(result);
32432        if _result.is_err() {
32433            self.control_handle.shutdown();
32434        }
32435        self.drop_without_shutdown();
32436        _result
32437    }
32438
32439    /// Similar to "send" but does not shutdown the channel if an error occurs.
32440    pub fn send_no_shutdown_on_err(
32441        self,
32442        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
32443    ) -> Result<(), fidl::Error> {
32444        let _result = self.send_raw(result);
32445        self.drop_without_shutdown();
32446        _result
32447    }
32448
32449    fn send_raw(
32450        &self,
32451        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
32452    ) -> Result<(), fidl::Error> {
32453        self.control_handle.inner.send::<fidl::encoding::ResultType<
32454            BaseSocketGetLingerResponse,
32455            fidl_fuchsia_posix::Errno,
32456        >>(
32457            result,
32458            self.tx_id,
32459            0x48eb20fc5ccb0e45,
32460            fidl::encoding::DynamicFlags::empty(),
32461        )
32462    }
32463}
32464
32465#[must_use = "FIDL methods require a response to be sent"]
32466#[derive(Debug)]
32467pub struct BaseSocketSetReusePortResponder {
32468    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32469    tx_id: u32,
32470}
32471
32472/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32473/// if the responder is dropped without sending a response, so that the client
32474/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32475impl std::ops::Drop for BaseSocketSetReusePortResponder {
32476    fn drop(&mut self) {
32477        self.control_handle.shutdown();
32478        // Safety: drops once, never accessed again
32479        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32480    }
32481}
32482
32483impl fidl::endpoints::Responder for BaseSocketSetReusePortResponder {
32484    type ControlHandle = BaseSocketControlHandle;
32485
32486    fn control_handle(&self) -> &BaseSocketControlHandle {
32487        &self.control_handle
32488    }
32489
32490    fn drop_without_shutdown(mut self) {
32491        // Safety: drops once, never accessed again due to mem::forget
32492        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32493        // Prevent Drop from running (which would shut down the channel)
32494        std::mem::forget(self);
32495    }
32496}
32497
32498impl BaseSocketSetReusePortResponder {
32499    /// Sends a response to the FIDL transaction.
32500    ///
32501    /// Sets the channel to shutdown if an error occurs.
32502    pub fn send(
32503        self,
32504        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32505    ) -> Result<(), fidl::Error> {
32506        let _result = self.send_raw(result);
32507        if _result.is_err() {
32508            self.control_handle.shutdown();
32509        }
32510        self.drop_without_shutdown();
32511        _result
32512    }
32513
32514    /// Similar to "send" but does not shutdown the channel if an error occurs.
32515    pub fn send_no_shutdown_on_err(
32516        self,
32517        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32518    ) -> Result<(), fidl::Error> {
32519        let _result = self.send_raw(result);
32520        self.drop_without_shutdown();
32521        _result
32522    }
32523
32524    fn send_raw(
32525        &self,
32526        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32527    ) -> Result<(), fidl::Error> {
32528        self.control_handle.inner.send::<fidl::encoding::ResultType<
32529            fidl::encoding::EmptyStruct,
32530            fidl_fuchsia_posix::Errno,
32531        >>(
32532            result,
32533            self.tx_id,
32534            0x24dd3e5cb36d9ccb,
32535            fidl::encoding::DynamicFlags::empty(),
32536        )
32537    }
32538}
32539
32540#[must_use = "FIDL methods require a response to be sent"]
32541#[derive(Debug)]
32542pub struct BaseSocketGetReusePortResponder {
32543    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32544    tx_id: u32,
32545}
32546
32547/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32548/// if the responder is dropped without sending a response, so that the client
32549/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32550impl std::ops::Drop for BaseSocketGetReusePortResponder {
32551    fn drop(&mut self) {
32552        self.control_handle.shutdown();
32553        // Safety: drops once, never accessed again
32554        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32555    }
32556}
32557
32558impl fidl::endpoints::Responder for BaseSocketGetReusePortResponder {
32559    type ControlHandle = BaseSocketControlHandle;
32560
32561    fn control_handle(&self) -> &BaseSocketControlHandle {
32562        &self.control_handle
32563    }
32564
32565    fn drop_without_shutdown(mut self) {
32566        // Safety: drops once, never accessed again due to mem::forget
32567        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32568        // Prevent Drop from running (which would shut down the channel)
32569        std::mem::forget(self);
32570    }
32571}
32572
32573impl BaseSocketGetReusePortResponder {
32574    /// Sends a response to the FIDL transaction.
32575    ///
32576    /// Sets the channel to shutdown if an error occurs.
32577    pub fn send(
32578        self,
32579        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32580    ) -> Result<(), fidl::Error> {
32581        let _result = self.send_raw(result);
32582        if _result.is_err() {
32583            self.control_handle.shutdown();
32584        }
32585        self.drop_without_shutdown();
32586        _result
32587    }
32588
32589    /// Similar to "send" but does not shutdown the channel if an error occurs.
32590    pub fn send_no_shutdown_on_err(
32591        self,
32592        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32593    ) -> Result<(), fidl::Error> {
32594        let _result = self.send_raw(result);
32595        self.drop_without_shutdown();
32596        _result
32597    }
32598
32599    fn send_raw(
32600        &self,
32601        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32602    ) -> Result<(), fidl::Error> {
32603        self.control_handle.inner.send::<fidl::encoding::ResultType<
32604            BaseSocketGetReusePortResponse,
32605            fidl_fuchsia_posix::Errno,
32606        >>(
32607            result.map(|value| (value,)),
32608            self.tx_id,
32609            0x7a112c1ab54ff828,
32610            fidl::encoding::DynamicFlags::empty(),
32611        )
32612    }
32613}
32614
32615#[must_use = "FIDL methods require a response to be sent"]
32616#[derive(Debug)]
32617pub struct BaseSocketGetAcceptConnResponder {
32618    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32619    tx_id: u32,
32620}
32621
32622/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32623/// if the responder is dropped without sending a response, so that the client
32624/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32625impl std::ops::Drop for BaseSocketGetAcceptConnResponder {
32626    fn drop(&mut self) {
32627        self.control_handle.shutdown();
32628        // Safety: drops once, never accessed again
32629        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32630    }
32631}
32632
32633impl fidl::endpoints::Responder for BaseSocketGetAcceptConnResponder {
32634    type ControlHandle = BaseSocketControlHandle;
32635
32636    fn control_handle(&self) -> &BaseSocketControlHandle {
32637        &self.control_handle
32638    }
32639
32640    fn drop_without_shutdown(mut self) {
32641        // Safety: drops once, never accessed again due to mem::forget
32642        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32643        // Prevent Drop from running (which would shut down the channel)
32644        std::mem::forget(self);
32645    }
32646}
32647
32648impl BaseSocketGetAcceptConnResponder {
32649    /// Sends a response to the FIDL transaction.
32650    ///
32651    /// Sets the channel to shutdown if an error occurs.
32652    pub fn send(
32653        self,
32654        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32655    ) -> Result<(), fidl::Error> {
32656        let _result = self.send_raw(result);
32657        if _result.is_err() {
32658            self.control_handle.shutdown();
32659        }
32660        self.drop_without_shutdown();
32661        _result
32662    }
32663
32664    /// Similar to "send" but does not shutdown the channel if an error occurs.
32665    pub fn send_no_shutdown_on_err(
32666        self,
32667        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32668    ) -> Result<(), fidl::Error> {
32669        let _result = self.send_raw(result);
32670        self.drop_without_shutdown();
32671        _result
32672    }
32673
32674    fn send_raw(
32675        &self,
32676        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
32677    ) -> Result<(), fidl::Error> {
32678        self.control_handle.inner.send::<fidl::encoding::ResultType<
32679            BaseSocketGetAcceptConnResponse,
32680            fidl_fuchsia_posix::Errno,
32681        >>(
32682            result.map(|value| (value,)),
32683            self.tx_id,
32684            0x67ce6db6c2ec8966,
32685            fidl::encoding::DynamicFlags::empty(),
32686        )
32687    }
32688}
32689
32690#[must_use = "FIDL methods require a response to be sent"]
32691#[derive(Debug)]
32692pub struct BaseSocketSetBindToDeviceResponder {
32693    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32694    tx_id: u32,
32695}
32696
32697/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32698/// if the responder is dropped without sending a response, so that the client
32699/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32700impl std::ops::Drop for BaseSocketSetBindToDeviceResponder {
32701    fn drop(&mut self) {
32702        self.control_handle.shutdown();
32703        // Safety: drops once, never accessed again
32704        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32705    }
32706}
32707
32708impl fidl::endpoints::Responder for BaseSocketSetBindToDeviceResponder {
32709    type ControlHandle = BaseSocketControlHandle;
32710
32711    fn control_handle(&self) -> &BaseSocketControlHandle {
32712        &self.control_handle
32713    }
32714
32715    fn drop_without_shutdown(mut self) {
32716        // Safety: drops once, never accessed again due to mem::forget
32717        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32718        // Prevent Drop from running (which would shut down the channel)
32719        std::mem::forget(self);
32720    }
32721}
32722
32723impl BaseSocketSetBindToDeviceResponder {
32724    /// Sends a response to the FIDL transaction.
32725    ///
32726    /// Sets the channel to shutdown if an error occurs.
32727    pub fn send(
32728        self,
32729        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32730    ) -> Result<(), fidl::Error> {
32731        let _result = self.send_raw(result);
32732        if _result.is_err() {
32733            self.control_handle.shutdown();
32734        }
32735        self.drop_without_shutdown();
32736        _result
32737    }
32738
32739    /// Similar to "send" but does not shutdown the channel if an error occurs.
32740    pub fn send_no_shutdown_on_err(
32741        self,
32742        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32743    ) -> Result<(), fidl::Error> {
32744        let _result = self.send_raw(result);
32745        self.drop_without_shutdown();
32746        _result
32747    }
32748
32749    fn send_raw(
32750        &self,
32751        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32752    ) -> Result<(), fidl::Error> {
32753        self.control_handle.inner.send::<fidl::encoding::ResultType<
32754            fidl::encoding::EmptyStruct,
32755            fidl_fuchsia_posix::Errno,
32756        >>(
32757            result,
32758            self.tx_id,
32759            0x2118b483f28aafc4,
32760            fidl::encoding::DynamicFlags::empty(),
32761        )
32762    }
32763}
32764
32765#[must_use = "FIDL methods require a response to be sent"]
32766#[derive(Debug)]
32767pub struct BaseSocketGetBindToDeviceResponder {
32768    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32769    tx_id: u32,
32770}
32771
32772/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32773/// if the responder is dropped without sending a response, so that the client
32774/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32775impl std::ops::Drop for BaseSocketGetBindToDeviceResponder {
32776    fn drop(&mut self) {
32777        self.control_handle.shutdown();
32778        // Safety: drops once, never accessed again
32779        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32780    }
32781}
32782
32783impl fidl::endpoints::Responder for BaseSocketGetBindToDeviceResponder {
32784    type ControlHandle = BaseSocketControlHandle;
32785
32786    fn control_handle(&self) -> &BaseSocketControlHandle {
32787        &self.control_handle
32788    }
32789
32790    fn drop_without_shutdown(mut self) {
32791        // Safety: drops once, never accessed again due to mem::forget
32792        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32793        // Prevent Drop from running (which would shut down the channel)
32794        std::mem::forget(self);
32795    }
32796}
32797
32798impl BaseSocketGetBindToDeviceResponder {
32799    /// Sends a response to the FIDL transaction.
32800    ///
32801    /// Sets the channel to shutdown if an error occurs.
32802    pub fn send(
32803        self,
32804        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
32805    ) -> Result<(), fidl::Error> {
32806        let _result = self.send_raw(result);
32807        if _result.is_err() {
32808            self.control_handle.shutdown();
32809        }
32810        self.drop_without_shutdown();
32811        _result
32812    }
32813
32814    /// Similar to "send" but does not shutdown the channel if an error occurs.
32815    pub fn send_no_shutdown_on_err(
32816        self,
32817        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
32818    ) -> Result<(), fidl::Error> {
32819        let _result = self.send_raw(result);
32820        self.drop_without_shutdown();
32821        _result
32822    }
32823
32824    fn send_raw(
32825        &self,
32826        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
32827    ) -> Result<(), fidl::Error> {
32828        self.control_handle.inner.send::<fidl::encoding::ResultType<
32829            BaseSocketGetBindToDeviceResponse,
32830            fidl_fuchsia_posix::Errno,
32831        >>(
32832            result.map(|value| (value,)),
32833            self.tx_id,
32834            0x1ab1fbf0ef7906c8,
32835            fidl::encoding::DynamicFlags::empty(),
32836        )
32837    }
32838}
32839
32840#[must_use = "FIDL methods require a response to be sent"]
32841#[derive(Debug)]
32842pub struct BaseSocketSetBindToInterfaceIndexResponder {
32843    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32844    tx_id: u32,
32845}
32846
32847/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32848/// if the responder is dropped without sending a response, so that the client
32849/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32850impl std::ops::Drop for BaseSocketSetBindToInterfaceIndexResponder {
32851    fn drop(&mut self) {
32852        self.control_handle.shutdown();
32853        // Safety: drops once, never accessed again
32854        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32855    }
32856}
32857
32858impl fidl::endpoints::Responder for BaseSocketSetBindToInterfaceIndexResponder {
32859    type ControlHandle = BaseSocketControlHandle;
32860
32861    fn control_handle(&self) -> &BaseSocketControlHandle {
32862        &self.control_handle
32863    }
32864
32865    fn drop_without_shutdown(mut self) {
32866        // Safety: drops once, never accessed again due to mem::forget
32867        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32868        // Prevent Drop from running (which would shut down the channel)
32869        std::mem::forget(self);
32870    }
32871}
32872
32873impl BaseSocketSetBindToInterfaceIndexResponder {
32874    /// Sends a response to the FIDL transaction.
32875    ///
32876    /// Sets the channel to shutdown if an error occurs.
32877    pub fn send(
32878        self,
32879        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32880    ) -> Result<(), fidl::Error> {
32881        let _result = self.send_raw(result);
32882        if _result.is_err() {
32883            self.control_handle.shutdown();
32884        }
32885        self.drop_without_shutdown();
32886        _result
32887    }
32888
32889    /// Similar to "send" but does not shutdown the channel if an error occurs.
32890    pub fn send_no_shutdown_on_err(
32891        self,
32892        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32893    ) -> Result<(), fidl::Error> {
32894        let _result = self.send_raw(result);
32895        self.drop_without_shutdown();
32896        _result
32897    }
32898
32899    fn send_raw(
32900        &self,
32901        mut result: Result<(), fidl_fuchsia_posix::Errno>,
32902    ) -> Result<(), fidl::Error> {
32903        self.control_handle.inner.send::<fidl::encoding::ResultType<
32904            fidl::encoding::EmptyStruct,
32905            fidl_fuchsia_posix::Errno,
32906        >>(
32907            result,
32908            self.tx_id,
32909            0x6e387a0def00821,
32910            fidl::encoding::DynamicFlags::empty(),
32911        )
32912    }
32913}
32914
32915#[must_use = "FIDL methods require a response to be sent"]
32916#[derive(Debug)]
32917pub struct BaseSocketGetBindToInterfaceIndexResponder {
32918    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32919    tx_id: u32,
32920}
32921
32922/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32923/// if the responder is dropped without sending a response, so that the client
32924/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
32925impl std::ops::Drop for BaseSocketGetBindToInterfaceIndexResponder {
32926    fn drop(&mut self) {
32927        self.control_handle.shutdown();
32928        // Safety: drops once, never accessed again
32929        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32930    }
32931}
32932
32933impl fidl::endpoints::Responder for BaseSocketGetBindToInterfaceIndexResponder {
32934    type ControlHandle = BaseSocketControlHandle;
32935
32936    fn control_handle(&self) -> &BaseSocketControlHandle {
32937        &self.control_handle
32938    }
32939
32940    fn drop_without_shutdown(mut self) {
32941        // Safety: drops once, never accessed again due to mem::forget
32942        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
32943        // Prevent Drop from running (which would shut down the channel)
32944        std::mem::forget(self);
32945    }
32946}
32947
32948impl BaseSocketGetBindToInterfaceIndexResponder {
32949    /// Sends a response to the FIDL transaction.
32950    ///
32951    /// Sets the channel to shutdown if an error occurs.
32952    pub fn send(
32953        self,
32954        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32955    ) -> Result<(), fidl::Error> {
32956        let _result = self.send_raw(result);
32957        if _result.is_err() {
32958            self.control_handle.shutdown();
32959        }
32960        self.drop_without_shutdown();
32961        _result
32962    }
32963
32964    /// Similar to "send" but does not shutdown the channel if an error occurs.
32965    pub fn send_no_shutdown_on_err(
32966        self,
32967        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32968    ) -> Result<(), fidl::Error> {
32969        let _result = self.send_raw(result);
32970        self.drop_without_shutdown();
32971        _result
32972    }
32973
32974    fn send_raw(
32975        &self,
32976        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
32977    ) -> Result<(), fidl::Error> {
32978        self.control_handle.inner.send::<fidl::encoding::ResultType<
32979            BaseSocketGetBindToInterfaceIndexResponse,
32980            fidl_fuchsia_posix::Errno,
32981        >>(
32982            result.map(|value| (value,)),
32983            self.tx_id,
32984            0x59c31dd3e3078295,
32985            fidl::encoding::DynamicFlags::empty(),
32986        )
32987    }
32988}
32989
32990#[must_use = "FIDL methods require a response to be sent"]
32991#[derive(Debug)]
32992pub struct BaseSocketSetTimestampResponder {
32993    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
32994    tx_id: u32,
32995}
32996
32997/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
32998/// if the responder is dropped without sending a response, so that the client
32999/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33000impl std::ops::Drop for BaseSocketSetTimestampResponder {
33001    fn drop(&mut self) {
33002        self.control_handle.shutdown();
33003        // Safety: drops once, never accessed again
33004        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33005    }
33006}
33007
33008impl fidl::endpoints::Responder for BaseSocketSetTimestampResponder {
33009    type ControlHandle = BaseSocketControlHandle;
33010
33011    fn control_handle(&self) -> &BaseSocketControlHandle {
33012        &self.control_handle
33013    }
33014
33015    fn drop_without_shutdown(mut self) {
33016        // Safety: drops once, never accessed again due to mem::forget
33017        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33018        // Prevent Drop from running (which would shut down the channel)
33019        std::mem::forget(self);
33020    }
33021}
33022
33023impl BaseSocketSetTimestampResponder {
33024    /// Sends a response to the FIDL transaction.
33025    ///
33026    /// Sets the channel to shutdown if an error occurs.
33027    pub fn send(
33028        self,
33029        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33030    ) -> Result<(), fidl::Error> {
33031        let _result = self.send_raw(result);
33032        if _result.is_err() {
33033            self.control_handle.shutdown();
33034        }
33035        self.drop_without_shutdown();
33036        _result
33037    }
33038
33039    /// Similar to "send" but does not shutdown the channel if an error occurs.
33040    pub fn send_no_shutdown_on_err(
33041        self,
33042        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33043    ) -> Result<(), fidl::Error> {
33044        let _result = self.send_raw(result);
33045        self.drop_without_shutdown();
33046        _result
33047    }
33048
33049    fn send_raw(
33050        &self,
33051        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33052    ) -> Result<(), fidl::Error> {
33053        self.control_handle.inner.send::<fidl::encoding::ResultType<
33054            fidl::encoding::EmptyStruct,
33055            fidl_fuchsia_posix::Errno,
33056        >>(
33057            result,
33058            self.tx_id,
33059            0x285d6516c263d839,
33060            fidl::encoding::DynamicFlags::empty(),
33061        )
33062    }
33063}
33064
33065#[must_use = "FIDL methods require a response to be sent"]
33066#[derive(Debug)]
33067pub struct BaseSocketGetTimestampResponder {
33068    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33069    tx_id: u32,
33070}
33071
33072/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33073/// if the responder is dropped without sending a response, so that the client
33074/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33075impl std::ops::Drop for BaseSocketGetTimestampResponder {
33076    fn drop(&mut self) {
33077        self.control_handle.shutdown();
33078        // Safety: drops once, never accessed again
33079        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33080    }
33081}
33082
33083impl fidl::endpoints::Responder for BaseSocketGetTimestampResponder {
33084    type ControlHandle = BaseSocketControlHandle;
33085
33086    fn control_handle(&self) -> &BaseSocketControlHandle {
33087        &self.control_handle
33088    }
33089
33090    fn drop_without_shutdown(mut self) {
33091        // Safety: drops once, never accessed again due to mem::forget
33092        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33093        // Prevent Drop from running (which would shut down the channel)
33094        std::mem::forget(self);
33095    }
33096}
33097
33098impl BaseSocketGetTimestampResponder {
33099    /// Sends a response to the FIDL transaction.
33100    ///
33101    /// Sets the channel to shutdown if an error occurs.
33102    pub fn send(
33103        self,
33104        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
33105    ) -> Result<(), fidl::Error> {
33106        let _result = self.send_raw(result);
33107        if _result.is_err() {
33108            self.control_handle.shutdown();
33109        }
33110        self.drop_without_shutdown();
33111        _result
33112    }
33113
33114    /// Similar to "send" but does not shutdown the channel if an error occurs.
33115    pub fn send_no_shutdown_on_err(
33116        self,
33117        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
33118    ) -> Result<(), fidl::Error> {
33119        let _result = self.send_raw(result);
33120        self.drop_without_shutdown();
33121        _result
33122    }
33123
33124    fn send_raw(
33125        &self,
33126        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
33127    ) -> Result<(), fidl::Error> {
33128        self.control_handle.inner.send::<fidl::encoding::ResultType<
33129            BaseSocketGetTimestampResponse,
33130            fidl_fuchsia_posix::Errno,
33131        >>(
33132            result.map(|value| (value,)),
33133            self.tx_id,
33134            0x49f2fffbbcc2bd27,
33135            fidl::encoding::DynamicFlags::empty(),
33136        )
33137    }
33138}
33139
33140#[must_use = "FIDL methods require a response to be sent"]
33141#[derive(Debug)]
33142pub struct BaseSocketSetMarkResponder {
33143    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33144    tx_id: u32,
33145}
33146
33147/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33148/// if the responder is dropped without sending a response, so that the client
33149/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33150impl std::ops::Drop for BaseSocketSetMarkResponder {
33151    fn drop(&mut self) {
33152        self.control_handle.shutdown();
33153        // Safety: drops once, never accessed again
33154        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33155    }
33156}
33157
33158impl fidl::endpoints::Responder for BaseSocketSetMarkResponder {
33159    type ControlHandle = BaseSocketControlHandle;
33160
33161    fn control_handle(&self) -> &BaseSocketControlHandle {
33162        &self.control_handle
33163    }
33164
33165    fn drop_without_shutdown(mut self) {
33166        // Safety: drops once, never accessed again due to mem::forget
33167        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33168        // Prevent Drop from running (which would shut down the channel)
33169        std::mem::forget(self);
33170    }
33171}
33172
33173impl BaseSocketSetMarkResponder {
33174    /// Sends a response to the FIDL transaction.
33175    ///
33176    /// Sets the channel to shutdown if an error occurs.
33177    pub fn send(
33178        self,
33179        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33180    ) -> Result<(), fidl::Error> {
33181        let _result = self.send_raw(result);
33182        if _result.is_err() {
33183            self.control_handle.shutdown();
33184        }
33185        self.drop_without_shutdown();
33186        _result
33187    }
33188
33189    /// Similar to "send" but does not shutdown the channel if an error occurs.
33190    pub fn send_no_shutdown_on_err(
33191        self,
33192        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33193    ) -> Result<(), fidl::Error> {
33194        let _result = self.send_raw(result);
33195        self.drop_without_shutdown();
33196        _result
33197    }
33198
33199    fn send_raw(
33200        &self,
33201        mut result: Result<(), fidl_fuchsia_posix::Errno>,
33202    ) -> Result<(), fidl::Error> {
33203        self.control_handle.inner.send::<fidl::encoding::ResultType<
33204            fidl::encoding::EmptyStruct,
33205            fidl_fuchsia_posix::Errno,
33206        >>(
33207            result,
33208            self.tx_id,
33209            0x6ead6de09f653236,
33210            fidl::encoding::DynamicFlags::empty(),
33211        )
33212    }
33213}
33214
33215#[must_use = "FIDL methods require a response to be sent"]
33216#[derive(Debug)]
33217pub struct BaseSocketGetMarkResponder {
33218    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33219    tx_id: u32,
33220}
33221
33222/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33223/// if the responder is dropped without sending a response, so that the client
33224/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33225impl std::ops::Drop for BaseSocketGetMarkResponder {
33226    fn drop(&mut self) {
33227        self.control_handle.shutdown();
33228        // Safety: drops once, never accessed again
33229        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33230    }
33231}
33232
33233impl fidl::endpoints::Responder for BaseSocketGetMarkResponder {
33234    type ControlHandle = BaseSocketControlHandle;
33235
33236    fn control_handle(&self) -> &BaseSocketControlHandle {
33237        &self.control_handle
33238    }
33239
33240    fn drop_without_shutdown(mut self) {
33241        // Safety: drops once, never accessed again due to mem::forget
33242        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33243        // Prevent Drop from running (which would shut down the channel)
33244        std::mem::forget(self);
33245    }
33246}
33247
33248impl BaseSocketGetMarkResponder {
33249    /// Sends a response to the FIDL transaction.
33250    ///
33251    /// Sets the channel to shutdown if an error occurs.
33252    pub fn send(
33253        self,
33254        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
33255    ) -> Result<(), fidl::Error> {
33256        let _result = self.send_raw(result);
33257        if _result.is_err() {
33258            self.control_handle.shutdown();
33259        }
33260        self.drop_without_shutdown();
33261        _result
33262    }
33263
33264    /// Similar to "send" but does not shutdown the channel if an error occurs.
33265    pub fn send_no_shutdown_on_err(
33266        self,
33267        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
33268    ) -> Result<(), fidl::Error> {
33269        let _result = self.send_raw(result);
33270        self.drop_without_shutdown();
33271        _result
33272    }
33273
33274    fn send_raw(
33275        &self,
33276        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
33277    ) -> Result<(), fidl::Error> {
33278        self.control_handle.inner.send::<fidl::encoding::ResultType<
33279            BaseSocketGetMarkResponse,
33280            fidl_fuchsia_posix::Errno,
33281        >>(
33282            result.map(|mark| (mark,)),
33283            self.tx_id,
33284            0x57a2752c61d93d47,
33285            fidl::encoding::DynamicFlags::empty(),
33286        )
33287    }
33288}
33289
33290#[must_use = "FIDL methods require a response to be sent"]
33291#[derive(Debug)]
33292pub struct BaseSocketGetCookieResponder {
33293    control_handle: std::mem::ManuallyDrop<BaseSocketControlHandle>,
33294    tx_id: u32,
33295}
33296
33297/// Set the the channel to be shutdown (see [`BaseSocketControlHandle::shutdown`])
33298/// if the responder is dropped without sending a response, so that the client
33299/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
33300impl std::ops::Drop for BaseSocketGetCookieResponder {
33301    fn drop(&mut self) {
33302        self.control_handle.shutdown();
33303        // Safety: drops once, never accessed again
33304        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33305    }
33306}
33307
33308impl fidl::endpoints::Responder for BaseSocketGetCookieResponder {
33309    type ControlHandle = BaseSocketControlHandle;
33310
33311    fn control_handle(&self) -> &BaseSocketControlHandle {
33312        &self.control_handle
33313    }
33314
33315    fn drop_without_shutdown(mut self) {
33316        // Safety: drops once, never accessed again due to mem::forget
33317        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
33318        // Prevent Drop from running (which would shut down the channel)
33319        std::mem::forget(self);
33320    }
33321}
33322
33323impl BaseSocketGetCookieResponder {
33324    /// Sends a response to the FIDL transaction.
33325    ///
33326    /// Sets the channel to shutdown if an error occurs.
33327    pub fn send(
33328        self,
33329        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
33330    ) -> Result<(), fidl::Error> {
33331        let _result = self.send_raw(result);
33332        if _result.is_err() {
33333            self.control_handle.shutdown();
33334        }
33335        self.drop_without_shutdown();
33336        _result
33337    }
33338
33339    /// Similar to "send" but does not shutdown the channel if an error occurs.
33340    pub fn send_no_shutdown_on_err(
33341        self,
33342        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
33343    ) -> Result<(), fidl::Error> {
33344        let _result = self.send_raw(result);
33345        self.drop_without_shutdown();
33346        _result
33347    }
33348
33349    fn send_raw(
33350        &self,
33351        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
33352    ) -> Result<(), fidl::Error> {
33353        self.control_handle.inner.send::<fidl::encoding::ResultType<
33354            BaseSocketGetCookieResponse,
33355            fidl_fuchsia_posix::Errno,
33356        >>(
33357            result.map(|value| (value,)),
33358            self.tx_id,
33359            0x2c2f47fd8f924e52,
33360            fidl::encoding::DynamicFlags::empty(),
33361        )
33362    }
33363}
33364
33365#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
33366pub struct DatagramSocketMarker;
33367
33368impl fidl::endpoints::ProtocolMarker for DatagramSocketMarker {
33369    type Proxy = DatagramSocketProxy;
33370    type RequestStream = DatagramSocketRequestStream;
33371    #[cfg(target_os = "fuchsia")]
33372    type SynchronousProxy = DatagramSocketSynchronousProxy;
33373
33374    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.DatagramSocket";
33375}
33376impl fidl::endpoints::DiscoverableProtocolMarker for DatagramSocketMarker {}
33377pub type DatagramSocketSendMsgPreflightResult =
33378    Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>;
33379pub type DatagramSocketRecvMsgPostflightResult =
33380    Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>;
33381
33382pub trait DatagramSocketProxyInterface: Send + Sync {
33383    fn r#clone(
33384        &self,
33385        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
33386    ) -> Result<(), fidl::Error>;
33387    type CloseResponseFut: std::future::Future<
33388            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
33389        > + Send;
33390    fn r#close(&self) -> Self::CloseResponseFut;
33391    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
33392    fn r#query(&self) -> Self::QueryResponseFut;
33393    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
33394        + Send;
33395    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
33396    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
33397        + Send;
33398    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
33399    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
33400        + Send;
33401    fn r#get_error(&self) -> Self::GetErrorResponseFut;
33402    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
33403        + Send;
33404    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
33405    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
33406        + Send;
33407    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
33408    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
33409        + Send;
33410    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
33411    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
33412        + Send;
33413    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
33414    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
33415        + Send;
33416    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
33417    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
33418        + Send;
33419    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
33420    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
33421        + Send;
33422    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
33423    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
33424        + Send;
33425    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
33426    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
33427        + Send;
33428    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
33429    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
33430        + Send;
33431    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
33432    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
33433        + Send;
33434    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
33435    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
33436        + Send;
33437    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
33438    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
33439        + Send;
33440    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
33441    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
33442        + Send;
33443    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
33444    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
33445        + Send;
33446    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
33447    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
33448        + Send;
33449    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
33450    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
33451        + Send;
33452    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
33453    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
33454        + Send;
33455    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
33456    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
33457        + Send;
33458    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
33459    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
33460        + Send;
33461    fn r#set_bind_to_interface_index(&self, value: u64)
33462    -> Self::SetBindToInterfaceIndexResponseFut;
33463    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
33464        + Send;
33465    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
33466    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
33467        + Send;
33468    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
33469    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
33470        + Send;
33471    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
33472    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
33473        + Send;
33474    fn r#set_mark(
33475        &self,
33476        domain: fidl_fuchsia_net::MarkDomain,
33477        mark: &OptionalUint32,
33478    ) -> Self::SetMarkResponseFut;
33479    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
33480        + Send;
33481    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
33482    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
33483        + Send;
33484    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
33485    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
33486        + Send;
33487    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
33488    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
33489        + Send;
33490    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
33491    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
33492        + Send;
33493    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
33494    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
33495        + Send;
33496    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
33497    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
33498        + Send;
33499    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
33500    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
33501        + Send;
33502    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
33503    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
33504        + Send;
33505    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
33506    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
33507        + Send;
33508    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
33509    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
33510        + Send;
33511    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
33512    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
33513        + Send;
33514    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
33515    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
33516        + Send;
33517    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
33518    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
33519        + Send;
33520    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
33521    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
33522            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
33523        > + Send;
33524    fn r#set_ip_receive_type_of_service(
33525        &self,
33526        value: bool,
33527    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
33528    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
33529            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
33530        > + Send;
33531    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
33532    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
33533        + Send;
33534    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
33535    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
33536        + Send;
33537    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
33538    type SetIpMulticastInterfaceResponseFut: std::future::Future<
33539            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
33540        > + Send;
33541    fn r#set_ip_multicast_interface(
33542        &self,
33543        iface: u64,
33544        address: &fidl_fuchsia_net::Ipv4Address,
33545    ) -> Self::SetIpMulticastInterfaceResponseFut;
33546    type GetIpMulticastInterfaceResponseFut: std::future::Future<
33547            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
33548        > + Send;
33549    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
33550    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
33551        + Send;
33552    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
33553    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
33554        + Send;
33555    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
33556    type SetIpMulticastLoopbackResponseFut: std::future::Future<
33557            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
33558        > + Send;
33559    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
33560    type GetIpMulticastLoopbackResponseFut: std::future::Future<
33561            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
33562        > + Send;
33563    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
33564    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
33565        + Send;
33566    fn r#add_ip_membership(
33567        &self,
33568        membership: &IpMulticastMembership,
33569    ) -> Self::AddIpMembershipResponseFut;
33570    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
33571        + Send;
33572    fn r#drop_ip_membership(
33573        &self,
33574        membership: &IpMulticastMembership,
33575    ) -> Self::DropIpMembershipResponseFut;
33576    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
33577        + Send;
33578    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
33579    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
33580        + Send;
33581    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
33582    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
33583            Output = Result<
33584                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
33585                fidl::Error,
33586            >,
33587        > + Send;
33588    fn r#set_ip_receive_original_destination_address(
33589        &self,
33590        value: bool,
33591    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
33592    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
33593            Output = Result<
33594                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
33595                fidl::Error,
33596            >,
33597        > + Send;
33598    fn r#get_ip_receive_original_destination_address(
33599        &self,
33600    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
33601    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
33602        + Send;
33603    fn r#add_ipv6_membership(
33604        &self,
33605        membership: &Ipv6MulticastMembership,
33606    ) -> Self::AddIpv6MembershipResponseFut;
33607    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
33608        + Send;
33609    fn r#drop_ipv6_membership(
33610        &self,
33611        membership: &Ipv6MulticastMembership,
33612    ) -> Self::DropIpv6MembershipResponseFut;
33613    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
33614            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
33615        > + Send;
33616    fn r#set_ipv6_multicast_interface(
33617        &self,
33618        value: u64,
33619    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
33620    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
33621            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
33622        > + Send;
33623    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
33624    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
33625        + Send;
33626    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
33627    -> Self::SetIpv6UnicastHopsResponseFut;
33628    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
33629        + Send;
33630    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
33631    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
33632            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
33633        > + Send;
33634    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
33635    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
33636            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
33637        > + Send;
33638    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
33639    type SetIpv6MulticastHopsResponseFut: std::future::Future<
33640            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
33641        > + Send;
33642    fn r#set_ipv6_multicast_hops(
33643        &self,
33644        value: &OptionalUint8,
33645    ) -> Self::SetIpv6MulticastHopsResponseFut;
33646    type GetIpv6MulticastHopsResponseFut: std::future::Future<
33647            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
33648        > + Send;
33649    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
33650    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
33651            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
33652        > + Send;
33653    fn r#set_ipv6_multicast_loopback(
33654        &self,
33655        value: bool,
33656    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
33657    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
33658            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
33659        > + Send;
33660    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
33661    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
33662        + Send;
33663    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
33664    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
33665        + Send;
33666    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
33667    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
33668            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
33669        > + Send;
33670    fn r#set_ipv6_receive_traffic_class(
33671        &self,
33672        value: bool,
33673    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
33674    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
33675            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
33676        > + Send;
33677    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
33678    type SetIpv6TrafficClassResponseFut: std::future::Future<
33679            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
33680        > + Send;
33681    fn r#set_ipv6_traffic_class(
33682        &self,
33683        value: &OptionalUint8,
33684    ) -> Self::SetIpv6TrafficClassResponseFut;
33685    type GetIpv6TrafficClassResponseFut: std::future::Future<
33686            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
33687        > + Send;
33688    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
33689    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
33690            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
33691        > + Send;
33692    fn r#set_ipv6_receive_packet_info(
33693        &self,
33694        value: bool,
33695    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
33696    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
33697            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
33698        > + Send;
33699    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
33700    type GetOriginalDestinationResponseFut: std::future::Future<
33701            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
33702        > + Send;
33703    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
33704    type GetInfoResponseFut: std::future::Future<Output = Result<BaseDatagramSocketGetInfoResult, fidl::Error>>
33705        + Send;
33706    fn r#get_info(&self) -> Self::GetInfoResponseFut;
33707    type DescribeResponseFut: std::future::Future<Output = Result<DatagramSocketDescribeResponse, fidl::Error>>
33708        + Send;
33709    fn r#describe(&self) -> Self::DescribeResponseFut;
33710    type SendMsgPreflightResponseFut: std::future::Future<Output = Result<DatagramSocketSendMsgPreflightResult, fidl::Error>>
33711        + Send;
33712    fn r#send_msg_preflight(
33713        &self,
33714        payload: &DatagramSocketSendMsgPreflightRequest,
33715    ) -> Self::SendMsgPreflightResponseFut;
33716    type RecvMsgPostflightResponseFut: std::future::Future<Output = Result<DatagramSocketRecvMsgPostflightResult, fidl::Error>>
33717        + Send;
33718    fn r#recv_msg_postflight(&self) -> Self::RecvMsgPostflightResponseFut;
33719}
33720#[derive(Debug)]
33721#[cfg(target_os = "fuchsia")]
33722pub struct DatagramSocketSynchronousProxy {
33723    client: fidl::client::sync::Client,
33724}
33725
33726#[cfg(target_os = "fuchsia")]
33727impl fidl::endpoints::SynchronousProxy for DatagramSocketSynchronousProxy {
33728    type Proxy = DatagramSocketProxy;
33729    type Protocol = DatagramSocketMarker;
33730
33731    fn from_channel(inner: fidl::Channel) -> Self {
33732        Self::new(inner)
33733    }
33734
33735    fn into_channel(self) -> fidl::Channel {
33736        self.client.into_channel()
33737    }
33738
33739    fn as_channel(&self) -> &fidl::Channel {
33740        self.client.as_channel()
33741    }
33742}
33743
33744#[cfg(target_os = "fuchsia")]
33745impl DatagramSocketSynchronousProxy {
33746    pub fn new(channel: fidl::Channel) -> Self {
33747        let protocol_name = <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
33748        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
33749    }
33750
33751    pub fn into_channel(self) -> fidl::Channel {
33752        self.client.into_channel()
33753    }
33754
33755    /// Waits until an event arrives and returns it. It is safe for other
33756    /// threads to make concurrent requests while waiting for an event.
33757    pub fn wait_for_event(
33758        &self,
33759        deadline: zx::MonotonicInstant,
33760    ) -> Result<DatagramSocketEvent, fidl::Error> {
33761        DatagramSocketEvent::decode(self.client.wait_for_event(deadline)?)
33762    }
33763
33764    pub fn r#clone(
33765        &self,
33766        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
33767    ) -> Result<(), fidl::Error> {
33768        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
33769            (request,),
33770            0x20d8a7aba2168a79,
33771            fidl::encoding::DynamicFlags::empty(),
33772        )
33773    }
33774
33775    /// Terminates the connection.
33776    ///
33777    /// After calling `Close`, the client must not send any other requests.
33778    ///
33779    /// Servers, after sending the status response, should close the connection
33780    /// regardless of status and without sending an epitaph.
33781    ///
33782    /// Closing the client end of the channel should be semantically equivalent
33783    /// to calling `Close` without knowing when the close has completed or its
33784    /// status.
33785    pub fn r#close(
33786        &self,
33787        ___deadline: zx::MonotonicInstant,
33788    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
33789        let _response = self.client.send_query::<
33790            fidl::encoding::EmptyPayload,
33791            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
33792        >(
33793            (),
33794            0x5ac5d459ad7f657e,
33795            fidl::encoding::DynamicFlags::empty(),
33796            ___deadline,
33797        )?;
33798        Ok(_response.map(|x| x))
33799    }
33800
33801    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
33802        let _response = self.client.send_query::<
33803            fidl::encoding::EmptyPayload,
33804            fidl_fuchsia_unknown::QueryableQueryResponse,
33805        >(
33806            (),
33807            0x2658edee9decfc06,
33808            fidl::encoding::DynamicFlags::empty(),
33809            ___deadline,
33810        )?;
33811        Ok(_response.protocol)
33812    }
33813
33814    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
33815    pub fn r#set_reuse_address(
33816        &self,
33817        mut value: bool,
33818        ___deadline: zx::MonotonicInstant,
33819    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
33820        let _response =
33821            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
33822                fidl::encoding::EmptyStruct,
33823                fidl_fuchsia_posix::Errno,
33824            >>(
33825                (value,),
33826                0x1fd74ee8b9a4a876,
33827                fidl::encoding::DynamicFlags::empty(),
33828                ___deadline,
33829            )?;
33830        Ok(_response.map(|x| x))
33831    }
33832
33833    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
33834    pub fn r#get_reuse_address(
33835        &self,
33836        ___deadline: zx::MonotonicInstant,
33837    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
33838        let _response = self
33839            .client
33840            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33841                BaseSocketGetReuseAddressResponse,
33842                fidl_fuchsia_posix::Errno,
33843            >>(
33844                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
33845            )?;
33846        Ok(_response.map(|x| x.value))
33847    }
33848
33849    /// Get `SOL_SOCKET` -> `SO_ERROR`.
33850    /// Returns the last error if there is an error set on the socket.
33851    pub fn r#get_error(
33852        &self,
33853        ___deadline: zx::MonotonicInstant,
33854    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
33855        let _response =
33856            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33857                fidl::encoding::EmptyStruct,
33858                fidl_fuchsia_posix::Errno,
33859            >>(
33860                (),
33861                0x5aad39b33e5f6ebb,
33862                fidl::encoding::DynamicFlags::empty(),
33863                ___deadline,
33864            )?;
33865        Ok(_response.map(|x| x))
33866    }
33867
33868    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
33869    pub fn r#set_broadcast(
33870        &self,
33871        mut value: bool,
33872        ___deadline: zx::MonotonicInstant,
33873    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
33874        let _response =
33875            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
33876                fidl::encoding::EmptyStruct,
33877                fidl_fuchsia_posix::Errno,
33878            >>(
33879                (value,),
33880                0x6023e081ce3cd947,
33881                fidl::encoding::DynamicFlags::empty(),
33882                ___deadline,
33883            )?;
33884        Ok(_response.map(|x| x))
33885    }
33886
33887    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
33888    pub fn r#get_broadcast(
33889        &self,
33890        ___deadline: zx::MonotonicInstant,
33891    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
33892        let _response =
33893            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33894                BaseSocketGetBroadcastResponse,
33895                fidl_fuchsia_posix::Errno,
33896            >>(
33897                (),
33898                0x68796fc556f9780d,
33899                fidl::encoding::DynamicFlags::empty(),
33900                ___deadline,
33901            )?;
33902        Ok(_response.map(|x| x.value))
33903    }
33904
33905    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
33906    pub fn r#set_send_buffer(
33907        &self,
33908        mut value_bytes: u64,
33909        ___deadline: zx::MonotonicInstant,
33910    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
33911        let _response =
33912            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
33913                fidl::encoding::EmptyStruct,
33914                fidl_fuchsia_posix::Errno,
33915            >>(
33916                (value_bytes,),
33917                0x756eac32d73a7a70,
33918                fidl::encoding::DynamicFlags::empty(),
33919                ___deadline,
33920            )?;
33921        Ok(_response.map(|x| x))
33922    }
33923
33924    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
33925    pub fn r#get_send_buffer(
33926        &self,
33927        ___deadline: zx::MonotonicInstant,
33928    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
33929        let _response = self
33930            .client
33931            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33932                BaseSocketGetSendBufferResponse,
33933                fidl_fuchsia_posix::Errno,
33934            >>(
33935                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
33936            )?;
33937        Ok(_response.map(|x| x.value_bytes))
33938    }
33939
33940    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
33941    pub fn r#set_receive_buffer(
33942        &self,
33943        mut value_bytes: u64,
33944        ___deadline: zx::MonotonicInstant,
33945    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
33946        let _response =
33947            self.client
33948                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
33949                    fidl::encoding::EmptyStruct,
33950                    fidl_fuchsia_posix::Errno,
33951                >>(
33952                    (value_bytes,),
33953                    0x6b0cf2f1919c7001,
33954                    fidl::encoding::DynamicFlags::empty(),
33955                    ___deadline,
33956                )?;
33957        Ok(_response.map(|x| x))
33958    }
33959
33960    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
33961    pub fn r#get_receive_buffer(
33962        &self,
33963        ___deadline: zx::MonotonicInstant,
33964    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
33965        let _response = self
33966            .client
33967            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
33968                BaseSocketGetReceiveBufferResponse,
33969                fidl_fuchsia_posix::Errno,
33970            >>(
33971                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
33972            )?;
33973        Ok(_response.map(|x| x.value_bytes))
33974    }
33975
33976    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
33977    pub fn r#set_keep_alive(
33978        &self,
33979        mut value: bool,
33980        ___deadline: zx::MonotonicInstant,
33981    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
33982        let _response =
33983            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
33984                fidl::encoding::EmptyStruct,
33985                fidl_fuchsia_posix::Errno,
33986            >>(
33987                (value,),
33988                0x572df8f0b920d2c7,
33989                fidl::encoding::DynamicFlags::empty(),
33990                ___deadline,
33991            )?;
33992        Ok(_response.map(|x| x))
33993    }
33994
33995    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
33996    pub fn r#get_keep_alive(
33997        &self,
33998        ___deadline: zx::MonotonicInstant,
33999    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
34000        let _response =
34001            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34002                BaseSocketGetKeepAliveResponse,
34003                fidl_fuchsia_posix::Errno,
34004            >>(
34005                (),
34006                0x2dd29d3215f2c9d2,
34007                fidl::encoding::DynamicFlags::empty(),
34008                ___deadline,
34009            )?;
34010        Ok(_response.map(|x| x.value))
34011    }
34012
34013    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
34014    pub fn r#set_out_of_band_inline(
34015        &self,
34016        mut value: bool,
34017        ___deadline: zx::MonotonicInstant,
34018    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
34019        let _response =
34020            self.client
34021                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
34022                    fidl::encoding::EmptyStruct,
34023                    fidl_fuchsia_posix::Errno,
34024                >>(
34025                    (value,),
34026                    0x3ecb49968bee439,
34027                    fidl::encoding::DynamicFlags::empty(),
34028                    ___deadline,
34029                )?;
34030        Ok(_response.map(|x| x))
34031    }
34032
34033    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
34034    pub fn r#get_out_of_band_inline(
34035        &self,
34036        ___deadline: zx::MonotonicInstant,
34037    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
34038        let _response = self
34039            .client
34040            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34041                BaseSocketGetOutOfBandInlineResponse,
34042                fidl_fuchsia_posix::Errno,
34043            >>(
34044                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
34045            )?;
34046        Ok(_response.map(|x| x.value))
34047    }
34048
34049    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
34050    pub fn r#set_no_check(
34051        &self,
34052        mut value: bool,
34053        ___deadline: zx::MonotonicInstant,
34054    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
34055        let _response =
34056            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
34057                fidl::encoding::EmptyStruct,
34058                fidl_fuchsia_posix::Errno,
34059            >>(
34060                (value,),
34061                0x6bbf00c53a4c78c2,
34062                fidl::encoding::DynamicFlags::empty(),
34063                ___deadline,
34064            )?;
34065        Ok(_response.map(|x| x))
34066    }
34067
34068    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
34069    pub fn r#get_no_check(
34070        &self,
34071        ___deadline: zx::MonotonicInstant,
34072    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
34073        let _response =
34074            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34075                BaseSocketGetNoCheckResponse,
34076                fidl_fuchsia_posix::Errno,
34077            >>(
34078                (),
34079                0x2cd4249286417694,
34080                fidl::encoding::DynamicFlags::empty(),
34081                ___deadline,
34082            )?;
34083        Ok(_response.map(|x| x.value))
34084    }
34085
34086    /// Set `SOL_SOCKET` -> `SO_LINGER`.
34087    pub fn r#set_linger(
34088        &self,
34089        mut linger: bool,
34090        mut length_secs: u32,
34091        ___deadline: zx::MonotonicInstant,
34092    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
34093        let _response =
34094            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
34095                fidl::encoding::EmptyStruct,
34096                fidl_fuchsia_posix::Errno,
34097            >>(
34098                (linger, length_secs),
34099                0x45386351246e998e,
34100                fidl::encoding::DynamicFlags::empty(),
34101                ___deadline,
34102            )?;
34103        Ok(_response.map(|x| x))
34104    }
34105
34106    /// Get `SOL_SOCKET` -> `SO_LINGER`.
34107    pub fn r#get_linger(
34108        &self,
34109        ___deadline: zx::MonotonicInstant,
34110    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
34111        let _response =
34112            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34113                BaseSocketGetLingerResponse,
34114                fidl_fuchsia_posix::Errno,
34115            >>(
34116                (),
34117                0x48eb20fc5ccb0e45,
34118                fidl::encoding::DynamicFlags::empty(),
34119                ___deadline,
34120            )?;
34121        Ok(_response.map(|x| (x.linger, x.length_secs)))
34122    }
34123
34124    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
34125    pub fn r#set_reuse_port(
34126        &self,
34127        mut value: bool,
34128        ___deadline: zx::MonotonicInstant,
34129    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
34130        let _response =
34131            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
34132                fidl::encoding::EmptyStruct,
34133                fidl_fuchsia_posix::Errno,
34134            >>(
34135                (value,),
34136                0x24dd3e5cb36d9ccb,
34137                fidl::encoding::DynamicFlags::empty(),
34138                ___deadline,
34139            )?;
34140        Ok(_response.map(|x| x))
34141    }
34142
34143    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
34144    pub fn r#get_reuse_port(
34145        &self,
34146        ___deadline: zx::MonotonicInstant,
34147    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
34148        let _response =
34149            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34150                BaseSocketGetReusePortResponse,
34151                fidl_fuchsia_posix::Errno,
34152            >>(
34153                (),
34154                0x7a112c1ab54ff828,
34155                fidl::encoding::DynamicFlags::empty(),
34156                ___deadline,
34157            )?;
34158        Ok(_response.map(|x| x.value))
34159    }
34160
34161    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
34162    pub fn r#get_accept_conn(
34163        &self,
34164        ___deadline: zx::MonotonicInstant,
34165    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
34166        let _response = self
34167            .client
34168            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34169                BaseSocketGetAcceptConnResponse,
34170                fidl_fuchsia_posix::Errno,
34171            >>(
34172                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
34173            )?;
34174        Ok(_response.map(|x| x.value))
34175    }
34176
34177    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
34178    pub fn r#set_bind_to_device(
34179        &self,
34180        mut value: &str,
34181        ___deadline: zx::MonotonicInstant,
34182    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
34183        let _response =
34184            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
34185                fidl::encoding::EmptyStruct,
34186                fidl_fuchsia_posix::Errno,
34187            >>(
34188                (value,),
34189                0x2118b483f28aafc4,
34190                fidl::encoding::DynamicFlags::empty(),
34191                ___deadline,
34192            )?;
34193        Ok(_response.map(|x| x))
34194    }
34195
34196    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
34197    pub fn r#get_bind_to_device(
34198        &self,
34199        ___deadline: zx::MonotonicInstant,
34200    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
34201        let _response = self
34202            .client
34203            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34204                BaseSocketGetBindToDeviceResponse,
34205                fidl_fuchsia_posix::Errno,
34206            >>(
34207                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
34208            )?;
34209        Ok(_response.map(|x| x.value))
34210    }
34211
34212    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
34213    /// If `value` is 0, this clears the bound interface.
34214    pub fn r#set_bind_to_interface_index(
34215        &self,
34216        mut value: u64,
34217        ___deadline: zx::MonotonicInstant,
34218    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
34219        let _response =
34220            self.client
34221                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
34222                    fidl::encoding::EmptyStruct,
34223                    fidl_fuchsia_posix::Errno,
34224                >>(
34225                    (value,),
34226                    0x6e387a0def00821,
34227                    fidl::encoding::DynamicFlags::empty(),
34228                    ___deadline,
34229                )?;
34230        Ok(_response.map(|x| x))
34231    }
34232
34233    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
34234    pub fn r#get_bind_to_interface_index(
34235        &self,
34236        ___deadline: zx::MonotonicInstant,
34237    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
34238        let _response = self
34239            .client
34240            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34241                BaseSocketGetBindToInterfaceIndexResponse,
34242                fidl_fuchsia_posix::Errno,
34243            >>(
34244                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
34245            )?;
34246        Ok(_response.map(|x| x.value))
34247    }
34248
34249    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
34250    pub fn r#set_timestamp(
34251        &self,
34252        mut value: TimestampOption,
34253        ___deadline: zx::MonotonicInstant,
34254    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
34255        let _response =
34256            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
34257                fidl::encoding::EmptyStruct,
34258                fidl_fuchsia_posix::Errno,
34259            >>(
34260                (value,),
34261                0x285d6516c263d839,
34262                fidl::encoding::DynamicFlags::empty(),
34263                ___deadline,
34264            )?;
34265        Ok(_response.map(|x| x))
34266    }
34267
34268    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
34269    pub fn r#get_timestamp(
34270        &self,
34271        ___deadline: zx::MonotonicInstant,
34272    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
34273        let _response =
34274            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34275                BaseSocketGetTimestampResponse,
34276                fidl_fuchsia_posix::Errno,
34277            >>(
34278                (),
34279                0x49f2fffbbcc2bd27,
34280                fidl::encoding::DynamicFlags::empty(),
34281                ___deadline,
34282            )?;
34283        Ok(_response.map(|x| x.value))
34284    }
34285
34286    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
34287    /// unlike the standard SO_MARK, this API has multiple mark domains and each
34288    /// mark can be set independently in each domain.
34289    pub fn r#set_mark(
34290        &self,
34291        mut domain: fidl_fuchsia_net::MarkDomain,
34292        mut mark: &OptionalUint32,
34293        ___deadline: zx::MonotonicInstant,
34294    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
34295        let _response =
34296            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
34297                fidl::encoding::EmptyStruct,
34298                fidl_fuchsia_posix::Errno,
34299            >>(
34300                (domain, mark),
34301                0x6ead6de09f653236,
34302                fidl::encoding::DynamicFlags::empty(),
34303                ___deadline,
34304            )?;
34305        Ok(_response.map(|x| x))
34306    }
34307
34308    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
34309    /// unlike the standard SO_MARK, this API has multiple mark domains and each
34310    /// mark can be retrieved independently in each domain.
34311    pub fn r#get_mark(
34312        &self,
34313        mut domain: fidl_fuchsia_net::MarkDomain,
34314        ___deadline: zx::MonotonicInstant,
34315    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
34316        let _response =
34317            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
34318                BaseSocketGetMarkResponse,
34319                fidl_fuchsia_posix::Errno,
34320            >>(
34321                (domain,),
34322                0x57a2752c61d93d47,
34323                fidl::encoding::DynamicFlags::empty(),
34324                ___deadline,
34325            )?;
34326        Ok(_response.map(|x| x.mark))
34327    }
34328
34329    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
34330    pub fn r#get_cookie(
34331        &self,
34332        ___deadline: zx::MonotonicInstant,
34333    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
34334        let _response =
34335            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34336                BaseSocketGetCookieResponse,
34337                fidl_fuchsia_posix::Errno,
34338            >>(
34339                (),
34340                0x2c2f47fd8f924e52,
34341                fidl::encoding::DynamicFlags::empty(),
34342                ___deadline,
34343            )?;
34344        Ok(_response.map(|x| x.value))
34345    }
34346
34347    /// Sets the local address used for the socket.
34348    pub fn r#bind(
34349        &self,
34350        mut addr: &fidl_fuchsia_net::SocketAddress,
34351        ___deadline: zx::MonotonicInstant,
34352    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
34353        let _response =
34354            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
34355                fidl::encoding::EmptyStruct,
34356                fidl_fuchsia_posix::Errno,
34357            >>(
34358                (addr,),
34359                0x4bc6400ae92125d,
34360                fidl::encoding::DynamicFlags::empty(),
34361                ___deadline,
34362            )?;
34363        Ok(_response.map(|x| x))
34364    }
34365
34366    /// Initiates a connection to a remote address.
34367    pub fn r#connect(
34368        &self,
34369        mut addr: &fidl_fuchsia_net::SocketAddress,
34370        ___deadline: zx::MonotonicInstant,
34371    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
34372        let _response =
34373            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
34374                fidl::encoding::EmptyStruct,
34375                fidl_fuchsia_posix::Errno,
34376            >>(
34377                (addr,),
34378                0x5f05f19bfdd38871,
34379                fidl::encoding::DynamicFlags::empty(),
34380                ___deadline,
34381            )?;
34382        Ok(_response.map(|x| x))
34383    }
34384
34385    /// Clears connection information from this socket.
34386    pub fn r#disconnect(
34387        &self,
34388        ___deadline: zx::MonotonicInstant,
34389    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
34390        let _response =
34391            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34392                fidl::encoding::EmptyStruct,
34393                fidl_fuchsia_posix::Errno,
34394            >>(
34395                (),
34396                0x74e63b91f7b29b2,
34397                fidl::encoding::DynamicFlags::empty(),
34398                ___deadline,
34399            )?;
34400        Ok(_response.map(|x| x))
34401    }
34402
34403    /// Retrieves the local socket address.
34404    pub fn r#get_sock_name(
34405        &self,
34406        ___deadline: zx::MonotonicInstant,
34407    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
34408        let _response = self
34409            .client
34410            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34411                BaseNetworkSocketGetSockNameResponse,
34412                fidl_fuchsia_posix::Errno,
34413            >>(
34414                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
34415            )?;
34416        Ok(_response.map(|x| x.addr))
34417    }
34418
34419    /// Retrieves the remote socket address.
34420    pub fn r#get_peer_name(
34421        &self,
34422        ___deadline: zx::MonotonicInstant,
34423    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
34424        let _response = self
34425            .client
34426            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34427                BaseNetworkSocketGetPeerNameResponse,
34428                fidl_fuchsia_posix::Errno,
34429            >>(
34430                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
34431            )?;
34432        Ok(_response.map(|x| x.addr))
34433    }
34434
34435    /// Shuts down part of the socket.
34436    pub fn r#shutdown(
34437        &self,
34438        mut mode: ShutdownMode,
34439        ___deadline: zx::MonotonicInstant,
34440    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
34441        let _response =
34442            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
34443                fidl::encoding::EmptyStruct,
34444                fidl_fuchsia_posix::Errno,
34445            >>(
34446                (mode,),
34447                0x247f38b6db68c336,
34448                fidl::encoding::DynamicFlags::empty(),
34449                ___deadline,
34450            )?;
34451        Ok(_response.map(|x| x))
34452    }
34453
34454    /// Set `SOL_IP` -> `IP_TOS`.
34455    pub fn r#set_ip_type_of_service(
34456        &self,
34457        mut value: u8,
34458        ___deadline: zx::MonotonicInstant,
34459    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
34460        let _response = self.client.send_query::<
34461            BaseNetworkSocketSetIpTypeOfServiceRequest,
34462            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34463        >(
34464            (value,),
34465            0x995c600475b6d46,
34466            fidl::encoding::DynamicFlags::empty(),
34467            ___deadline,
34468        )?;
34469        Ok(_response.map(|x| x))
34470    }
34471
34472    /// Get `SOL_IP` -> `IP_TOS`.
34473    pub fn r#get_ip_type_of_service(
34474        &self,
34475        ___deadline: zx::MonotonicInstant,
34476    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
34477        let _response = self
34478            .client
34479            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34480                BaseNetworkSocketGetIpTypeOfServiceResponse,
34481                fidl_fuchsia_posix::Errno,
34482            >>(
34483                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
34484            )?;
34485        Ok(_response.map(|x| x.value))
34486    }
34487
34488    /// Set `SOL_IP` -> `IP_TTL`.
34489    pub fn r#set_ip_ttl(
34490        &self,
34491        mut value: &OptionalUint8,
34492        ___deadline: zx::MonotonicInstant,
34493    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
34494        let _response =
34495            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
34496                fidl::encoding::EmptyStruct,
34497                fidl_fuchsia_posix::Errno,
34498            >>(
34499                (value,),
34500                0x29e2424b433ae1ef,
34501                fidl::encoding::DynamicFlags::empty(),
34502                ___deadline,
34503            )?;
34504        Ok(_response.map(|x| x))
34505    }
34506
34507    /// Get `SOL_IP` -> `IP_TTL`.
34508    pub fn r#get_ip_ttl(
34509        &self,
34510        ___deadline: zx::MonotonicInstant,
34511    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
34512        let _response = self
34513            .client
34514            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34515                BaseNetworkSocketGetIpTtlResponse,
34516                fidl_fuchsia_posix::Errno,
34517            >>(
34518                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
34519            )?;
34520        Ok(_response.map(|x| x.value))
34521    }
34522
34523    /// Set `SOL_IP` -> `IP_PKTINFO`.
34524    pub fn r#set_ip_packet_info(
34525        &self,
34526        mut value: bool,
34527        ___deadline: zx::MonotonicInstant,
34528    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
34529        let _response =
34530            self.client
34531                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
34532                    fidl::encoding::EmptyStruct,
34533                    fidl_fuchsia_posix::Errno,
34534                >>(
34535                    (value,),
34536                    0x392d16bee20c0e16,
34537                    fidl::encoding::DynamicFlags::empty(),
34538                    ___deadline,
34539                )?;
34540        Ok(_response.map(|x| x))
34541    }
34542
34543    /// Get `SOL_IP` -> `IP_PKTINFO`.
34544    pub fn r#get_ip_packet_info(
34545        &self,
34546        ___deadline: zx::MonotonicInstant,
34547    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
34548        let _response = self
34549            .client
34550            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34551                BaseNetworkSocketGetIpPacketInfoResponse,
34552                fidl_fuchsia_posix::Errno,
34553            >>(
34554                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
34555            )?;
34556        Ok(_response.map(|x| x.value))
34557    }
34558
34559    /// Set `SOL_IP` -> `IP_RECVTOS`.
34560    pub fn r#set_ip_receive_type_of_service(
34561        &self,
34562        mut value: bool,
34563        ___deadline: zx::MonotonicInstant,
34564    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
34565        let _response = self.client.send_query::<
34566            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
34567            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34568        >(
34569            (value,),
34570            0x6c4f6714995f84ef,
34571            fidl::encoding::DynamicFlags::empty(),
34572            ___deadline,
34573        )?;
34574        Ok(_response.map(|x| x))
34575    }
34576
34577    /// Get `SOL_IP` -> `IP_RECVTOS`.
34578    pub fn r#get_ip_receive_type_of_service(
34579        &self,
34580        ___deadline: zx::MonotonicInstant,
34581    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
34582        let _response = self
34583            .client
34584            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34585                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
34586                fidl_fuchsia_posix::Errno,
34587            >>(
34588                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
34589            )?;
34590        Ok(_response.map(|x| x.value))
34591    }
34592
34593    /// Set `SOL_IP` -> `IP_RECVTTL`.
34594    pub fn r#set_ip_receive_ttl(
34595        &self,
34596        mut value: bool,
34597        ___deadline: zx::MonotonicInstant,
34598    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
34599        let _response =
34600            self.client
34601                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
34602                    fidl::encoding::EmptyStruct,
34603                    fidl_fuchsia_posix::Errno,
34604                >>(
34605                    (value,),
34606                    0x46f15be0ce0ab82b,
34607                    fidl::encoding::DynamicFlags::empty(),
34608                    ___deadline,
34609                )?;
34610        Ok(_response.map(|x| x))
34611    }
34612
34613    /// Get `SOL_IP` -> `IP_RECVTTL`.
34614    pub fn r#get_ip_receive_ttl(
34615        &self,
34616        ___deadline: zx::MonotonicInstant,
34617    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
34618        let _response = self
34619            .client
34620            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34621                BaseNetworkSocketGetIpReceiveTtlResponse,
34622                fidl_fuchsia_posix::Errno,
34623            >>(
34624                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
34625            )?;
34626        Ok(_response.map(|x| x.value))
34627    }
34628
34629    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
34630    pub fn r#set_ip_multicast_interface(
34631        &self,
34632        mut iface: u64,
34633        mut address: &fidl_fuchsia_net::Ipv4Address,
34634        ___deadline: zx::MonotonicInstant,
34635    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
34636        let _response = self.client.send_query::<
34637            BaseNetworkSocketSetIpMulticastInterfaceRequest,
34638            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34639        >(
34640            (iface, address,),
34641            0x752fbfa9b12befe,
34642            fidl::encoding::DynamicFlags::empty(),
34643            ___deadline,
34644        )?;
34645        Ok(_response.map(|x| x))
34646    }
34647
34648    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
34649    pub fn r#get_ip_multicast_interface(
34650        &self,
34651        ___deadline: zx::MonotonicInstant,
34652    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
34653        let _response = self
34654            .client
34655            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34656                BaseNetworkSocketGetIpMulticastInterfaceResponse,
34657                fidl_fuchsia_posix::Errno,
34658            >>(
34659                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
34660            )?;
34661        Ok(_response.map(|x| x.value))
34662    }
34663
34664    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
34665    pub fn r#set_ip_multicast_ttl(
34666        &self,
34667        mut value: &OptionalUint8,
34668        ___deadline: zx::MonotonicInstant,
34669    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
34670        let _response =
34671            self.client
34672                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
34673                    fidl::encoding::EmptyStruct,
34674                    fidl_fuchsia_posix::Errno,
34675                >>(
34676                    (value,),
34677                    0x63134d53772916a1,
34678                    fidl::encoding::DynamicFlags::empty(),
34679                    ___deadline,
34680                )?;
34681        Ok(_response.map(|x| x))
34682    }
34683
34684    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
34685    pub fn r#get_ip_multicast_ttl(
34686        &self,
34687        ___deadline: zx::MonotonicInstant,
34688    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
34689        let _response = self
34690            .client
34691            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34692                BaseNetworkSocketGetIpMulticastTtlResponse,
34693                fidl_fuchsia_posix::Errno,
34694            >>(
34695                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
34696            )?;
34697        Ok(_response.map(|x| x.value))
34698    }
34699
34700    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
34701    pub fn r#set_ip_multicast_loopback(
34702        &self,
34703        mut value: bool,
34704        ___deadline: zx::MonotonicInstant,
34705    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
34706        let _response = self.client.send_query::<
34707            BaseNetworkSocketSetIpMulticastLoopbackRequest,
34708            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34709        >(
34710            (value,),
34711            0x20c55c11f00943ea,
34712            fidl::encoding::DynamicFlags::empty(),
34713            ___deadline,
34714        )?;
34715        Ok(_response.map(|x| x))
34716    }
34717
34718    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
34719    pub fn r#get_ip_multicast_loopback(
34720        &self,
34721        ___deadline: zx::MonotonicInstant,
34722    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
34723        let _response = self
34724            .client
34725            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34726                BaseNetworkSocketGetIpMulticastLoopbackResponse,
34727                fidl_fuchsia_posix::Errno,
34728            >>(
34729                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
34730            )?;
34731        Ok(_response.map(|x| x.value))
34732    }
34733
34734    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
34735    pub fn r#add_ip_membership(
34736        &self,
34737        mut membership: &IpMulticastMembership,
34738        ___deadline: zx::MonotonicInstant,
34739    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
34740        let _response =
34741            self.client
34742                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
34743                    fidl::encoding::EmptyStruct,
34744                    fidl_fuchsia_posix::Errno,
34745                >>(
34746                    (membership,),
34747                    0x76bc7df115a3b4d0,
34748                    fidl::encoding::DynamicFlags::empty(),
34749                    ___deadline,
34750                )?;
34751        Ok(_response.map(|x| x))
34752    }
34753
34754    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
34755    pub fn r#drop_ip_membership(
34756        &self,
34757        mut membership: &IpMulticastMembership,
34758        ___deadline: zx::MonotonicInstant,
34759    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
34760        let _response =
34761            self.client
34762                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
34763                    fidl::encoding::EmptyStruct,
34764                    fidl_fuchsia_posix::Errno,
34765                >>(
34766                    (membership,),
34767                    0x2888f3099188d03,
34768                    fidl::encoding::DynamicFlags::empty(),
34769                    ___deadline,
34770                )?;
34771        Ok(_response.map(|x| x))
34772    }
34773
34774    /// Set `SOL_IP` -> `IP_TRANSPARENT`
34775    pub fn r#set_ip_transparent(
34776        &self,
34777        mut value: bool,
34778        ___deadline: zx::MonotonicInstant,
34779    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
34780        let _response =
34781            self.client
34782                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
34783                    fidl::encoding::EmptyStruct,
34784                    fidl_fuchsia_posix::Errno,
34785                >>(
34786                    (value,),
34787                    0x1ae532b0c066e3a0,
34788                    fidl::encoding::DynamicFlags::empty(),
34789                    ___deadline,
34790                )?;
34791        Ok(_response.map(|x| x))
34792    }
34793
34794    /// Get `SOL_IP` -> `IP_TRANSPARENT`
34795    pub fn r#get_ip_transparent(
34796        &self,
34797        ___deadline: zx::MonotonicInstant,
34798    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
34799        let _response = self
34800            .client
34801            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34802                BaseNetworkSocketGetIpTransparentResponse,
34803                fidl_fuchsia_posix::Errno,
34804            >>(
34805                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
34806            )?;
34807        Ok(_response.map(|x| x.value))
34808    }
34809
34810    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
34811    pub fn r#set_ip_receive_original_destination_address(
34812        &self,
34813        mut value: bool,
34814        ___deadline: zx::MonotonicInstant,
34815    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
34816        let _response = self.client.send_query::<
34817            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
34818            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34819        >(
34820            (value,),
34821            0x4722b4ce52f7840,
34822            fidl::encoding::DynamicFlags::empty(),
34823            ___deadline,
34824        )?;
34825        Ok(_response.map(|x| x))
34826    }
34827
34828    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
34829    pub fn r#get_ip_receive_original_destination_address(
34830        &self,
34831        ___deadline: zx::MonotonicInstant,
34832    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
34833        let _response = self
34834            .client
34835            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34836                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
34837                fidl_fuchsia_posix::Errno,
34838            >>(
34839                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
34840            )?;
34841        Ok(_response.map(|x| x.value))
34842    }
34843
34844    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
34845    pub fn r#add_ipv6_membership(
34846        &self,
34847        mut membership: &Ipv6MulticastMembership,
34848        ___deadline: zx::MonotonicInstant,
34849    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
34850        let _response =
34851            self.client
34852                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
34853                    fidl::encoding::EmptyStruct,
34854                    fidl_fuchsia_posix::Errno,
34855                >>(
34856                    (membership,),
34857                    0x7c94727acb4ea4b3,
34858                    fidl::encoding::DynamicFlags::empty(),
34859                    ___deadline,
34860                )?;
34861        Ok(_response.map(|x| x))
34862    }
34863
34864    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
34865    pub fn r#drop_ipv6_membership(
34866        &self,
34867        mut membership: &Ipv6MulticastMembership,
34868        ___deadline: zx::MonotonicInstant,
34869    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
34870        let _response = self.client.send_query::<
34871            BaseNetworkSocketDropIpv6MembershipRequest,
34872            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34873        >(
34874            (membership,),
34875            0x42104c70ccaba304,
34876            fidl::encoding::DynamicFlags::empty(),
34877            ___deadline,
34878        )?;
34879        Ok(_response.map(|x| x))
34880    }
34881
34882    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
34883    pub fn r#set_ipv6_multicast_interface(
34884        &self,
34885        mut value: u64,
34886        ___deadline: zx::MonotonicInstant,
34887    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
34888        let _response = self.client.send_query::<
34889            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
34890            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34891        >(
34892            (value,),
34893            0x135f76db3774ab3b,
34894            fidl::encoding::DynamicFlags::empty(),
34895            ___deadline,
34896        )?;
34897        Ok(_response.map(|x| x))
34898    }
34899
34900    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
34901    pub fn r#get_ipv6_multicast_interface(
34902        &self,
34903        ___deadline: zx::MonotonicInstant,
34904    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
34905        let _response = self
34906            .client
34907            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34908                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
34909                fidl_fuchsia_posix::Errno,
34910            >>(
34911                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
34912            )?;
34913        Ok(_response.map(|x| x.value))
34914    }
34915
34916    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
34917    pub fn r#set_ipv6_unicast_hops(
34918        &self,
34919        mut value: &OptionalUint8,
34920        ___deadline: zx::MonotonicInstant,
34921    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
34922        let _response = self.client.send_query::<
34923            BaseNetworkSocketSetIpv6UnicastHopsRequest,
34924            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34925        >(
34926            (value,),
34927            0x157d51e98f462859,
34928            fidl::encoding::DynamicFlags::empty(),
34929            ___deadline,
34930        )?;
34931        Ok(_response.map(|x| x))
34932    }
34933
34934    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
34935    pub fn r#get_ipv6_unicast_hops(
34936        &self,
34937        ___deadline: zx::MonotonicInstant,
34938    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
34939        let _response = self
34940            .client
34941            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34942                BaseNetworkSocketGetIpv6UnicastHopsResponse,
34943                fidl_fuchsia_posix::Errno,
34944            >>(
34945                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
34946            )?;
34947        Ok(_response.map(|x| x.value))
34948    }
34949
34950    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
34951    pub fn r#set_ipv6_receive_hop_limit(
34952        &self,
34953        mut value: bool,
34954        ___deadline: zx::MonotonicInstant,
34955    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
34956        let _response = self.client.send_query::<
34957            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
34958            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34959        >(
34960            (value,),
34961            0x5c24808ed2e84a1e,
34962            fidl::encoding::DynamicFlags::empty(),
34963            ___deadline,
34964        )?;
34965        Ok(_response.map(|x| x))
34966    }
34967
34968    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
34969    pub fn r#get_ipv6_receive_hop_limit(
34970        &self,
34971        ___deadline: zx::MonotonicInstant,
34972    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
34973        let _response = self
34974            .client
34975            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
34976                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
34977                fidl_fuchsia_posix::Errno,
34978            >>(
34979                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
34980            )?;
34981        Ok(_response.map(|x| x.value))
34982    }
34983
34984    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
34985    pub fn r#set_ipv6_multicast_hops(
34986        &self,
34987        mut value: &OptionalUint8,
34988        ___deadline: zx::MonotonicInstant,
34989    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
34990        let _response = self.client.send_query::<
34991            BaseNetworkSocketSetIpv6MulticastHopsRequest,
34992            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
34993        >(
34994            (value,),
34995            0x25b9cd4d181f82c1,
34996            fidl::encoding::DynamicFlags::empty(),
34997            ___deadline,
34998        )?;
34999        Ok(_response.map(|x| x))
35000    }
35001
35002    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
35003    pub fn r#get_ipv6_multicast_hops(
35004        &self,
35005        ___deadline: zx::MonotonicInstant,
35006    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
35007        let _response = self
35008            .client
35009            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35010                BaseNetworkSocketGetIpv6MulticastHopsResponse,
35011                fidl_fuchsia_posix::Errno,
35012            >>(
35013                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
35014            )?;
35015        Ok(_response.map(|x| x.value))
35016    }
35017
35018    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
35019    pub fn r#set_ipv6_multicast_loopback(
35020        &self,
35021        mut value: bool,
35022        ___deadline: zx::MonotonicInstant,
35023    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
35024        let _response = self.client.send_query::<
35025            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
35026            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35027        >(
35028            (value,),
35029            0x55701c409ff41b40,
35030            fidl::encoding::DynamicFlags::empty(),
35031            ___deadline,
35032        )?;
35033        Ok(_response.map(|x| x))
35034    }
35035
35036    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
35037    pub fn r#get_ipv6_multicast_loopback(
35038        &self,
35039        ___deadline: zx::MonotonicInstant,
35040    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
35041        let _response = self
35042            .client
35043            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35044                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
35045                fidl_fuchsia_posix::Errno,
35046            >>(
35047                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
35048            )?;
35049        Ok(_response.map(|x| x.value))
35050    }
35051
35052    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
35053    pub fn r#set_ipv6_only(
35054        &self,
35055        mut value: bool,
35056        ___deadline: zx::MonotonicInstant,
35057    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
35058        let _response =
35059            self.client
35060                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
35061                    fidl::encoding::EmptyStruct,
35062                    fidl_fuchsia_posix::Errno,
35063                >>(
35064                    (value,),
35065                    0x4873f1364758cbba,
35066                    fidl::encoding::DynamicFlags::empty(),
35067                    ___deadline,
35068                )?;
35069        Ok(_response.map(|x| x))
35070    }
35071
35072    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
35073    pub fn r#get_ipv6_only(
35074        &self,
35075        ___deadline: zx::MonotonicInstant,
35076    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
35077        let _response = self
35078            .client
35079            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35080                BaseNetworkSocketGetIpv6OnlyResponse,
35081                fidl_fuchsia_posix::Errno,
35082            >>(
35083                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
35084            )?;
35085        Ok(_response.map(|x| x.value))
35086    }
35087
35088    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
35089    pub fn r#set_ipv6_receive_traffic_class(
35090        &self,
35091        mut value: bool,
35092        ___deadline: zx::MonotonicInstant,
35093    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
35094        let _response = self.client.send_query::<
35095            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
35096            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35097        >(
35098            (value,),
35099            0x58f07c8788d099a0,
35100            fidl::encoding::DynamicFlags::empty(),
35101            ___deadline,
35102        )?;
35103        Ok(_response.map(|x| x))
35104    }
35105
35106    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
35107    pub fn r#get_ipv6_receive_traffic_class(
35108        &self,
35109        ___deadline: zx::MonotonicInstant,
35110    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
35111        let _response = self
35112            .client
35113            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35114                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
35115                fidl_fuchsia_posix::Errno,
35116            >>(
35117                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
35118            )?;
35119        Ok(_response.map(|x| x.value))
35120    }
35121
35122    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
35123    pub fn r#set_ipv6_traffic_class(
35124        &self,
35125        mut value: &OptionalUint8,
35126        ___deadline: zx::MonotonicInstant,
35127    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
35128        let _response = self.client.send_query::<
35129            BaseNetworkSocketSetIpv6TrafficClassRequest,
35130            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35131        >(
35132            (value,),
35133            0x6af077800c5a0b4f,
35134            fidl::encoding::DynamicFlags::empty(),
35135            ___deadline,
35136        )?;
35137        Ok(_response.map(|x| x))
35138    }
35139
35140    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
35141    pub fn r#get_ipv6_traffic_class(
35142        &self,
35143        ___deadline: zx::MonotonicInstant,
35144    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
35145        let _response = self
35146            .client
35147            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35148                BaseNetworkSocketGetIpv6TrafficClassResponse,
35149                fidl_fuchsia_posix::Errno,
35150            >>(
35151                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
35152            )?;
35153        Ok(_response.map(|x| x.value))
35154    }
35155
35156    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
35157    pub fn r#set_ipv6_receive_packet_info(
35158        &self,
35159        mut value: bool,
35160        ___deadline: zx::MonotonicInstant,
35161    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
35162        let _response = self.client.send_query::<
35163            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
35164            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
35165        >(
35166            (value,),
35167            0x19259775b1a92768,
35168            fidl::encoding::DynamicFlags::empty(),
35169            ___deadline,
35170        )?;
35171        Ok(_response.map(|x| x))
35172    }
35173
35174    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
35175    pub fn r#get_ipv6_receive_packet_info(
35176        &self,
35177        ___deadline: zx::MonotonicInstant,
35178    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
35179        let _response = self
35180            .client
35181            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35182                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
35183                fidl_fuchsia_posix::Errno,
35184            >>(
35185                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
35186            )?;
35187        Ok(_response.map(|x| x.value))
35188    }
35189
35190    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
35191    pub fn r#get_original_destination(
35192        &self,
35193        ___deadline: zx::MonotonicInstant,
35194    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
35195        let _response = self
35196            .client
35197            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35198                BaseNetworkSocketGetOriginalDestinationResponse,
35199                fidl_fuchsia_posix::Errno,
35200            >>(
35201                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
35202            )?;
35203        Ok(_response.map(|x| x.value))
35204    }
35205
35206    /// Retrieves creation information from the socket.
35207    ///
35208    /// - response `domain` the socket's associated domain.
35209    /// - response `proto` the socket's associated protocol.
35210    pub fn r#get_info(
35211        &self,
35212        ___deadline: zx::MonotonicInstant,
35213    ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
35214        let _response = self
35215            .client
35216            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35217                BaseDatagramSocketGetInfoResponse,
35218                fidl_fuchsia_posix::Errno,
35219            >>(
35220                (), 0x48aa0a1f6a32d2ed, fidl::encoding::DynamicFlags::empty(), ___deadline
35221            )?;
35222        Ok(_response.map(|x| (x.domain, x.proto)))
35223    }
35224
35225    pub fn r#describe(
35226        &self,
35227        ___deadline: zx::MonotonicInstant,
35228    ) -> Result<DatagramSocketDescribeResponse, fidl::Error> {
35229        let _response = self
35230            .client
35231            .send_query::<fidl::encoding::EmptyPayload, DatagramSocketDescribeResponse>(
35232                (),
35233                0xbf1e2f0a86601f3,
35234                fidl::encoding::DynamicFlags::empty(),
35235                ___deadline,
35236            )?;
35237        Ok(_response)
35238    }
35239
35240    /// Validates that data can be sent.
35241    ///
35242    /// + request `args` the requested disposition of data to be sent.
35243    /// - response the constraints sent data must satisfy.
35244    /// * error the error code indicating the reason for validation failure.
35245    pub fn r#send_msg_preflight(
35246        &self,
35247        mut payload: &DatagramSocketSendMsgPreflightRequest,
35248        ___deadline: zx::MonotonicInstant,
35249    ) -> Result<DatagramSocketSendMsgPreflightResult, fidl::Error> {
35250        let _response = self
35251            .client
35252            .send_query::<DatagramSocketSendMsgPreflightRequest, fidl::encoding::ResultType<
35253                DatagramSocketSendMsgPreflightResponse,
35254                fidl_fuchsia_posix::Errno,
35255            >>(
35256                payload, 0x5362e668e777248a, fidl::encoding::DynamicFlags::empty(), ___deadline
35257            )?;
35258        Ok(_response.map(|x| x))
35259    }
35260
35261    /// Returns the set of requested control messages.
35262    ///
35263    /// - response the set of currently requested control messages.
35264    pub fn r#recv_msg_postflight(
35265        &self,
35266        ___deadline: zx::MonotonicInstant,
35267    ) -> Result<DatagramSocketRecvMsgPostflightResult, fidl::Error> {
35268        let _response = self
35269            .client
35270            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
35271                DatagramSocketRecvMsgPostflightResponse,
35272                fidl_fuchsia_posix::Errno,
35273            >>(
35274                (), 0x1a7cdeca5f3eb8e2, fidl::encoding::DynamicFlags::empty(), ___deadline
35275            )?;
35276        Ok(_response.map(|x| x))
35277    }
35278}
35279
35280#[cfg(target_os = "fuchsia")]
35281impl From<DatagramSocketSynchronousProxy> for zx::Handle {
35282    fn from(value: DatagramSocketSynchronousProxy) -> Self {
35283        value.into_channel().into()
35284    }
35285}
35286
35287#[cfg(target_os = "fuchsia")]
35288impl From<fidl::Channel> for DatagramSocketSynchronousProxy {
35289    fn from(value: fidl::Channel) -> Self {
35290        Self::new(value)
35291    }
35292}
35293
35294#[cfg(target_os = "fuchsia")]
35295impl fidl::endpoints::FromClient for DatagramSocketSynchronousProxy {
35296    type Protocol = DatagramSocketMarker;
35297
35298    fn from_client(value: fidl::endpoints::ClientEnd<DatagramSocketMarker>) -> Self {
35299        Self::new(value.into_channel())
35300    }
35301}
35302
35303#[derive(Debug, Clone)]
35304pub struct DatagramSocketProxy {
35305    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
35306}
35307
35308impl fidl::endpoints::Proxy for DatagramSocketProxy {
35309    type Protocol = DatagramSocketMarker;
35310
35311    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
35312        Self::new(inner)
35313    }
35314
35315    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
35316        self.client.into_channel().map_err(|client| Self { client })
35317    }
35318
35319    fn as_channel(&self) -> &::fidl::AsyncChannel {
35320        self.client.as_channel()
35321    }
35322}
35323
35324impl DatagramSocketProxy {
35325    /// Create a new Proxy for fuchsia.posix.socket/DatagramSocket.
35326    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
35327        let protocol_name = <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
35328        Self { client: fidl::client::Client::new(channel, protocol_name) }
35329    }
35330
35331    /// Get a Stream of events from the remote end of the protocol.
35332    ///
35333    /// # Panics
35334    ///
35335    /// Panics if the event stream was already taken.
35336    pub fn take_event_stream(&self) -> DatagramSocketEventStream {
35337        DatagramSocketEventStream { event_receiver: self.client.take_event_receiver() }
35338    }
35339
35340    pub fn r#clone(
35341        &self,
35342        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
35343    ) -> Result<(), fidl::Error> {
35344        DatagramSocketProxyInterface::r#clone(self, request)
35345    }
35346
35347    /// Terminates the connection.
35348    ///
35349    /// After calling `Close`, the client must not send any other requests.
35350    ///
35351    /// Servers, after sending the status response, should close the connection
35352    /// regardless of status and without sending an epitaph.
35353    ///
35354    /// Closing the client end of the channel should be semantically equivalent
35355    /// to calling `Close` without knowing when the close has completed or its
35356    /// status.
35357    pub fn r#close(
35358        &self,
35359    ) -> fidl::client::QueryResponseFut<
35360        fidl_fuchsia_unknown::CloseableCloseResult,
35361        fidl::encoding::DefaultFuchsiaResourceDialect,
35362    > {
35363        DatagramSocketProxyInterface::r#close(self)
35364    }
35365
35366    pub fn r#query(
35367        &self,
35368    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
35369    {
35370        DatagramSocketProxyInterface::r#query(self)
35371    }
35372
35373    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
35374    pub fn r#set_reuse_address(
35375        &self,
35376        mut value: bool,
35377    ) -> fidl::client::QueryResponseFut<
35378        BaseSocketSetReuseAddressResult,
35379        fidl::encoding::DefaultFuchsiaResourceDialect,
35380    > {
35381        DatagramSocketProxyInterface::r#set_reuse_address(self, value)
35382    }
35383
35384    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
35385    pub fn r#get_reuse_address(
35386        &self,
35387    ) -> fidl::client::QueryResponseFut<
35388        BaseSocketGetReuseAddressResult,
35389        fidl::encoding::DefaultFuchsiaResourceDialect,
35390    > {
35391        DatagramSocketProxyInterface::r#get_reuse_address(self)
35392    }
35393
35394    /// Get `SOL_SOCKET` -> `SO_ERROR`.
35395    /// Returns the last error if there is an error set on the socket.
35396    pub fn r#get_error(
35397        &self,
35398    ) -> fidl::client::QueryResponseFut<
35399        BaseSocketGetErrorResult,
35400        fidl::encoding::DefaultFuchsiaResourceDialect,
35401    > {
35402        DatagramSocketProxyInterface::r#get_error(self)
35403    }
35404
35405    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
35406    pub fn r#set_broadcast(
35407        &self,
35408        mut value: bool,
35409    ) -> fidl::client::QueryResponseFut<
35410        BaseSocketSetBroadcastResult,
35411        fidl::encoding::DefaultFuchsiaResourceDialect,
35412    > {
35413        DatagramSocketProxyInterface::r#set_broadcast(self, value)
35414    }
35415
35416    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
35417    pub fn r#get_broadcast(
35418        &self,
35419    ) -> fidl::client::QueryResponseFut<
35420        BaseSocketGetBroadcastResult,
35421        fidl::encoding::DefaultFuchsiaResourceDialect,
35422    > {
35423        DatagramSocketProxyInterface::r#get_broadcast(self)
35424    }
35425
35426    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
35427    pub fn r#set_send_buffer(
35428        &self,
35429        mut value_bytes: u64,
35430    ) -> fidl::client::QueryResponseFut<
35431        BaseSocketSetSendBufferResult,
35432        fidl::encoding::DefaultFuchsiaResourceDialect,
35433    > {
35434        DatagramSocketProxyInterface::r#set_send_buffer(self, value_bytes)
35435    }
35436
35437    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
35438    pub fn r#get_send_buffer(
35439        &self,
35440    ) -> fidl::client::QueryResponseFut<
35441        BaseSocketGetSendBufferResult,
35442        fidl::encoding::DefaultFuchsiaResourceDialect,
35443    > {
35444        DatagramSocketProxyInterface::r#get_send_buffer(self)
35445    }
35446
35447    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
35448    pub fn r#set_receive_buffer(
35449        &self,
35450        mut value_bytes: u64,
35451    ) -> fidl::client::QueryResponseFut<
35452        BaseSocketSetReceiveBufferResult,
35453        fidl::encoding::DefaultFuchsiaResourceDialect,
35454    > {
35455        DatagramSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
35456    }
35457
35458    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
35459    pub fn r#get_receive_buffer(
35460        &self,
35461    ) -> fidl::client::QueryResponseFut<
35462        BaseSocketGetReceiveBufferResult,
35463        fidl::encoding::DefaultFuchsiaResourceDialect,
35464    > {
35465        DatagramSocketProxyInterface::r#get_receive_buffer(self)
35466    }
35467
35468    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
35469    pub fn r#set_keep_alive(
35470        &self,
35471        mut value: bool,
35472    ) -> fidl::client::QueryResponseFut<
35473        BaseSocketSetKeepAliveResult,
35474        fidl::encoding::DefaultFuchsiaResourceDialect,
35475    > {
35476        DatagramSocketProxyInterface::r#set_keep_alive(self, value)
35477    }
35478
35479    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
35480    pub fn r#get_keep_alive(
35481        &self,
35482    ) -> fidl::client::QueryResponseFut<
35483        BaseSocketGetKeepAliveResult,
35484        fidl::encoding::DefaultFuchsiaResourceDialect,
35485    > {
35486        DatagramSocketProxyInterface::r#get_keep_alive(self)
35487    }
35488
35489    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
35490    pub fn r#set_out_of_band_inline(
35491        &self,
35492        mut value: bool,
35493    ) -> fidl::client::QueryResponseFut<
35494        BaseSocketSetOutOfBandInlineResult,
35495        fidl::encoding::DefaultFuchsiaResourceDialect,
35496    > {
35497        DatagramSocketProxyInterface::r#set_out_of_band_inline(self, value)
35498    }
35499
35500    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
35501    pub fn r#get_out_of_band_inline(
35502        &self,
35503    ) -> fidl::client::QueryResponseFut<
35504        BaseSocketGetOutOfBandInlineResult,
35505        fidl::encoding::DefaultFuchsiaResourceDialect,
35506    > {
35507        DatagramSocketProxyInterface::r#get_out_of_band_inline(self)
35508    }
35509
35510    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
35511    pub fn r#set_no_check(
35512        &self,
35513        mut value: bool,
35514    ) -> fidl::client::QueryResponseFut<
35515        BaseSocketSetNoCheckResult,
35516        fidl::encoding::DefaultFuchsiaResourceDialect,
35517    > {
35518        DatagramSocketProxyInterface::r#set_no_check(self, value)
35519    }
35520
35521    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
35522    pub fn r#get_no_check(
35523        &self,
35524    ) -> fidl::client::QueryResponseFut<
35525        BaseSocketGetNoCheckResult,
35526        fidl::encoding::DefaultFuchsiaResourceDialect,
35527    > {
35528        DatagramSocketProxyInterface::r#get_no_check(self)
35529    }
35530
35531    /// Set `SOL_SOCKET` -> `SO_LINGER`.
35532    pub fn r#set_linger(
35533        &self,
35534        mut linger: bool,
35535        mut length_secs: u32,
35536    ) -> fidl::client::QueryResponseFut<
35537        BaseSocketSetLingerResult,
35538        fidl::encoding::DefaultFuchsiaResourceDialect,
35539    > {
35540        DatagramSocketProxyInterface::r#set_linger(self, linger, length_secs)
35541    }
35542
35543    /// Get `SOL_SOCKET` -> `SO_LINGER`.
35544    pub fn r#get_linger(
35545        &self,
35546    ) -> fidl::client::QueryResponseFut<
35547        BaseSocketGetLingerResult,
35548        fidl::encoding::DefaultFuchsiaResourceDialect,
35549    > {
35550        DatagramSocketProxyInterface::r#get_linger(self)
35551    }
35552
35553    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
35554    pub fn r#set_reuse_port(
35555        &self,
35556        mut value: bool,
35557    ) -> fidl::client::QueryResponseFut<
35558        BaseSocketSetReusePortResult,
35559        fidl::encoding::DefaultFuchsiaResourceDialect,
35560    > {
35561        DatagramSocketProxyInterface::r#set_reuse_port(self, value)
35562    }
35563
35564    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
35565    pub fn r#get_reuse_port(
35566        &self,
35567    ) -> fidl::client::QueryResponseFut<
35568        BaseSocketGetReusePortResult,
35569        fidl::encoding::DefaultFuchsiaResourceDialect,
35570    > {
35571        DatagramSocketProxyInterface::r#get_reuse_port(self)
35572    }
35573
35574    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
35575    pub fn r#get_accept_conn(
35576        &self,
35577    ) -> fidl::client::QueryResponseFut<
35578        BaseSocketGetAcceptConnResult,
35579        fidl::encoding::DefaultFuchsiaResourceDialect,
35580    > {
35581        DatagramSocketProxyInterface::r#get_accept_conn(self)
35582    }
35583
35584    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
35585    pub fn r#set_bind_to_device(
35586        &self,
35587        mut value: &str,
35588    ) -> fidl::client::QueryResponseFut<
35589        BaseSocketSetBindToDeviceResult,
35590        fidl::encoding::DefaultFuchsiaResourceDialect,
35591    > {
35592        DatagramSocketProxyInterface::r#set_bind_to_device(self, value)
35593    }
35594
35595    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
35596    pub fn r#get_bind_to_device(
35597        &self,
35598    ) -> fidl::client::QueryResponseFut<
35599        BaseSocketGetBindToDeviceResult,
35600        fidl::encoding::DefaultFuchsiaResourceDialect,
35601    > {
35602        DatagramSocketProxyInterface::r#get_bind_to_device(self)
35603    }
35604
35605    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
35606    /// If `value` is 0, this clears the bound interface.
35607    pub fn r#set_bind_to_interface_index(
35608        &self,
35609        mut value: u64,
35610    ) -> fidl::client::QueryResponseFut<
35611        BaseSocketSetBindToInterfaceIndexResult,
35612        fidl::encoding::DefaultFuchsiaResourceDialect,
35613    > {
35614        DatagramSocketProxyInterface::r#set_bind_to_interface_index(self, value)
35615    }
35616
35617    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
35618    pub fn r#get_bind_to_interface_index(
35619        &self,
35620    ) -> fidl::client::QueryResponseFut<
35621        BaseSocketGetBindToInterfaceIndexResult,
35622        fidl::encoding::DefaultFuchsiaResourceDialect,
35623    > {
35624        DatagramSocketProxyInterface::r#get_bind_to_interface_index(self)
35625    }
35626
35627    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
35628    pub fn r#set_timestamp(
35629        &self,
35630        mut value: TimestampOption,
35631    ) -> fidl::client::QueryResponseFut<
35632        BaseSocketSetTimestampResult,
35633        fidl::encoding::DefaultFuchsiaResourceDialect,
35634    > {
35635        DatagramSocketProxyInterface::r#set_timestamp(self, value)
35636    }
35637
35638    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
35639    pub fn r#get_timestamp(
35640        &self,
35641    ) -> fidl::client::QueryResponseFut<
35642        BaseSocketGetTimestampResult,
35643        fidl::encoding::DefaultFuchsiaResourceDialect,
35644    > {
35645        DatagramSocketProxyInterface::r#get_timestamp(self)
35646    }
35647
35648    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
35649    /// unlike the standard SO_MARK, this API has multiple mark domains and each
35650    /// mark can be set independently in each domain.
35651    pub fn r#set_mark(
35652        &self,
35653        mut domain: fidl_fuchsia_net::MarkDomain,
35654        mut mark: &OptionalUint32,
35655    ) -> fidl::client::QueryResponseFut<
35656        BaseSocketSetMarkResult,
35657        fidl::encoding::DefaultFuchsiaResourceDialect,
35658    > {
35659        DatagramSocketProxyInterface::r#set_mark(self, domain, mark)
35660    }
35661
35662    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
35663    /// unlike the standard SO_MARK, this API has multiple mark domains and each
35664    /// mark can be retrieved independently in each domain.
35665    pub fn r#get_mark(
35666        &self,
35667        mut domain: fidl_fuchsia_net::MarkDomain,
35668    ) -> fidl::client::QueryResponseFut<
35669        BaseSocketGetMarkResult,
35670        fidl::encoding::DefaultFuchsiaResourceDialect,
35671    > {
35672        DatagramSocketProxyInterface::r#get_mark(self, domain)
35673    }
35674
35675    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
35676    pub fn r#get_cookie(
35677        &self,
35678    ) -> fidl::client::QueryResponseFut<
35679        BaseSocketGetCookieResult,
35680        fidl::encoding::DefaultFuchsiaResourceDialect,
35681    > {
35682        DatagramSocketProxyInterface::r#get_cookie(self)
35683    }
35684
35685    /// Sets the local address used for the socket.
35686    pub fn r#bind(
35687        &self,
35688        mut addr: &fidl_fuchsia_net::SocketAddress,
35689    ) -> fidl::client::QueryResponseFut<
35690        BaseNetworkSocketBindResult,
35691        fidl::encoding::DefaultFuchsiaResourceDialect,
35692    > {
35693        DatagramSocketProxyInterface::r#bind(self, addr)
35694    }
35695
35696    /// Initiates a connection to a remote address.
35697    pub fn r#connect(
35698        &self,
35699        mut addr: &fidl_fuchsia_net::SocketAddress,
35700    ) -> fidl::client::QueryResponseFut<
35701        BaseNetworkSocketConnectResult,
35702        fidl::encoding::DefaultFuchsiaResourceDialect,
35703    > {
35704        DatagramSocketProxyInterface::r#connect(self, addr)
35705    }
35706
35707    /// Clears connection information from this socket.
35708    pub fn r#disconnect(
35709        &self,
35710    ) -> fidl::client::QueryResponseFut<
35711        BaseNetworkSocketDisconnectResult,
35712        fidl::encoding::DefaultFuchsiaResourceDialect,
35713    > {
35714        DatagramSocketProxyInterface::r#disconnect(self)
35715    }
35716
35717    /// Retrieves the local socket address.
35718    pub fn r#get_sock_name(
35719        &self,
35720    ) -> fidl::client::QueryResponseFut<
35721        BaseNetworkSocketGetSockNameResult,
35722        fidl::encoding::DefaultFuchsiaResourceDialect,
35723    > {
35724        DatagramSocketProxyInterface::r#get_sock_name(self)
35725    }
35726
35727    /// Retrieves the remote socket address.
35728    pub fn r#get_peer_name(
35729        &self,
35730    ) -> fidl::client::QueryResponseFut<
35731        BaseNetworkSocketGetPeerNameResult,
35732        fidl::encoding::DefaultFuchsiaResourceDialect,
35733    > {
35734        DatagramSocketProxyInterface::r#get_peer_name(self)
35735    }
35736
35737    /// Shuts down part of the socket.
35738    pub fn r#shutdown(
35739        &self,
35740        mut mode: ShutdownMode,
35741    ) -> fidl::client::QueryResponseFut<
35742        BaseNetworkSocketShutdownResult,
35743        fidl::encoding::DefaultFuchsiaResourceDialect,
35744    > {
35745        DatagramSocketProxyInterface::r#shutdown(self, mode)
35746    }
35747
35748    /// Set `SOL_IP` -> `IP_TOS`.
35749    pub fn r#set_ip_type_of_service(
35750        &self,
35751        mut value: u8,
35752    ) -> fidl::client::QueryResponseFut<
35753        BaseNetworkSocketSetIpTypeOfServiceResult,
35754        fidl::encoding::DefaultFuchsiaResourceDialect,
35755    > {
35756        DatagramSocketProxyInterface::r#set_ip_type_of_service(self, value)
35757    }
35758
35759    /// Get `SOL_IP` -> `IP_TOS`.
35760    pub fn r#get_ip_type_of_service(
35761        &self,
35762    ) -> fidl::client::QueryResponseFut<
35763        BaseNetworkSocketGetIpTypeOfServiceResult,
35764        fidl::encoding::DefaultFuchsiaResourceDialect,
35765    > {
35766        DatagramSocketProxyInterface::r#get_ip_type_of_service(self)
35767    }
35768
35769    /// Set `SOL_IP` -> `IP_TTL`.
35770    pub fn r#set_ip_ttl(
35771        &self,
35772        mut value: &OptionalUint8,
35773    ) -> fidl::client::QueryResponseFut<
35774        BaseNetworkSocketSetIpTtlResult,
35775        fidl::encoding::DefaultFuchsiaResourceDialect,
35776    > {
35777        DatagramSocketProxyInterface::r#set_ip_ttl(self, value)
35778    }
35779
35780    /// Get `SOL_IP` -> `IP_TTL`.
35781    pub fn r#get_ip_ttl(
35782        &self,
35783    ) -> fidl::client::QueryResponseFut<
35784        BaseNetworkSocketGetIpTtlResult,
35785        fidl::encoding::DefaultFuchsiaResourceDialect,
35786    > {
35787        DatagramSocketProxyInterface::r#get_ip_ttl(self)
35788    }
35789
35790    /// Set `SOL_IP` -> `IP_PKTINFO`.
35791    pub fn r#set_ip_packet_info(
35792        &self,
35793        mut value: bool,
35794    ) -> fidl::client::QueryResponseFut<
35795        BaseNetworkSocketSetIpPacketInfoResult,
35796        fidl::encoding::DefaultFuchsiaResourceDialect,
35797    > {
35798        DatagramSocketProxyInterface::r#set_ip_packet_info(self, value)
35799    }
35800
35801    /// Get `SOL_IP` -> `IP_PKTINFO`.
35802    pub fn r#get_ip_packet_info(
35803        &self,
35804    ) -> fidl::client::QueryResponseFut<
35805        BaseNetworkSocketGetIpPacketInfoResult,
35806        fidl::encoding::DefaultFuchsiaResourceDialect,
35807    > {
35808        DatagramSocketProxyInterface::r#get_ip_packet_info(self)
35809    }
35810
35811    /// Set `SOL_IP` -> `IP_RECVTOS`.
35812    pub fn r#set_ip_receive_type_of_service(
35813        &self,
35814        mut value: bool,
35815    ) -> fidl::client::QueryResponseFut<
35816        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
35817        fidl::encoding::DefaultFuchsiaResourceDialect,
35818    > {
35819        DatagramSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
35820    }
35821
35822    /// Get `SOL_IP` -> `IP_RECVTOS`.
35823    pub fn r#get_ip_receive_type_of_service(
35824        &self,
35825    ) -> fidl::client::QueryResponseFut<
35826        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
35827        fidl::encoding::DefaultFuchsiaResourceDialect,
35828    > {
35829        DatagramSocketProxyInterface::r#get_ip_receive_type_of_service(self)
35830    }
35831
35832    /// Set `SOL_IP` -> `IP_RECVTTL`.
35833    pub fn r#set_ip_receive_ttl(
35834        &self,
35835        mut value: bool,
35836    ) -> fidl::client::QueryResponseFut<
35837        BaseNetworkSocketSetIpReceiveTtlResult,
35838        fidl::encoding::DefaultFuchsiaResourceDialect,
35839    > {
35840        DatagramSocketProxyInterface::r#set_ip_receive_ttl(self, value)
35841    }
35842
35843    /// Get `SOL_IP` -> `IP_RECVTTL`.
35844    pub fn r#get_ip_receive_ttl(
35845        &self,
35846    ) -> fidl::client::QueryResponseFut<
35847        BaseNetworkSocketGetIpReceiveTtlResult,
35848        fidl::encoding::DefaultFuchsiaResourceDialect,
35849    > {
35850        DatagramSocketProxyInterface::r#get_ip_receive_ttl(self)
35851    }
35852
35853    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
35854    pub fn r#set_ip_multicast_interface(
35855        &self,
35856        mut iface: u64,
35857        mut address: &fidl_fuchsia_net::Ipv4Address,
35858    ) -> fidl::client::QueryResponseFut<
35859        BaseNetworkSocketSetIpMulticastInterfaceResult,
35860        fidl::encoding::DefaultFuchsiaResourceDialect,
35861    > {
35862        DatagramSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
35863    }
35864
35865    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
35866    pub fn r#get_ip_multicast_interface(
35867        &self,
35868    ) -> fidl::client::QueryResponseFut<
35869        BaseNetworkSocketGetIpMulticastInterfaceResult,
35870        fidl::encoding::DefaultFuchsiaResourceDialect,
35871    > {
35872        DatagramSocketProxyInterface::r#get_ip_multicast_interface(self)
35873    }
35874
35875    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
35876    pub fn r#set_ip_multicast_ttl(
35877        &self,
35878        mut value: &OptionalUint8,
35879    ) -> fidl::client::QueryResponseFut<
35880        BaseNetworkSocketSetIpMulticastTtlResult,
35881        fidl::encoding::DefaultFuchsiaResourceDialect,
35882    > {
35883        DatagramSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
35884    }
35885
35886    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
35887    pub fn r#get_ip_multicast_ttl(
35888        &self,
35889    ) -> fidl::client::QueryResponseFut<
35890        BaseNetworkSocketGetIpMulticastTtlResult,
35891        fidl::encoding::DefaultFuchsiaResourceDialect,
35892    > {
35893        DatagramSocketProxyInterface::r#get_ip_multicast_ttl(self)
35894    }
35895
35896    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
35897    pub fn r#set_ip_multicast_loopback(
35898        &self,
35899        mut value: bool,
35900    ) -> fidl::client::QueryResponseFut<
35901        BaseNetworkSocketSetIpMulticastLoopbackResult,
35902        fidl::encoding::DefaultFuchsiaResourceDialect,
35903    > {
35904        DatagramSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
35905    }
35906
35907    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
35908    pub fn r#get_ip_multicast_loopback(
35909        &self,
35910    ) -> fidl::client::QueryResponseFut<
35911        BaseNetworkSocketGetIpMulticastLoopbackResult,
35912        fidl::encoding::DefaultFuchsiaResourceDialect,
35913    > {
35914        DatagramSocketProxyInterface::r#get_ip_multicast_loopback(self)
35915    }
35916
35917    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
35918    pub fn r#add_ip_membership(
35919        &self,
35920        mut membership: &IpMulticastMembership,
35921    ) -> fidl::client::QueryResponseFut<
35922        BaseNetworkSocketAddIpMembershipResult,
35923        fidl::encoding::DefaultFuchsiaResourceDialect,
35924    > {
35925        DatagramSocketProxyInterface::r#add_ip_membership(self, membership)
35926    }
35927
35928    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
35929    pub fn r#drop_ip_membership(
35930        &self,
35931        mut membership: &IpMulticastMembership,
35932    ) -> fidl::client::QueryResponseFut<
35933        BaseNetworkSocketDropIpMembershipResult,
35934        fidl::encoding::DefaultFuchsiaResourceDialect,
35935    > {
35936        DatagramSocketProxyInterface::r#drop_ip_membership(self, membership)
35937    }
35938
35939    /// Set `SOL_IP` -> `IP_TRANSPARENT`
35940    pub fn r#set_ip_transparent(
35941        &self,
35942        mut value: bool,
35943    ) -> fidl::client::QueryResponseFut<
35944        BaseNetworkSocketSetIpTransparentResult,
35945        fidl::encoding::DefaultFuchsiaResourceDialect,
35946    > {
35947        DatagramSocketProxyInterface::r#set_ip_transparent(self, value)
35948    }
35949
35950    /// Get `SOL_IP` -> `IP_TRANSPARENT`
35951    pub fn r#get_ip_transparent(
35952        &self,
35953    ) -> fidl::client::QueryResponseFut<
35954        BaseNetworkSocketGetIpTransparentResult,
35955        fidl::encoding::DefaultFuchsiaResourceDialect,
35956    > {
35957        DatagramSocketProxyInterface::r#get_ip_transparent(self)
35958    }
35959
35960    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
35961    pub fn r#set_ip_receive_original_destination_address(
35962        &self,
35963        mut value: bool,
35964    ) -> fidl::client::QueryResponseFut<
35965        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
35966        fidl::encoding::DefaultFuchsiaResourceDialect,
35967    > {
35968        DatagramSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
35969    }
35970
35971    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
35972    pub fn r#get_ip_receive_original_destination_address(
35973        &self,
35974    ) -> fidl::client::QueryResponseFut<
35975        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
35976        fidl::encoding::DefaultFuchsiaResourceDialect,
35977    > {
35978        DatagramSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
35979    }
35980
35981    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
35982    pub fn r#add_ipv6_membership(
35983        &self,
35984        mut membership: &Ipv6MulticastMembership,
35985    ) -> fidl::client::QueryResponseFut<
35986        BaseNetworkSocketAddIpv6MembershipResult,
35987        fidl::encoding::DefaultFuchsiaResourceDialect,
35988    > {
35989        DatagramSocketProxyInterface::r#add_ipv6_membership(self, membership)
35990    }
35991
35992    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
35993    pub fn r#drop_ipv6_membership(
35994        &self,
35995        mut membership: &Ipv6MulticastMembership,
35996    ) -> fidl::client::QueryResponseFut<
35997        BaseNetworkSocketDropIpv6MembershipResult,
35998        fidl::encoding::DefaultFuchsiaResourceDialect,
35999    > {
36000        DatagramSocketProxyInterface::r#drop_ipv6_membership(self, membership)
36001    }
36002
36003    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
36004    pub fn r#set_ipv6_multicast_interface(
36005        &self,
36006        mut value: u64,
36007    ) -> fidl::client::QueryResponseFut<
36008        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
36009        fidl::encoding::DefaultFuchsiaResourceDialect,
36010    > {
36011        DatagramSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
36012    }
36013
36014    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
36015    pub fn r#get_ipv6_multicast_interface(
36016        &self,
36017    ) -> fidl::client::QueryResponseFut<
36018        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
36019        fidl::encoding::DefaultFuchsiaResourceDialect,
36020    > {
36021        DatagramSocketProxyInterface::r#get_ipv6_multicast_interface(self)
36022    }
36023
36024    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
36025    pub fn r#set_ipv6_unicast_hops(
36026        &self,
36027        mut value: &OptionalUint8,
36028    ) -> fidl::client::QueryResponseFut<
36029        BaseNetworkSocketSetIpv6UnicastHopsResult,
36030        fidl::encoding::DefaultFuchsiaResourceDialect,
36031    > {
36032        DatagramSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
36033    }
36034
36035    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
36036    pub fn r#get_ipv6_unicast_hops(
36037        &self,
36038    ) -> fidl::client::QueryResponseFut<
36039        BaseNetworkSocketGetIpv6UnicastHopsResult,
36040        fidl::encoding::DefaultFuchsiaResourceDialect,
36041    > {
36042        DatagramSocketProxyInterface::r#get_ipv6_unicast_hops(self)
36043    }
36044
36045    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
36046    pub fn r#set_ipv6_receive_hop_limit(
36047        &self,
36048        mut value: bool,
36049    ) -> fidl::client::QueryResponseFut<
36050        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
36051        fidl::encoding::DefaultFuchsiaResourceDialect,
36052    > {
36053        DatagramSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
36054    }
36055
36056    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
36057    pub fn r#get_ipv6_receive_hop_limit(
36058        &self,
36059    ) -> fidl::client::QueryResponseFut<
36060        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
36061        fidl::encoding::DefaultFuchsiaResourceDialect,
36062    > {
36063        DatagramSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
36064    }
36065
36066    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
36067    pub fn r#set_ipv6_multicast_hops(
36068        &self,
36069        mut value: &OptionalUint8,
36070    ) -> fidl::client::QueryResponseFut<
36071        BaseNetworkSocketSetIpv6MulticastHopsResult,
36072        fidl::encoding::DefaultFuchsiaResourceDialect,
36073    > {
36074        DatagramSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
36075    }
36076
36077    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
36078    pub fn r#get_ipv6_multicast_hops(
36079        &self,
36080    ) -> fidl::client::QueryResponseFut<
36081        BaseNetworkSocketGetIpv6MulticastHopsResult,
36082        fidl::encoding::DefaultFuchsiaResourceDialect,
36083    > {
36084        DatagramSocketProxyInterface::r#get_ipv6_multicast_hops(self)
36085    }
36086
36087    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
36088    pub fn r#set_ipv6_multicast_loopback(
36089        &self,
36090        mut value: bool,
36091    ) -> fidl::client::QueryResponseFut<
36092        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
36093        fidl::encoding::DefaultFuchsiaResourceDialect,
36094    > {
36095        DatagramSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
36096    }
36097
36098    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
36099    pub fn r#get_ipv6_multicast_loopback(
36100        &self,
36101    ) -> fidl::client::QueryResponseFut<
36102        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
36103        fidl::encoding::DefaultFuchsiaResourceDialect,
36104    > {
36105        DatagramSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
36106    }
36107
36108    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
36109    pub fn r#set_ipv6_only(
36110        &self,
36111        mut value: bool,
36112    ) -> fidl::client::QueryResponseFut<
36113        BaseNetworkSocketSetIpv6OnlyResult,
36114        fidl::encoding::DefaultFuchsiaResourceDialect,
36115    > {
36116        DatagramSocketProxyInterface::r#set_ipv6_only(self, value)
36117    }
36118
36119    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
36120    pub fn r#get_ipv6_only(
36121        &self,
36122    ) -> fidl::client::QueryResponseFut<
36123        BaseNetworkSocketGetIpv6OnlyResult,
36124        fidl::encoding::DefaultFuchsiaResourceDialect,
36125    > {
36126        DatagramSocketProxyInterface::r#get_ipv6_only(self)
36127    }
36128
36129    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
36130    pub fn r#set_ipv6_receive_traffic_class(
36131        &self,
36132        mut value: bool,
36133    ) -> fidl::client::QueryResponseFut<
36134        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
36135        fidl::encoding::DefaultFuchsiaResourceDialect,
36136    > {
36137        DatagramSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
36138    }
36139
36140    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
36141    pub fn r#get_ipv6_receive_traffic_class(
36142        &self,
36143    ) -> fidl::client::QueryResponseFut<
36144        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
36145        fidl::encoding::DefaultFuchsiaResourceDialect,
36146    > {
36147        DatagramSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
36148    }
36149
36150    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
36151    pub fn r#set_ipv6_traffic_class(
36152        &self,
36153        mut value: &OptionalUint8,
36154    ) -> fidl::client::QueryResponseFut<
36155        BaseNetworkSocketSetIpv6TrafficClassResult,
36156        fidl::encoding::DefaultFuchsiaResourceDialect,
36157    > {
36158        DatagramSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
36159    }
36160
36161    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
36162    pub fn r#get_ipv6_traffic_class(
36163        &self,
36164    ) -> fidl::client::QueryResponseFut<
36165        BaseNetworkSocketGetIpv6TrafficClassResult,
36166        fidl::encoding::DefaultFuchsiaResourceDialect,
36167    > {
36168        DatagramSocketProxyInterface::r#get_ipv6_traffic_class(self)
36169    }
36170
36171    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
36172    pub fn r#set_ipv6_receive_packet_info(
36173        &self,
36174        mut value: bool,
36175    ) -> fidl::client::QueryResponseFut<
36176        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
36177        fidl::encoding::DefaultFuchsiaResourceDialect,
36178    > {
36179        DatagramSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
36180    }
36181
36182    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
36183    pub fn r#get_ipv6_receive_packet_info(
36184        &self,
36185    ) -> fidl::client::QueryResponseFut<
36186        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
36187        fidl::encoding::DefaultFuchsiaResourceDialect,
36188    > {
36189        DatagramSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
36190    }
36191
36192    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
36193    pub fn r#get_original_destination(
36194        &self,
36195    ) -> fidl::client::QueryResponseFut<
36196        BaseNetworkSocketGetOriginalDestinationResult,
36197        fidl::encoding::DefaultFuchsiaResourceDialect,
36198    > {
36199        DatagramSocketProxyInterface::r#get_original_destination(self)
36200    }
36201
36202    /// Retrieves creation information from the socket.
36203    ///
36204    /// - response `domain` the socket's associated domain.
36205    /// - response `proto` the socket's associated protocol.
36206    pub fn r#get_info(
36207        &self,
36208    ) -> fidl::client::QueryResponseFut<
36209        BaseDatagramSocketGetInfoResult,
36210        fidl::encoding::DefaultFuchsiaResourceDialect,
36211    > {
36212        DatagramSocketProxyInterface::r#get_info(self)
36213    }
36214
36215    pub fn r#describe(
36216        &self,
36217    ) -> fidl::client::QueryResponseFut<
36218        DatagramSocketDescribeResponse,
36219        fidl::encoding::DefaultFuchsiaResourceDialect,
36220    > {
36221        DatagramSocketProxyInterface::r#describe(self)
36222    }
36223
36224    /// Validates that data can be sent.
36225    ///
36226    /// + request `args` the requested disposition of data to be sent.
36227    /// - response the constraints sent data must satisfy.
36228    /// * error the error code indicating the reason for validation failure.
36229    pub fn r#send_msg_preflight(
36230        &self,
36231        mut payload: &DatagramSocketSendMsgPreflightRequest,
36232    ) -> fidl::client::QueryResponseFut<
36233        DatagramSocketSendMsgPreflightResult,
36234        fidl::encoding::DefaultFuchsiaResourceDialect,
36235    > {
36236        DatagramSocketProxyInterface::r#send_msg_preflight(self, payload)
36237    }
36238
36239    /// Returns the set of requested control messages.
36240    ///
36241    /// - response the set of currently requested control messages.
36242    pub fn r#recv_msg_postflight(
36243        &self,
36244    ) -> fidl::client::QueryResponseFut<
36245        DatagramSocketRecvMsgPostflightResult,
36246        fidl::encoding::DefaultFuchsiaResourceDialect,
36247    > {
36248        DatagramSocketProxyInterface::r#recv_msg_postflight(self)
36249    }
36250}
36251
36252impl DatagramSocketProxyInterface for DatagramSocketProxy {
36253    fn r#clone(
36254        &self,
36255        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
36256    ) -> Result<(), fidl::Error> {
36257        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
36258            (request,),
36259            0x20d8a7aba2168a79,
36260            fidl::encoding::DynamicFlags::empty(),
36261        )
36262    }
36263
36264    type CloseResponseFut = fidl::client::QueryResponseFut<
36265        fidl_fuchsia_unknown::CloseableCloseResult,
36266        fidl::encoding::DefaultFuchsiaResourceDialect,
36267    >;
36268    fn r#close(&self) -> Self::CloseResponseFut {
36269        fn _decode(
36270            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36271        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
36272            let _response = fidl::client::decode_transaction_body::<
36273                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
36274                fidl::encoding::DefaultFuchsiaResourceDialect,
36275                0x5ac5d459ad7f657e,
36276            >(_buf?)?;
36277            Ok(_response.map(|x| x))
36278        }
36279        self.client.send_query_and_decode::<
36280            fidl::encoding::EmptyPayload,
36281            fidl_fuchsia_unknown::CloseableCloseResult,
36282        >(
36283            (),
36284            0x5ac5d459ad7f657e,
36285            fidl::encoding::DynamicFlags::empty(),
36286            _decode,
36287        )
36288    }
36289
36290    type QueryResponseFut =
36291        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
36292    fn r#query(&self) -> Self::QueryResponseFut {
36293        fn _decode(
36294            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36295        ) -> Result<Vec<u8>, fidl::Error> {
36296            let _response = fidl::client::decode_transaction_body::<
36297                fidl_fuchsia_unknown::QueryableQueryResponse,
36298                fidl::encoding::DefaultFuchsiaResourceDialect,
36299                0x2658edee9decfc06,
36300            >(_buf?)?;
36301            Ok(_response.protocol)
36302        }
36303        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
36304            (),
36305            0x2658edee9decfc06,
36306            fidl::encoding::DynamicFlags::empty(),
36307            _decode,
36308        )
36309    }
36310
36311    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
36312        BaseSocketSetReuseAddressResult,
36313        fidl::encoding::DefaultFuchsiaResourceDialect,
36314    >;
36315    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
36316        fn _decode(
36317            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36318        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
36319            let _response = fidl::client::decode_transaction_body::<
36320                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36321                fidl::encoding::DefaultFuchsiaResourceDialect,
36322                0x1fd74ee8b9a4a876,
36323            >(_buf?)?;
36324            Ok(_response.map(|x| x))
36325        }
36326        self.client.send_query_and_decode::<
36327            BaseSocketSetReuseAddressRequest,
36328            BaseSocketSetReuseAddressResult,
36329        >(
36330            (value,),
36331            0x1fd74ee8b9a4a876,
36332            fidl::encoding::DynamicFlags::empty(),
36333            _decode,
36334        )
36335    }
36336
36337    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
36338        BaseSocketGetReuseAddressResult,
36339        fidl::encoding::DefaultFuchsiaResourceDialect,
36340    >;
36341    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
36342        fn _decode(
36343            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36344        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
36345            let _response = fidl::client::decode_transaction_body::<
36346                fidl::encoding::ResultType<
36347                    BaseSocketGetReuseAddressResponse,
36348                    fidl_fuchsia_posix::Errno,
36349                >,
36350                fidl::encoding::DefaultFuchsiaResourceDialect,
36351                0x67b7206b8d1bc0a5,
36352            >(_buf?)?;
36353            Ok(_response.map(|x| x.value))
36354        }
36355        self.client
36356            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
36357                (),
36358                0x67b7206b8d1bc0a5,
36359                fidl::encoding::DynamicFlags::empty(),
36360                _decode,
36361            )
36362    }
36363
36364    type GetErrorResponseFut = fidl::client::QueryResponseFut<
36365        BaseSocketGetErrorResult,
36366        fidl::encoding::DefaultFuchsiaResourceDialect,
36367    >;
36368    fn r#get_error(&self) -> Self::GetErrorResponseFut {
36369        fn _decode(
36370            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36371        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
36372            let _response = fidl::client::decode_transaction_body::<
36373                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36374                fidl::encoding::DefaultFuchsiaResourceDialect,
36375                0x5aad39b33e5f6ebb,
36376            >(_buf?)?;
36377            Ok(_response.map(|x| x))
36378        }
36379        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
36380            (),
36381            0x5aad39b33e5f6ebb,
36382            fidl::encoding::DynamicFlags::empty(),
36383            _decode,
36384        )
36385    }
36386
36387    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
36388        BaseSocketSetBroadcastResult,
36389        fidl::encoding::DefaultFuchsiaResourceDialect,
36390    >;
36391    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
36392        fn _decode(
36393            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36394        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
36395            let _response = fidl::client::decode_transaction_body::<
36396                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36397                fidl::encoding::DefaultFuchsiaResourceDialect,
36398                0x6023e081ce3cd947,
36399            >(_buf?)?;
36400            Ok(_response.map(|x| x))
36401        }
36402        self.client
36403            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
36404                (value,),
36405                0x6023e081ce3cd947,
36406                fidl::encoding::DynamicFlags::empty(),
36407                _decode,
36408            )
36409    }
36410
36411    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
36412        BaseSocketGetBroadcastResult,
36413        fidl::encoding::DefaultFuchsiaResourceDialect,
36414    >;
36415    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
36416        fn _decode(
36417            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36418        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
36419            let _response = fidl::client::decode_transaction_body::<
36420                fidl::encoding::ResultType<
36421                    BaseSocketGetBroadcastResponse,
36422                    fidl_fuchsia_posix::Errno,
36423                >,
36424                fidl::encoding::DefaultFuchsiaResourceDialect,
36425                0x68796fc556f9780d,
36426            >(_buf?)?;
36427            Ok(_response.map(|x| x.value))
36428        }
36429        self.client
36430            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
36431                (),
36432                0x68796fc556f9780d,
36433                fidl::encoding::DynamicFlags::empty(),
36434                _decode,
36435            )
36436    }
36437
36438    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
36439        BaseSocketSetSendBufferResult,
36440        fidl::encoding::DefaultFuchsiaResourceDialect,
36441    >;
36442    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
36443        fn _decode(
36444            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36445        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
36446            let _response = fidl::client::decode_transaction_body::<
36447                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36448                fidl::encoding::DefaultFuchsiaResourceDialect,
36449                0x756eac32d73a7a70,
36450            >(_buf?)?;
36451            Ok(_response.map(|x| x))
36452        }
36453        self.client
36454            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
36455                (value_bytes,),
36456                0x756eac32d73a7a70,
36457                fidl::encoding::DynamicFlags::empty(),
36458                _decode,
36459            )
36460    }
36461
36462    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
36463        BaseSocketGetSendBufferResult,
36464        fidl::encoding::DefaultFuchsiaResourceDialect,
36465    >;
36466    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
36467        fn _decode(
36468            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36469        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
36470            let _response = fidl::client::decode_transaction_body::<
36471                fidl::encoding::ResultType<
36472                    BaseSocketGetSendBufferResponse,
36473                    fidl_fuchsia_posix::Errno,
36474                >,
36475                fidl::encoding::DefaultFuchsiaResourceDialect,
36476                0x78a52fd9c7b2410b,
36477            >(_buf?)?;
36478            Ok(_response.map(|x| x.value_bytes))
36479        }
36480        self.client
36481            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
36482                (),
36483                0x78a52fd9c7b2410b,
36484                fidl::encoding::DynamicFlags::empty(),
36485                _decode,
36486            )
36487    }
36488
36489    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
36490        BaseSocketSetReceiveBufferResult,
36491        fidl::encoding::DefaultFuchsiaResourceDialect,
36492    >;
36493    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
36494        fn _decode(
36495            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36496        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
36497            let _response = fidl::client::decode_transaction_body::<
36498                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36499                fidl::encoding::DefaultFuchsiaResourceDialect,
36500                0x6b0cf2f1919c7001,
36501            >(_buf?)?;
36502            Ok(_response.map(|x| x))
36503        }
36504        self.client.send_query_and_decode::<
36505            BaseSocketSetReceiveBufferRequest,
36506            BaseSocketSetReceiveBufferResult,
36507        >(
36508            (value_bytes,),
36509            0x6b0cf2f1919c7001,
36510            fidl::encoding::DynamicFlags::empty(),
36511            _decode,
36512        )
36513    }
36514
36515    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
36516        BaseSocketGetReceiveBufferResult,
36517        fidl::encoding::DefaultFuchsiaResourceDialect,
36518    >;
36519    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
36520        fn _decode(
36521            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36522        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
36523            let _response = fidl::client::decode_transaction_body::<
36524                fidl::encoding::ResultType<
36525                    BaseSocketGetReceiveBufferResponse,
36526                    fidl_fuchsia_posix::Errno,
36527                >,
36528                fidl::encoding::DefaultFuchsiaResourceDialect,
36529                0x14c1a4b64f709e5c,
36530            >(_buf?)?;
36531            Ok(_response.map(|x| x.value_bytes))
36532        }
36533        self.client.send_query_and_decode::<
36534            fidl::encoding::EmptyPayload,
36535            BaseSocketGetReceiveBufferResult,
36536        >(
36537            (),
36538            0x14c1a4b64f709e5c,
36539            fidl::encoding::DynamicFlags::empty(),
36540            _decode,
36541        )
36542    }
36543
36544    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
36545        BaseSocketSetKeepAliveResult,
36546        fidl::encoding::DefaultFuchsiaResourceDialect,
36547    >;
36548    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
36549        fn _decode(
36550            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36551        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
36552            let _response = fidl::client::decode_transaction_body::<
36553                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36554                fidl::encoding::DefaultFuchsiaResourceDialect,
36555                0x572df8f0b920d2c7,
36556            >(_buf?)?;
36557            Ok(_response.map(|x| x))
36558        }
36559        self.client
36560            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
36561                (value,),
36562                0x572df8f0b920d2c7,
36563                fidl::encoding::DynamicFlags::empty(),
36564                _decode,
36565            )
36566    }
36567
36568    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
36569        BaseSocketGetKeepAliveResult,
36570        fidl::encoding::DefaultFuchsiaResourceDialect,
36571    >;
36572    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
36573        fn _decode(
36574            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36575        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
36576            let _response = fidl::client::decode_transaction_body::<
36577                fidl::encoding::ResultType<
36578                    BaseSocketGetKeepAliveResponse,
36579                    fidl_fuchsia_posix::Errno,
36580                >,
36581                fidl::encoding::DefaultFuchsiaResourceDialect,
36582                0x2dd29d3215f2c9d2,
36583            >(_buf?)?;
36584            Ok(_response.map(|x| x.value))
36585        }
36586        self.client
36587            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
36588                (),
36589                0x2dd29d3215f2c9d2,
36590                fidl::encoding::DynamicFlags::empty(),
36591                _decode,
36592            )
36593    }
36594
36595    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
36596        BaseSocketSetOutOfBandInlineResult,
36597        fidl::encoding::DefaultFuchsiaResourceDialect,
36598    >;
36599    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
36600        fn _decode(
36601            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36602        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
36603            let _response = fidl::client::decode_transaction_body::<
36604                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36605                fidl::encoding::DefaultFuchsiaResourceDialect,
36606                0x3ecb49968bee439,
36607            >(_buf?)?;
36608            Ok(_response.map(|x| x))
36609        }
36610        self.client.send_query_and_decode::<
36611            BaseSocketSetOutOfBandInlineRequest,
36612            BaseSocketSetOutOfBandInlineResult,
36613        >(
36614            (value,),
36615            0x3ecb49968bee439,
36616            fidl::encoding::DynamicFlags::empty(),
36617            _decode,
36618        )
36619    }
36620
36621    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
36622        BaseSocketGetOutOfBandInlineResult,
36623        fidl::encoding::DefaultFuchsiaResourceDialect,
36624    >;
36625    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
36626        fn _decode(
36627            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36628        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
36629            let _response = fidl::client::decode_transaction_body::<
36630                fidl::encoding::ResultType<
36631                    BaseSocketGetOutOfBandInlineResponse,
36632                    fidl_fuchsia_posix::Errno,
36633                >,
36634                fidl::encoding::DefaultFuchsiaResourceDialect,
36635                0x348c1ab3aeca1745,
36636            >(_buf?)?;
36637            Ok(_response.map(|x| x.value))
36638        }
36639        self.client.send_query_and_decode::<
36640            fidl::encoding::EmptyPayload,
36641            BaseSocketGetOutOfBandInlineResult,
36642        >(
36643            (),
36644            0x348c1ab3aeca1745,
36645            fidl::encoding::DynamicFlags::empty(),
36646            _decode,
36647        )
36648    }
36649
36650    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
36651        BaseSocketSetNoCheckResult,
36652        fidl::encoding::DefaultFuchsiaResourceDialect,
36653    >;
36654    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
36655        fn _decode(
36656            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36657        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
36658            let _response = fidl::client::decode_transaction_body::<
36659                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36660                fidl::encoding::DefaultFuchsiaResourceDialect,
36661                0x6bbf00c53a4c78c2,
36662            >(_buf?)?;
36663            Ok(_response.map(|x| x))
36664        }
36665        self.client
36666            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
36667                (value,),
36668                0x6bbf00c53a4c78c2,
36669                fidl::encoding::DynamicFlags::empty(),
36670                _decode,
36671            )
36672    }
36673
36674    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
36675        BaseSocketGetNoCheckResult,
36676        fidl::encoding::DefaultFuchsiaResourceDialect,
36677    >;
36678    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
36679        fn _decode(
36680            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36681        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
36682            let _response = fidl::client::decode_transaction_body::<
36683                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
36684                fidl::encoding::DefaultFuchsiaResourceDialect,
36685                0x2cd4249286417694,
36686            >(_buf?)?;
36687            Ok(_response.map(|x| x.value))
36688        }
36689        self.client
36690            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
36691                (),
36692                0x2cd4249286417694,
36693                fidl::encoding::DynamicFlags::empty(),
36694                _decode,
36695            )
36696    }
36697
36698    type SetLingerResponseFut = fidl::client::QueryResponseFut<
36699        BaseSocketSetLingerResult,
36700        fidl::encoding::DefaultFuchsiaResourceDialect,
36701    >;
36702    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
36703        fn _decode(
36704            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36705        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
36706            let _response = fidl::client::decode_transaction_body::<
36707                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36708                fidl::encoding::DefaultFuchsiaResourceDialect,
36709                0x45386351246e998e,
36710            >(_buf?)?;
36711            Ok(_response.map(|x| x))
36712        }
36713        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
36714            (linger, length_secs),
36715            0x45386351246e998e,
36716            fidl::encoding::DynamicFlags::empty(),
36717            _decode,
36718        )
36719    }
36720
36721    type GetLingerResponseFut = fidl::client::QueryResponseFut<
36722        BaseSocketGetLingerResult,
36723        fidl::encoding::DefaultFuchsiaResourceDialect,
36724    >;
36725    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
36726        fn _decode(
36727            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36728        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
36729            let _response = fidl::client::decode_transaction_body::<
36730                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
36731                fidl::encoding::DefaultFuchsiaResourceDialect,
36732                0x48eb20fc5ccb0e45,
36733            >(_buf?)?;
36734            Ok(_response.map(|x| (x.linger, x.length_secs)))
36735        }
36736        self.client
36737            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
36738                (),
36739                0x48eb20fc5ccb0e45,
36740                fidl::encoding::DynamicFlags::empty(),
36741                _decode,
36742            )
36743    }
36744
36745    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
36746        BaseSocketSetReusePortResult,
36747        fidl::encoding::DefaultFuchsiaResourceDialect,
36748    >;
36749    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
36750        fn _decode(
36751            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36752        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
36753            let _response = fidl::client::decode_transaction_body::<
36754                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36755                fidl::encoding::DefaultFuchsiaResourceDialect,
36756                0x24dd3e5cb36d9ccb,
36757            >(_buf?)?;
36758            Ok(_response.map(|x| x))
36759        }
36760        self.client
36761            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
36762                (value,),
36763                0x24dd3e5cb36d9ccb,
36764                fidl::encoding::DynamicFlags::empty(),
36765                _decode,
36766            )
36767    }
36768
36769    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
36770        BaseSocketGetReusePortResult,
36771        fidl::encoding::DefaultFuchsiaResourceDialect,
36772    >;
36773    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
36774        fn _decode(
36775            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36776        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
36777            let _response = fidl::client::decode_transaction_body::<
36778                fidl::encoding::ResultType<
36779                    BaseSocketGetReusePortResponse,
36780                    fidl_fuchsia_posix::Errno,
36781                >,
36782                fidl::encoding::DefaultFuchsiaResourceDialect,
36783                0x7a112c1ab54ff828,
36784            >(_buf?)?;
36785            Ok(_response.map(|x| x.value))
36786        }
36787        self.client
36788            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
36789                (),
36790                0x7a112c1ab54ff828,
36791                fidl::encoding::DynamicFlags::empty(),
36792                _decode,
36793            )
36794    }
36795
36796    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
36797        BaseSocketGetAcceptConnResult,
36798        fidl::encoding::DefaultFuchsiaResourceDialect,
36799    >;
36800    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
36801        fn _decode(
36802            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36803        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
36804            let _response = fidl::client::decode_transaction_body::<
36805                fidl::encoding::ResultType<
36806                    BaseSocketGetAcceptConnResponse,
36807                    fidl_fuchsia_posix::Errno,
36808                >,
36809                fidl::encoding::DefaultFuchsiaResourceDialect,
36810                0x67ce6db6c2ec8966,
36811            >(_buf?)?;
36812            Ok(_response.map(|x| x.value))
36813        }
36814        self.client
36815            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
36816                (),
36817                0x67ce6db6c2ec8966,
36818                fidl::encoding::DynamicFlags::empty(),
36819                _decode,
36820            )
36821    }
36822
36823    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
36824        BaseSocketSetBindToDeviceResult,
36825        fidl::encoding::DefaultFuchsiaResourceDialect,
36826    >;
36827    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
36828        fn _decode(
36829            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36830        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
36831            let _response = fidl::client::decode_transaction_body::<
36832                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36833                fidl::encoding::DefaultFuchsiaResourceDialect,
36834                0x2118b483f28aafc4,
36835            >(_buf?)?;
36836            Ok(_response.map(|x| x))
36837        }
36838        self.client.send_query_and_decode::<
36839            BaseSocketSetBindToDeviceRequest,
36840            BaseSocketSetBindToDeviceResult,
36841        >(
36842            (value,),
36843            0x2118b483f28aafc4,
36844            fidl::encoding::DynamicFlags::empty(),
36845            _decode,
36846        )
36847    }
36848
36849    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
36850        BaseSocketGetBindToDeviceResult,
36851        fidl::encoding::DefaultFuchsiaResourceDialect,
36852    >;
36853    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
36854        fn _decode(
36855            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36856        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
36857            let _response = fidl::client::decode_transaction_body::<
36858                fidl::encoding::ResultType<
36859                    BaseSocketGetBindToDeviceResponse,
36860                    fidl_fuchsia_posix::Errno,
36861                >,
36862                fidl::encoding::DefaultFuchsiaResourceDialect,
36863                0x1ab1fbf0ef7906c8,
36864            >(_buf?)?;
36865            Ok(_response.map(|x| x.value))
36866        }
36867        self.client
36868            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
36869                (),
36870                0x1ab1fbf0ef7906c8,
36871                fidl::encoding::DynamicFlags::empty(),
36872                _decode,
36873            )
36874    }
36875
36876    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
36877        BaseSocketSetBindToInterfaceIndexResult,
36878        fidl::encoding::DefaultFuchsiaResourceDialect,
36879    >;
36880    fn r#set_bind_to_interface_index(
36881        &self,
36882        mut value: u64,
36883    ) -> Self::SetBindToInterfaceIndexResponseFut {
36884        fn _decode(
36885            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36886        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
36887            let _response = fidl::client::decode_transaction_body::<
36888                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36889                fidl::encoding::DefaultFuchsiaResourceDialect,
36890                0x6e387a0def00821,
36891            >(_buf?)?;
36892            Ok(_response.map(|x| x))
36893        }
36894        self.client.send_query_and_decode::<
36895            BaseSocketSetBindToInterfaceIndexRequest,
36896            BaseSocketSetBindToInterfaceIndexResult,
36897        >(
36898            (value,),
36899            0x6e387a0def00821,
36900            fidl::encoding::DynamicFlags::empty(),
36901            _decode,
36902        )
36903    }
36904
36905    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
36906        BaseSocketGetBindToInterfaceIndexResult,
36907        fidl::encoding::DefaultFuchsiaResourceDialect,
36908    >;
36909    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
36910        fn _decode(
36911            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36912        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
36913            let _response = fidl::client::decode_transaction_body::<
36914                fidl::encoding::ResultType<
36915                    BaseSocketGetBindToInterfaceIndexResponse,
36916                    fidl_fuchsia_posix::Errno,
36917                >,
36918                fidl::encoding::DefaultFuchsiaResourceDialect,
36919                0x59c31dd3e3078295,
36920            >(_buf?)?;
36921            Ok(_response.map(|x| x.value))
36922        }
36923        self.client.send_query_and_decode::<
36924            fidl::encoding::EmptyPayload,
36925            BaseSocketGetBindToInterfaceIndexResult,
36926        >(
36927            (),
36928            0x59c31dd3e3078295,
36929            fidl::encoding::DynamicFlags::empty(),
36930            _decode,
36931        )
36932    }
36933
36934    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
36935        BaseSocketSetTimestampResult,
36936        fidl::encoding::DefaultFuchsiaResourceDialect,
36937    >;
36938    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
36939        fn _decode(
36940            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36941        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
36942            let _response = fidl::client::decode_transaction_body::<
36943                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36944                fidl::encoding::DefaultFuchsiaResourceDialect,
36945                0x285d6516c263d839,
36946            >(_buf?)?;
36947            Ok(_response.map(|x| x))
36948        }
36949        self.client
36950            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
36951                (value,),
36952                0x285d6516c263d839,
36953                fidl::encoding::DynamicFlags::empty(),
36954                _decode,
36955            )
36956    }
36957
36958    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
36959        BaseSocketGetTimestampResult,
36960        fidl::encoding::DefaultFuchsiaResourceDialect,
36961    >;
36962    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
36963        fn _decode(
36964            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36965        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
36966            let _response = fidl::client::decode_transaction_body::<
36967                fidl::encoding::ResultType<
36968                    BaseSocketGetTimestampResponse,
36969                    fidl_fuchsia_posix::Errno,
36970                >,
36971                fidl::encoding::DefaultFuchsiaResourceDialect,
36972                0x49f2fffbbcc2bd27,
36973            >(_buf?)?;
36974            Ok(_response.map(|x| x.value))
36975        }
36976        self.client
36977            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
36978                (),
36979                0x49f2fffbbcc2bd27,
36980                fidl::encoding::DynamicFlags::empty(),
36981                _decode,
36982            )
36983    }
36984
36985    type SetMarkResponseFut = fidl::client::QueryResponseFut<
36986        BaseSocketSetMarkResult,
36987        fidl::encoding::DefaultFuchsiaResourceDialect,
36988    >;
36989    fn r#set_mark(
36990        &self,
36991        mut domain: fidl_fuchsia_net::MarkDomain,
36992        mut mark: &OptionalUint32,
36993    ) -> Self::SetMarkResponseFut {
36994        fn _decode(
36995            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
36996        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
36997            let _response = fidl::client::decode_transaction_body::<
36998                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
36999                fidl::encoding::DefaultFuchsiaResourceDialect,
37000                0x6ead6de09f653236,
37001            >(_buf?)?;
37002            Ok(_response.map(|x| x))
37003        }
37004        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
37005            (domain, mark),
37006            0x6ead6de09f653236,
37007            fidl::encoding::DynamicFlags::empty(),
37008            _decode,
37009        )
37010    }
37011
37012    type GetMarkResponseFut = fidl::client::QueryResponseFut<
37013        BaseSocketGetMarkResult,
37014        fidl::encoding::DefaultFuchsiaResourceDialect,
37015    >;
37016    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
37017        fn _decode(
37018            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37019        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
37020            let _response = fidl::client::decode_transaction_body::<
37021                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
37022                fidl::encoding::DefaultFuchsiaResourceDialect,
37023                0x57a2752c61d93d47,
37024            >(_buf?)?;
37025            Ok(_response.map(|x| x.mark))
37026        }
37027        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
37028            (domain,),
37029            0x57a2752c61d93d47,
37030            fidl::encoding::DynamicFlags::empty(),
37031            _decode,
37032        )
37033    }
37034
37035    type GetCookieResponseFut = fidl::client::QueryResponseFut<
37036        BaseSocketGetCookieResult,
37037        fidl::encoding::DefaultFuchsiaResourceDialect,
37038    >;
37039    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
37040        fn _decode(
37041            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37042        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
37043            let _response = fidl::client::decode_transaction_body::<
37044                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
37045                fidl::encoding::DefaultFuchsiaResourceDialect,
37046                0x2c2f47fd8f924e52,
37047            >(_buf?)?;
37048            Ok(_response.map(|x| x.value))
37049        }
37050        self.client
37051            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
37052                (),
37053                0x2c2f47fd8f924e52,
37054                fidl::encoding::DynamicFlags::empty(),
37055                _decode,
37056            )
37057    }
37058
37059    type BindResponseFut = fidl::client::QueryResponseFut<
37060        BaseNetworkSocketBindResult,
37061        fidl::encoding::DefaultFuchsiaResourceDialect,
37062    >;
37063    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
37064        fn _decode(
37065            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37066        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
37067            let _response = fidl::client::decode_transaction_body::<
37068                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37069                fidl::encoding::DefaultFuchsiaResourceDialect,
37070                0x4bc6400ae92125d,
37071            >(_buf?)?;
37072            Ok(_response.map(|x| x))
37073        }
37074        self.client
37075            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
37076                (addr,),
37077                0x4bc6400ae92125d,
37078                fidl::encoding::DynamicFlags::empty(),
37079                _decode,
37080            )
37081    }
37082
37083    type ConnectResponseFut = fidl::client::QueryResponseFut<
37084        BaseNetworkSocketConnectResult,
37085        fidl::encoding::DefaultFuchsiaResourceDialect,
37086    >;
37087    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
37088        fn _decode(
37089            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37090        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
37091            let _response = fidl::client::decode_transaction_body::<
37092                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37093                fidl::encoding::DefaultFuchsiaResourceDialect,
37094                0x5f05f19bfdd38871,
37095            >(_buf?)?;
37096            Ok(_response.map(|x| x))
37097        }
37098        self.client.send_query_and_decode::<
37099            BaseNetworkSocketConnectRequest,
37100            BaseNetworkSocketConnectResult,
37101        >(
37102            (addr,),
37103            0x5f05f19bfdd38871,
37104            fidl::encoding::DynamicFlags::empty(),
37105            _decode,
37106        )
37107    }
37108
37109    type DisconnectResponseFut = fidl::client::QueryResponseFut<
37110        BaseNetworkSocketDisconnectResult,
37111        fidl::encoding::DefaultFuchsiaResourceDialect,
37112    >;
37113    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
37114        fn _decode(
37115            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37116        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
37117            let _response = fidl::client::decode_transaction_body::<
37118                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37119                fidl::encoding::DefaultFuchsiaResourceDialect,
37120                0x74e63b91f7b29b2,
37121            >(_buf?)?;
37122            Ok(_response.map(|x| x))
37123        }
37124        self.client.send_query_and_decode::<
37125            fidl::encoding::EmptyPayload,
37126            BaseNetworkSocketDisconnectResult,
37127        >(
37128            (),
37129            0x74e63b91f7b29b2,
37130            fidl::encoding::DynamicFlags::empty(),
37131            _decode,
37132        )
37133    }
37134
37135    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
37136        BaseNetworkSocketGetSockNameResult,
37137        fidl::encoding::DefaultFuchsiaResourceDialect,
37138    >;
37139    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
37140        fn _decode(
37141            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37142        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
37143            let _response = fidl::client::decode_transaction_body::<
37144                fidl::encoding::ResultType<
37145                    BaseNetworkSocketGetSockNameResponse,
37146                    fidl_fuchsia_posix::Errno,
37147                >,
37148                fidl::encoding::DefaultFuchsiaResourceDialect,
37149                0x475f23f84a1a4f85,
37150            >(_buf?)?;
37151            Ok(_response.map(|x| x.addr))
37152        }
37153        self.client.send_query_and_decode::<
37154            fidl::encoding::EmptyPayload,
37155            BaseNetworkSocketGetSockNameResult,
37156        >(
37157            (),
37158            0x475f23f84a1a4f85,
37159            fidl::encoding::DynamicFlags::empty(),
37160            _decode,
37161        )
37162    }
37163
37164    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
37165        BaseNetworkSocketGetPeerNameResult,
37166        fidl::encoding::DefaultFuchsiaResourceDialect,
37167    >;
37168    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
37169        fn _decode(
37170            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37171        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
37172            let _response = fidl::client::decode_transaction_body::<
37173                fidl::encoding::ResultType<
37174                    BaseNetworkSocketGetPeerNameResponse,
37175                    fidl_fuchsia_posix::Errno,
37176                >,
37177                fidl::encoding::DefaultFuchsiaResourceDialect,
37178                0x1ffecf4bd5b6432e,
37179            >(_buf?)?;
37180            Ok(_response.map(|x| x.addr))
37181        }
37182        self.client.send_query_and_decode::<
37183            fidl::encoding::EmptyPayload,
37184            BaseNetworkSocketGetPeerNameResult,
37185        >(
37186            (),
37187            0x1ffecf4bd5b6432e,
37188            fidl::encoding::DynamicFlags::empty(),
37189            _decode,
37190        )
37191    }
37192
37193    type ShutdownResponseFut = fidl::client::QueryResponseFut<
37194        BaseNetworkSocketShutdownResult,
37195        fidl::encoding::DefaultFuchsiaResourceDialect,
37196    >;
37197    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
37198        fn _decode(
37199            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37200        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
37201            let _response = fidl::client::decode_transaction_body::<
37202                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37203                fidl::encoding::DefaultFuchsiaResourceDialect,
37204                0x247f38b6db68c336,
37205            >(_buf?)?;
37206            Ok(_response.map(|x| x))
37207        }
37208        self.client.send_query_and_decode::<
37209            BaseNetworkSocketShutdownRequest,
37210            BaseNetworkSocketShutdownResult,
37211        >(
37212            (mode,),
37213            0x247f38b6db68c336,
37214            fidl::encoding::DynamicFlags::empty(),
37215            _decode,
37216        )
37217    }
37218
37219    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
37220        BaseNetworkSocketSetIpTypeOfServiceResult,
37221        fidl::encoding::DefaultFuchsiaResourceDialect,
37222    >;
37223    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
37224        fn _decode(
37225            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37226        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
37227            let _response = fidl::client::decode_transaction_body::<
37228                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37229                fidl::encoding::DefaultFuchsiaResourceDialect,
37230                0x995c600475b6d46,
37231            >(_buf?)?;
37232            Ok(_response.map(|x| x))
37233        }
37234        self.client.send_query_and_decode::<
37235            BaseNetworkSocketSetIpTypeOfServiceRequest,
37236            BaseNetworkSocketSetIpTypeOfServiceResult,
37237        >(
37238            (value,),
37239            0x995c600475b6d46,
37240            fidl::encoding::DynamicFlags::empty(),
37241            _decode,
37242        )
37243    }
37244
37245    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
37246        BaseNetworkSocketGetIpTypeOfServiceResult,
37247        fidl::encoding::DefaultFuchsiaResourceDialect,
37248    >;
37249    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
37250        fn _decode(
37251            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37252        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
37253            let _response = fidl::client::decode_transaction_body::<
37254                fidl::encoding::ResultType<
37255                    BaseNetworkSocketGetIpTypeOfServiceResponse,
37256                    fidl_fuchsia_posix::Errno,
37257                >,
37258                fidl::encoding::DefaultFuchsiaResourceDialect,
37259                0x3814a04259f75fcb,
37260            >(_buf?)?;
37261            Ok(_response.map(|x| x.value))
37262        }
37263        self.client.send_query_and_decode::<
37264            fidl::encoding::EmptyPayload,
37265            BaseNetworkSocketGetIpTypeOfServiceResult,
37266        >(
37267            (),
37268            0x3814a04259f75fcb,
37269            fidl::encoding::DynamicFlags::empty(),
37270            _decode,
37271        )
37272    }
37273
37274    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
37275        BaseNetworkSocketSetIpTtlResult,
37276        fidl::encoding::DefaultFuchsiaResourceDialect,
37277    >;
37278    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
37279        fn _decode(
37280            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37281        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
37282            let _response = fidl::client::decode_transaction_body::<
37283                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37284                fidl::encoding::DefaultFuchsiaResourceDialect,
37285                0x29e2424b433ae1ef,
37286            >(_buf?)?;
37287            Ok(_response.map(|x| x))
37288        }
37289        self.client.send_query_and_decode::<
37290            BaseNetworkSocketSetIpTtlRequest,
37291            BaseNetworkSocketSetIpTtlResult,
37292        >(
37293            (value,),
37294            0x29e2424b433ae1ef,
37295            fidl::encoding::DynamicFlags::empty(),
37296            _decode,
37297        )
37298    }
37299
37300    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
37301        BaseNetworkSocketGetIpTtlResult,
37302        fidl::encoding::DefaultFuchsiaResourceDialect,
37303    >;
37304    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
37305        fn _decode(
37306            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37307        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
37308            let _response = fidl::client::decode_transaction_body::<
37309                fidl::encoding::ResultType<
37310                    BaseNetworkSocketGetIpTtlResponse,
37311                    fidl_fuchsia_posix::Errno,
37312                >,
37313                fidl::encoding::DefaultFuchsiaResourceDialect,
37314                0x47e47fa1f24da471,
37315            >(_buf?)?;
37316            Ok(_response.map(|x| x.value))
37317        }
37318        self.client
37319            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
37320                (),
37321                0x47e47fa1f24da471,
37322                fidl::encoding::DynamicFlags::empty(),
37323                _decode,
37324            )
37325    }
37326
37327    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
37328        BaseNetworkSocketSetIpPacketInfoResult,
37329        fidl::encoding::DefaultFuchsiaResourceDialect,
37330    >;
37331    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
37332        fn _decode(
37333            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37334        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
37335            let _response = fidl::client::decode_transaction_body::<
37336                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37337                fidl::encoding::DefaultFuchsiaResourceDialect,
37338                0x392d16bee20c0e16,
37339            >(_buf?)?;
37340            Ok(_response.map(|x| x))
37341        }
37342        self.client.send_query_and_decode::<
37343            BaseNetworkSocketSetIpPacketInfoRequest,
37344            BaseNetworkSocketSetIpPacketInfoResult,
37345        >(
37346            (value,),
37347            0x392d16bee20c0e16,
37348            fidl::encoding::DynamicFlags::empty(),
37349            _decode,
37350        )
37351    }
37352
37353    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
37354        BaseNetworkSocketGetIpPacketInfoResult,
37355        fidl::encoding::DefaultFuchsiaResourceDialect,
37356    >;
37357    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
37358        fn _decode(
37359            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37360        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
37361            let _response = fidl::client::decode_transaction_body::<
37362                fidl::encoding::ResultType<
37363                    BaseNetworkSocketGetIpPacketInfoResponse,
37364                    fidl_fuchsia_posix::Errno,
37365                >,
37366                fidl::encoding::DefaultFuchsiaResourceDialect,
37367                0x54b505f242280740,
37368            >(_buf?)?;
37369            Ok(_response.map(|x| x.value))
37370        }
37371        self.client.send_query_and_decode::<
37372            fidl::encoding::EmptyPayload,
37373            BaseNetworkSocketGetIpPacketInfoResult,
37374        >(
37375            (),
37376            0x54b505f242280740,
37377            fidl::encoding::DynamicFlags::empty(),
37378            _decode,
37379        )
37380    }
37381
37382    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
37383        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
37384        fidl::encoding::DefaultFuchsiaResourceDialect,
37385    >;
37386    fn r#set_ip_receive_type_of_service(
37387        &self,
37388        mut value: bool,
37389    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
37390        fn _decode(
37391            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37392        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
37393            let _response = fidl::client::decode_transaction_body::<
37394                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37395                fidl::encoding::DefaultFuchsiaResourceDialect,
37396                0x6c4f6714995f84ef,
37397            >(_buf?)?;
37398            Ok(_response.map(|x| x))
37399        }
37400        self.client.send_query_and_decode::<
37401            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
37402            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
37403        >(
37404            (value,),
37405            0x6c4f6714995f84ef,
37406            fidl::encoding::DynamicFlags::empty(),
37407            _decode,
37408        )
37409    }
37410
37411    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
37412        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
37413        fidl::encoding::DefaultFuchsiaResourceDialect,
37414    >;
37415    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
37416        fn _decode(
37417            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37418        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
37419            let _response = fidl::client::decode_transaction_body::<
37420                fidl::encoding::ResultType<
37421                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
37422                    fidl_fuchsia_posix::Errno,
37423                >,
37424                fidl::encoding::DefaultFuchsiaResourceDialect,
37425                0x4158ba7dc2795960,
37426            >(_buf?)?;
37427            Ok(_response.map(|x| x.value))
37428        }
37429        self.client.send_query_and_decode::<
37430            fidl::encoding::EmptyPayload,
37431            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
37432        >(
37433            (),
37434            0x4158ba7dc2795960,
37435            fidl::encoding::DynamicFlags::empty(),
37436            _decode,
37437        )
37438    }
37439
37440    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
37441        BaseNetworkSocketSetIpReceiveTtlResult,
37442        fidl::encoding::DefaultFuchsiaResourceDialect,
37443    >;
37444    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
37445        fn _decode(
37446            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37447        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
37448            let _response = fidl::client::decode_transaction_body::<
37449                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37450                fidl::encoding::DefaultFuchsiaResourceDialect,
37451                0x46f15be0ce0ab82b,
37452            >(_buf?)?;
37453            Ok(_response.map(|x| x))
37454        }
37455        self.client.send_query_and_decode::<
37456            BaseNetworkSocketSetIpReceiveTtlRequest,
37457            BaseNetworkSocketSetIpReceiveTtlResult,
37458        >(
37459            (value,),
37460            0x46f15be0ce0ab82b,
37461            fidl::encoding::DynamicFlags::empty(),
37462            _decode,
37463        )
37464    }
37465
37466    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
37467        BaseNetworkSocketGetIpReceiveTtlResult,
37468        fidl::encoding::DefaultFuchsiaResourceDialect,
37469    >;
37470    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
37471        fn _decode(
37472            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37473        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
37474            let _response = fidl::client::decode_transaction_body::<
37475                fidl::encoding::ResultType<
37476                    BaseNetworkSocketGetIpReceiveTtlResponse,
37477                    fidl_fuchsia_posix::Errno,
37478                >,
37479                fidl::encoding::DefaultFuchsiaResourceDialect,
37480                0x678ddd5a5dfa2eb5,
37481            >(_buf?)?;
37482            Ok(_response.map(|x| x.value))
37483        }
37484        self.client.send_query_and_decode::<
37485            fidl::encoding::EmptyPayload,
37486            BaseNetworkSocketGetIpReceiveTtlResult,
37487        >(
37488            (),
37489            0x678ddd5a5dfa2eb5,
37490            fidl::encoding::DynamicFlags::empty(),
37491            _decode,
37492        )
37493    }
37494
37495    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
37496        BaseNetworkSocketSetIpMulticastInterfaceResult,
37497        fidl::encoding::DefaultFuchsiaResourceDialect,
37498    >;
37499    fn r#set_ip_multicast_interface(
37500        &self,
37501        mut iface: u64,
37502        mut address: &fidl_fuchsia_net::Ipv4Address,
37503    ) -> Self::SetIpMulticastInterfaceResponseFut {
37504        fn _decode(
37505            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37506        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
37507            let _response = fidl::client::decode_transaction_body::<
37508                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37509                fidl::encoding::DefaultFuchsiaResourceDialect,
37510                0x752fbfa9b12befe,
37511            >(_buf?)?;
37512            Ok(_response.map(|x| x))
37513        }
37514        self.client.send_query_and_decode::<
37515            BaseNetworkSocketSetIpMulticastInterfaceRequest,
37516            BaseNetworkSocketSetIpMulticastInterfaceResult,
37517        >(
37518            (iface, address,),
37519            0x752fbfa9b12befe,
37520            fidl::encoding::DynamicFlags::empty(),
37521            _decode,
37522        )
37523    }
37524
37525    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
37526        BaseNetworkSocketGetIpMulticastInterfaceResult,
37527        fidl::encoding::DefaultFuchsiaResourceDialect,
37528    >;
37529    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
37530        fn _decode(
37531            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37532        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
37533            let _response = fidl::client::decode_transaction_body::<
37534                fidl::encoding::ResultType<
37535                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
37536                    fidl_fuchsia_posix::Errno,
37537                >,
37538                fidl::encoding::DefaultFuchsiaResourceDialect,
37539                0x320bd14c4df046c4,
37540            >(_buf?)?;
37541            Ok(_response.map(|x| x.value))
37542        }
37543        self.client.send_query_and_decode::<
37544            fidl::encoding::EmptyPayload,
37545            BaseNetworkSocketGetIpMulticastInterfaceResult,
37546        >(
37547            (),
37548            0x320bd14c4df046c4,
37549            fidl::encoding::DynamicFlags::empty(),
37550            _decode,
37551        )
37552    }
37553
37554    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
37555        BaseNetworkSocketSetIpMulticastTtlResult,
37556        fidl::encoding::DefaultFuchsiaResourceDialect,
37557    >;
37558    fn r#set_ip_multicast_ttl(
37559        &self,
37560        mut value: &OptionalUint8,
37561    ) -> Self::SetIpMulticastTtlResponseFut {
37562        fn _decode(
37563            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37564        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
37565            let _response = fidl::client::decode_transaction_body::<
37566                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37567                fidl::encoding::DefaultFuchsiaResourceDialect,
37568                0x63134d53772916a1,
37569            >(_buf?)?;
37570            Ok(_response.map(|x| x))
37571        }
37572        self.client.send_query_and_decode::<
37573            BaseNetworkSocketSetIpMulticastTtlRequest,
37574            BaseNetworkSocketSetIpMulticastTtlResult,
37575        >(
37576            (value,),
37577            0x63134d53772916a1,
37578            fidl::encoding::DynamicFlags::empty(),
37579            _decode,
37580        )
37581    }
37582
37583    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
37584        BaseNetworkSocketGetIpMulticastTtlResult,
37585        fidl::encoding::DefaultFuchsiaResourceDialect,
37586    >;
37587    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
37588        fn _decode(
37589            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37590        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
37591            let _response = fidl::client::decode_transaction_body::<
37592                fidl::encoding::ResultType<
37593                    BaseNetworkSocketGetIpMulticastTtlResponse,
37594                    fidl_fuchsia_posix::Errno,
37595                >,
37596                fidl::encoding::DefaultFuchsiaResourceDialect,
37597                0x4665cd378f39e1a,
37598            >(_buf?)?;
37599            Ok(_response.map(|x| x.value))
37600        }
37601        self.client.send_query_and_decode::<
37602            fidl::encoding::EmptyPayload,
37603            BaseNetworkSocketGetIpMulticastTtlResult,
37604        >(
37605            (),
37606            0x4665cd378f39e1a,
37607            fidl::encoding::DynamicFlags::empty(),
37608            _decode,
37609        )
37610    }
37611
37612    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
37613        BaseNetworkSocketSetIpMulticastLoopbackResult,
37614        fidl::encoding::DefaultFuchsiaResourceDialect,
37615    >;
37616    fn r#set_ip_multicast_loopback(
37617        &self,
37618        mut value: bool,
37619    ) -> Self::SetIpMulticastLoopbackResponseFut {
37620        fn _decode(
37621            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37622        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
37623            let _response = fidl::client::decode_transaction_body::<
37624                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37625                fidl::encoding::DefaultFuchsiaResourceDialect,
37626                0x20c55c11f00943ea,
37627            >(_buf?)?;
37628            Ok(_response.map(|x| x))
37629        }
37630        self.client.send_query_and_decode::<
37631            BaseNetworkSocketSetIpMulticastLoopbackRequest,
37632            BaseNetworkSocketSetIpMulticastLoopbackResult,
37633        >(
37634            (value,),
37635            0x20c55c11f00943ea,
37636            fidl::encoding::DynamicFlags::empty(),
37637            _decode,
37638        )
37639    }
37640
37641    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
37642        BaseNetworkSocketGetIpMulticastLoopbackResult,
37643        fidl::encoding::DefaultFuchsiaResourceDialect,
37644    >;
37645    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
37646        fn _decode(
37647            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37648        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
37649            let _response = fidl::client::decode_transaction_body::<
37650                fidl::encoding::ResultType<
37651                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
37652                    fidl_fuchsia_posix::Errno,
37653                >,
37654                fidl::encoding::DefaultFuchsiaResourceDialect,
37655                0x3b6b26ff558298f2,
37656            >(_buf?)?;
37657            Ok(_response.map(|x| x.value))
37658        }
37659        self.client.send_query_and_decode::<
37660            fidl::encoding::EmptyPayload,
37661            BaseNetworkSocketGetIpMulticastLoopbackResult,
37662        >(
37663            (),
37664            0x3b6b26ff558298f2,
37665            fidl::encoding::DynamicFlags::empty(),
37666            _decode,
37667        )
37668    }
37669
37670    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
37671        BaseNetworkSocketAddIpMembershipResult,
37672        fidl::encoding::DefaultFuchsiaResourceDialect,
37673    >;
37674    fn r#add_ip_membership(
37675        &self,
37676        mut membership: &IpMulticastMembership,
37677    ) -> Self::AddIpMembershipResponseFut {
37678        fn _decode(
37679            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37680        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
37681            let _response = fidl::client::decode_transaction_body::<
37682                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37683                fidl::encoding::DefaultFuchsiaResourceDialect,
37684                0x76bc7df115a3b4d0,
37685            >(_buf?)?;
37686            Ok(_response.map(|x| x))
37687        }
37688        self.client.send_query_and_decode::<
37689            BaseNetworkSocketAddIpMembershipRequest,
37690            BaseNetworkSocketAddIpMembershipResult,
37691        >(
37692            (membership,),
37693            0x76bc7df115a3b4d0,
37694            fidl::encoding::DynamicFlags::empty(),
37695            _decode,
37696        )
37697    }
37698
37699    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
37700        BaseNetworkSocketDropIpMembershipResult,
37701        fidl::encoding::DefaultFuchsiaResourceDialect,
37702    >;
37703    fn r#drop_ip_membership(
37704        &self,
37705        mut membership: &IpMulticastMembership,
37706    ) -> Self::DropIpMembershipResponseFut {
37707        fn _decode(
37708            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37709        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
37710            let _response = fidl::client::decode_transaction_body::<
37711                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37712                fidl::encoding::DefaultFuchsiaResourceDialect,
37713                0x2888f3099188d03,
37714            >(_buf?)?;
37715            Ok(_response.map(|x| x))
37716        }
37717        self.client.send_query_and_decode::<
37718            BaseNetworkSocketDropIpMembershipRequest,
37719            BaseNetworkSocketDropIpMembershipResult,
37720        >(
37721            (membership,),
37722            0x2888f3099188d03,
37723            fidl::encoding::DynamicFlags::empty(),
37724            _decode,
37725        )
37726    }
37727
37728    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
37729        BaseNetworkSocketSetIpTransparentResult,
37730        fidl::encoding::DefaultFuchsiaResourceDialect,
37731    >;
37732    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
37733        fn _decode(
37734            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37735        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
37736            let _response = fidl::client::decode_transaction_body::<
37737                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37738                fidl::encoding::DefaultFuchsiaResourceDialect,
37739                0x1ae532b0c066e3a0,
37740            >(_buf?)?;
37741            Ok(_response.map(|x| x))
37742        }
37743        self.client.send_query_and_decode::<
37744            BaseNetworkSocketSetIpTransparentRequest,
37745            BaseNetworkSocketSetIpTransparentResult,
37746        >(
37747            (value,),
37748            0x1ae532b0c066e3a0,
37749            fidl::encoding::DynamicFlags::empty(),
37750            _decode,
37751        )
37752    }
37753
37754    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
37755        BaseNetworkSocketGetIpTransparentResult,
37756        fidl::encoding::DefaultFuchsiaResourceDialect,
37757    >;
37758    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
37759        fn _decode(
37760            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37761        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
37762            let _response = fidl::client::decode_transaction_body::<
37763                fidl::encoding::ResultType<
37764                    BaseNetworkSocketGetIpTransparentResponse,
37765                    fidl_fuchsia_posix::Errno,
37766                >,
37767                fidl::encoding::DefaultFuchsiaResourceDialect,
37768                0x51d43695962ebfb5,
37769            >(_buf?)?;
37770            Ok(_response.map(|x| x.value))
37771        }
37772        self.client.send_query_and_decode::<
37773            fidl::encoding::EmptyPayload,
37774            BaseNetworkSocketGetIpTransparentResult,
37775        >(
37776            (),
37777            0x51d43695962ebfb5,
37778            fidl::encoding::DynamicFlags::empty(),
37779            _decode,
37780        )
37781    }
37782
37783    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
37784        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
37785        fidl::encoding::DefaultFuchsiaResourceDialect,
37786    >;
37787    fn r#set_ip_receive_original_destination_address(
37788        &self,
37789        mut value: bool,
37790    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
37791        fn _decode(
37792            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37793        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
37794        {
37795            let _response = fidl::client::decode_transaction_body::<
37796                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37797                fidl::encoding::DefaultFuchsiaResourceDialect,
37798                0x4722b4ce52f7840,
37799            >(_buf?)?;
37800            Ok(_response.map(|x| x))
37801        }
37802        self.client.send_query_and_decode::<
37803            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
37804            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
37805        >(
37806            (value,),
37807            0x4722b4ce52f7840,
37808            fidl::encoding::DynamicFlags::empty(),
37809            _decode,
37810        )
37811    }
37812
37813    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
37814        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
37815        fidl::encoding::DefaultFuchsiaResourceDialect,
37816    >;
37817    fn r#get_ip_receive_original_destination_address(
37818        &self,
37819    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
37820        fn _decode(
37821            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37822        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
37823        {
37824            let _response = fidl::client::decode_transaction_body::<
37825                fidl::encoding::ResultType<
37826                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
37827                    fidl_fuchsia_posix::Errno,
37828                >,
37829                fidl::encoding::DefaultFuchsiaResourceDialect,
37830                0x2a0e7dc5d6bfdfe9,
37831            >(_buf?)?;
37832            Ok(_response.map(|x| x.value))
37833        }
37834        self.client.send_query_and_decode::<
37835            fidl::encoding::EmptyPayload,
37836            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
37837        >(
37838            (),
37839            0x2a0e7dc5d6bfdfe9,
37840            fidl::encoding::DynamicFlags::empty(),
37841            _decode,
37842        )
37843    }
37844
37845    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
37846        BaseNetworkSocketAddIpv6MembershipResult,
37847        fidl::encoding::DefaultFuchsiaResourceDialect,
37848    >;
37849    fn r#add_ipv6_membership(
37850        &self,
37851        mut membership: &Ipv6MulticastMembership,
37852    ) -> Self::AddIpv6MembershipResponseFut {
37853        fn _decode(
37854            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37855        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
37856            let _response = fidl::client::decode_transaction_body::<
37857                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37858                fidl::encoding::DefaultFuchsiaResourceDialect,
37859                0x7c94727acb4ea4b3,
37860            >(_buf?)?;
37861            Ok(_response.map(|x| x))
37862        }
37863        self.client.send_query_and_decode::<
37864            BaseNetworkSocketAddIpv6MembershipRequest,
37865            BaseNetworkSocketAddIpv6MembershipResult,
37866        >(
37867            (membership,),
37868            0x7c94727acb4ea4b3,
37869            fidl::encoding::DynamicFlags::empty(),
37870            _decode,
37871        )
37872    }
37873
37874    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
37875        BaseNetworkSocketDropIpv6MembershipResult,
37876        fidl::encoding::DefaultFuchsiaResourceDialect,
37877    >;
37878    fn r#drop_ipv6_membership(
37879        &self,
37880        mut membership: &Ipv6MulticastMembership,
37881    ) -> Self::DropIpv6MembershipResponseFut {
37882        fn _decode(
37883            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37884        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
37885            let _response = fidl::client::decode_transaction_body::<
37886                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37887                fidl::encoding::DefaultFuchsiaResourceDialect,
37888                0x42104c70ccaba304,
37889            >(_buf?)?;
37890            Ok(_response.map(|x| x))
37891        }
37892        self.client.send_query_and_decode::<
37893            BaseNetworkSocketDropIpv6MembershipRequest,
37894            BaseNetworkSocketDropIpv6MembershipResult,
37895        >(
37896            (membership,),
37897            0x42104c70ccaba304,
37898            fidl::encoding::DynamicFlags::empty(),
37899            _decode,
37900        )
37901    }
37902
37903    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
37904        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
37905        fidl::encoding::DefaultFuchsiaResourceDialect,
37906    >;
37907    fn r#set_ipv6_multicast_interface(
37908        &self,
37909        mut value: u64,
37910    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
37911        fn _decode(
37912            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37913        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
37914            let _response = fidl::client::decode_transaction_body::<
37915                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37916                fidl::encoding::DefaultFuchsiaResourceDialect,
37917                0x135f76db3774ab3b,
37918            >(_buf?)?;
37919            Ok(_response.map(|x| x))
37920        }
37921        self.client.send_query_and_decode::<
37922            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
37923            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
37924        >(
37925            (value,),
37926            0x135f76db3774ab3b,
37927            fidl::encoding::DynamicFlags::empty(),
37928            _decode,
37929        )
37930    }
37931
37932    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
37933        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
37934        fidl::encoding::DefaultFuchsiaResourceDialect,
37935    >;
37936    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
37937        fn _decode(
37938            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37939        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
37940            let _response = fidl::client::decode_transaction_body::<
37941                fidl::encoding::ResultType<
37942                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
37943                    fidl_fuchsia_posix::Errno,
37944                >,
37945                fidl::encoding::DefaultFuchsiaResourceDialect,
37946                0x1f26fcdd348f1882,
37947            >(_buf?)?;
37948            Ok(_response.map(|x| x.value))
37949        }
37950        self.client.send_query_and_decode::<
37951            fidl::encoding::EmptyPayload,
37952            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
37953        >(
37954            (),
37955            0x1f26fcdd348f1882,
37956            fidl::encoding::DynamicFlags::empty(),
37957            _decode,
37958        )
37959    }
37960
37961    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
37962        BaseNetworkSocketSetIpv6UnicastHopsResult,
37963        fidl::encoding::DefaultFuchsiaResourceDialect,
37964    >;
37965    fn r#set_ipv6_unicast_hops(
37966        &self,
37967        mut value: &OptionalUint8,
37968    ) -> Self::SetIpv6UnicastHopsResponseFut {
37969        fn _decode(
37970            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37971        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
37972            let _response = fidl::client::decode_transaction_body::<
37973                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
37974                fidl::encoding::DefaultFuchsiaResourceDialect,
37975                0x157d51e98f462859,
37976            >(_buf?)?;
37977            Ok(_response.map(|x| x))
37978        }
37979        self.client.send_query_and_decode::<
37980            BaseNetworkSocketSetIpv6UnicastHopsRequest,
37981            BaseNetworkSocketSetIpv6UnicastHopsResult,
37982        >(
37983            (value,),
37984            0x157d51e98f462859,
37985            fidl::encoding::DynamicFlags::empty(),
37986            _decode,
37987        )
37988    }
37989
37990    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
37991        BaseNetworkSocketGetIpv6UnicastHopsResult,
37992        fidl::encoding::DefaultFuchsiaResourceDialect,
37993    >;
37994    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
37995        fn _decode(
37996            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
37997        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
37998            let _response = fidl::client::decode_transaction_body::<
37999                fidl::encoding::ResultType<
38000                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
38001                    fidl_fuchsia_posix::Errno,
38002                >,
38003                fidl::encoding::DefaultFuchsiaResourceDialect,
38004                0x21f4641cad8bd8d2,
38005            >(_buf?)?;
38006            Ok(_response.map(|x| x.value))
38007        }
38008        self.client.send_query_and_decode::<
38009            fidl::encoding::EmptyPayload,
38010            BaseNetworkSocketGetIpv6UnicastHopsResult,
38011        >(
38012            (),
38013            0x21f4641cad8bd8d2,
38014            fidl::encoding::DynamicFlags::empty(),
38015            _decode,
38016        )
38017    }
38018
38019    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
38020        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
38021        fidl::encoding::DefaultFuchsiaResourceDialect,
38022    >;
38023    fn r#set_ipv6_receive_hop_limit(
38024        &self,
38025        mut value: bool,
38026    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
38027        fn _decode(
38028            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38029        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
38030            let _response = fidl::client::decode_transaction_body::<
38031                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38032                fidl::encoding::DefaultFuchsiaResourceDialect,
38033                0x5c24808ed2e84a1e,
38034            >(_buf?)?;
38035            Ok(_response.map(|x| x))
38036        }
38037        self.client.send_query_and_decode::<
38038            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
38039            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
38040        >(
38041            (value,),
38042            0x5c24808ed2e84a1e,
38043            fidl::encoding::DynamicFlags::empty(),
38044            _decode,
38045        )
38046    }
38047
38048    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
38049        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
38050        fidl::encoding::DefaultFuchsiaResourceDialect,
38051    >;
38052    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
38053        fn _decode(
38054            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38055        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
38056            let _response = fidl::client::decode_transaction_body::<
38057                fidl::encoding::ResultType<
38058                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
38059                    fidl_fuchsia_posix::Errno,
38060                >,
38061                fidl::encoding::DefaultFuchsiaResourceDialect,
38062                0x341e06689885b4c0,
38063            >(_buf?)?;
38064            Ok(_response.map(|x| x.value))
38065        }
38066        self.client.send_query_and_decode::<
38067            fidl::encoding::EmptyPayload,
38068            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
38069        >(
38070            (),
38071            0x341e06689885b4c0,
38072            fidl::encoding::DynamicFlags::empty(),
38073            _decode,
38074        )
38075    }
38076
38077    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
38078        BaseNetworkSocketSetIpv6MulticastHopsResult,
38079        fidl::encoding::DefaultFuchsiaResourceDialect,
38080    >;
38081    fn r#set_ipv6_multicast_hops(
38082        &self,
38083        mut value: &OptionalUint8,
38084    ) -> Self::SetIpv6MulticastHopsResponseFut {
38085        fn _decode(
38086            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38087        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
38088            let _response = fidl::client::decode_transaction_body::<
38089                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38090                fidl::encoding::DefaultFuchsiaResourceDialect,
38091                0x25b9cd4d181f82c1,
38092            >(_buf?)?;
38093            Ok(_response.map(|x| x))
38094        }
38095        self.client.send_query_and_decode::<
38096            BaseNetworkSocketSetIpv6MulticastHopsRequest,
38097            BaseNetworkSocketSetIpv6MulticastHopsResult,
38098        >(
38099            (value,),
38100            0x25b9cd4d181f82c1,
38101            fidl::encoding::DynamicFlags::empty(),
38102            _decode,
38103        )
38104    }
38105
38106    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
38107        BaseNetworkSocketGetIpv6MulticastHopsResult,
38108        fidl::encoding::DefaultFuchsiaResourceDialect,
38109    >;
38110    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
38111        fn _decode(
38112            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38113        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
38114            let _response = fidl::client::decode_transaction_body::<
38115                fidl::encoding::ResultType<
38116                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
38117                    fidl_fuchsia_posix::Errno,
38118                >,
38119                fidl::encoding::DefaultFuchsiaResourceDialect,
38120                0x52916948a365012a,
38121            >(_buf?)?;
38122            Ok(_response.map(|x| x.value))
38123        }
38124        self.client.send_query_and_decode::<
38125            fidl::encoding::EmptyPayload,
38126            BaseNetworkSocketGetIpv6MulticastHopsResult,
38127        >(
38128            (),
38129            0x52916948a365012a,
38130            fidl::encoding::DynamicFlags::empty(),
38131            _decode,
38132        )
38133    }
38134
38135    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
38136        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
38137        fidl::encoding::DefaultFuchsiaResourceDialect,
38138    >;
38139    fn r#set_ipv6_multicast_loopback(
38140        &self,
38141        mut value: bool,
38142    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
38143        fn _decode(
38144            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38145        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
38146            let _response = fidl::client::decode_transaction_body::<
38147                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38148                fidl::encoding::DefaultFuchsiaResourceDialect,
38149                0x55701c409ff41b40,
38150            >(_buf?)?;
38151            Ok(_response.map(|x| x))
38152        }
38153        self.client.send_query_and_decode::<
38154            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
38155            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
38156        >(
38157            (value,),
38158            0x55701c409ff41b40,
38159            fidl::encoding::DynamicFlags::empty(),
38160            _decode,
38161        )
38162    }
38163
38164    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
38165        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
38166        fidl::encoding::DefaultFuchsiaResourceDialect,
38167    >;
38168    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
38169        fn _decode(
38170            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38171        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
38172            let _response = fidl::client::decode_transaction_body::<
38173                fidl::encoding::ResultType<
38174                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
38175                    fidl_fuchsia_posix::Errno,
38176                >,
38177                fidl::encoding::DefaultFuchsiaResourceDialect,
38178                0x4415b701fde319c3,
38179            >(_buf?)?;
38180            Ok(_response.map(|x| x.value))
38181        }
38182        self.client.send_query_and_decode::<
38183            fidl::encoding::EmptyPayload,
38184            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
38185        >(
38186            (),
38187            0x4415b701fde319c3,
38188            fidl::encoding::DynamicFlags::empty(),
38189            _decode,
38190        )
38191    }
38192
38193    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
38194        BaseNetworkSocketSetIpv6OnlyResult,
38195        fidl::encoding::DefaultFuchsiaResourceDialect,
38196    >;
38197    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
38198        fn _decode(
38199            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38200        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
38201            let _response = fidl::client::decode_transaction_body::<
38202                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38203                fidl::encoding::DefaultFuchsiaResourceDialect,
38204                0x4873f1364758cbba,
38205            >(_buf?)?;
38206            Ok(_response.map(|x| x))
38207        }
38208        self.client.send_query_and_decode::<
38209            BaseNetworkSocketSetIpv6OnlyRequest,
38210            BaseNetworkSocketSetIpv6OnlyResult,
38211        >(
38212            (value,),
38213            0x4873f1364758cbba,
38214            fidl::encoding::DynamicFlags::empty(),
38215            _decode,
38216        )
38217    }
38218
38219    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
38220        BaseNetworkSocketGetIpv6OnlyResult,
38221        fidl::encoding::DefaultFuchsiaResourceDialect,
38222    >;
38223    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
38224        fn _decode(
38225            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38226        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
38227            let _response = fidl::client::decode_transaction_body::<
38228                fidl::encoding::ResultType<
38229                    BaseNetworkSocketGetIpv6OnlyResponse,
38230                    fidl_fuchsia_posix::Errno,
38231                >,
38232                fidl::encoding::DefaultFuchsiaResourceDialect,
38233                0x4aa3340a1a26b89c,
38234            >(_buf?)?;
38235            Ok(_response.map(|x| x.value))
38236        }
38237        self.client.send_query_and_decode::<
38238            fidl::encoding::EmptyPayload,
38239            BaseNetworkSocketGetIpv6OnlyResult,
38240        >(
38241            (),
38242            0x4aa3340a1a26b89c,
38243            fidl::encoding::DynamicFlags::empty(),
38244            _decode,
38245        )
38246    }
38247
38248    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
38249        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
38250        fidl::encoding::DefaultFuchsiaResourceDialect,
38251    >;
38252    fn r#set_ipv6_receive_traffic_class(
38253        &self,
38254        mut value: bool,
38255    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
38256        fn _decode(
38257            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38258        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
38259            let _response = fidl::client::decode_transaction_body::<
38260                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38261                fidl::encoding::DefaultFuchsiaResourceDialect,
38262                0x58f07c8788d099a0,
38263            >(_buf?)?;
38264            Ok(_response.map(|x| x))
38265        }
38266        self.client.send_query_and_decode::<
38267            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
38268            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
38269        >(
38270            (value,),
38271            0x58f07c8788d099a0,
38272            fidl::encoding::DynamicFlags::empty(),
38273            _decode,
38274        )
38275    }
38276
38277    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
38278        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
38279        fidl::encoding::DefaultFuchsiaResourceDialect,
38280    >;
38281    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
38282        fn _decode(
38283            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38284        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
38285            let _response = fidl::client::decode_transaction_body::<
38286                fidl::encoding::ResultType<
38287                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
38288                    fidl_fuchsia_posix::Errno,
38289                >,
38290                fidl::encoding::DefaultFuchsiaResourceDialect,
38291                0x2e334df1da553ffa,
38292            >(_buf?)?;
38293            Ok(_response.map(|x| x.value))
38294        }
38295        self.client.send_query_and_decode::<
38296            fidl::encoding::EmptyPayload,
38297            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
38298        >(
38299            (),
38300            0x2e334df1da553ffa,
38301            fidl::encoding::DynamicFlags::empty(),
38302            _decode,
38303        )
38304    }
38305
38306    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
38307        BaseNetworkSocketSetIpv6TrafficClassResult,
38308        fidl::encoding::DefaultFuchsiaResourceDialect,
38309    >;
38310    fn r#set_ipv6_traffic_class(
38311        &self,
38312        mut value: &OptionalUint8,
38313    ) -> Self::SetIpv6TrafficClassResponseFut {
38314        fn _decode(
38315            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38316        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
38317            let _response = fidl::client::decode_transaction_body::<
38318                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38319                fidl::encoding::DefaultFuchsiaResourceDialect,
38320                0x6af077800c5a0b4f,
38321            >(_buf?)?;
38322            Ok(_response.map(|x| x))
38323        }
38324        self.client.send_query_and_decode::<
38325            BaseNetworkSocketSetIpv6TrafficClassRequest,
38326            BaseNetworkSocketSetIpv6TrafficClassResult,
38327        >(
38328            (value,),
38329            0x6af077800c5a0b4f,
38330            fidl::encoding::DynamicFlags::empty(),
38331            _decode,
38332        )
38333    }
38334
38335    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
38336        BaseNetworkSocketGetIpv6TrafficClassResult,
38337        fidl::encoding::DefaultFuchsiaResourceDialect,
38338    >;
38339    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
38340        fn _decode(
38341            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38342        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
38343            let _response = fidl::client::decode_transaction_body::<
38344                fidl::encoding::ResultType<
38345                    BaseNetworkSocketGetIpv6TrafficClassResponse,
38346                    fidl_fuchsia_posix::Errno,
38347                >,
38348                fidl::encoding::DefaultFuchsiaResourceDialect,
38349                0x6baf6eed8fc2f04,
38350            >(_buf?)?;
38351            Ok(_response.map(|x| x.value))
38352        }
38353        self.client.send_query_and_decode::<
38354            fidl::encoding::EmptyPayload,
38355            BaseNetworkSocketGetIpv6TrafficClassResult,
38356        >(
38357            (),
38358            0x6baf6eed8fc2f04,
38359            fidl::encoding::DynamicFlags::empty(),
38360            _decode,
38361        )
38362    }
38363
38364    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
38365        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
38366        fidl::encoding::DefaultFuchsiaResourceDialect,
38367    >;
38368    fn r#set_ipv6_receive_packet_info(
38369        &self,
38370        mut value: bool,
38371    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
38372        fn _decode(
38373            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38374        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
38375            let _response = fidl::client::decode_transaction_body::<
38376                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
38377                fidl::encoding::DefaultFuchsiaResourceDialect,
38378                0x19259775b1a92768,
38379            >(_buf?)?;
38380            Ok(_response.map(|x| x))
38381        }
38382        self.client.send_query_and_decode::<
38383            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
38384            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
38385        >(
38386            (value,),
38387            0x19259775b1a92768,
38388            fidl::encoding::DynamicFlags::empty(),
38389            _decode,
38390        )
38391    }
38392
38393    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
38394        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
38395        fidl::encoding::DefaultFuchsiaResourceDialect,
38396    >;
38397    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
38398        fn _decode(
38399            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38400        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
38401            let _response = fidl::client::decode_transaction_body::<
38402                fidl::encoding::ResultType<
38403                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
38404                    fidl_fuchsia_posix::Errno,
38405                >,
38406                fidl::encoding::DefaultFuchsiaResourceDialect,
38407                0x7acd4a2775baec75,
38408            >(_buf?)?;
38409            Ok(_response.map(|x| x.value))
38410        }
38411        self.client.send_query_and_decode::<
38412            fidl::encoding::EmptyPayload,
38413            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
38414        >(
38415            (),
38416            0x7acd4a2775baec75,
38417            fidl::encoding::DynamicFlags::empty(),
38418            _decode,
38419        )
38420    }
38421
38422    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
38423        BaseNetworkSocketGetOriginalDestinationResult,
38424        fidl::encoding::DefaultFuchsiaResourceDialect,
38425    >;
38426    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
38427        fn _decode(
38428            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38429        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
38430            let _response = fidl::client::decode_transaction_body::<
38431                fidl::encoding::ResultType<
38432                    BaseNetworkSocketGetOriginalDestinationResponse,
38433                    fidl_fuchsia_posix::Errno,
38434                >,
38435                fidl::encoding::DefaultFuchsiaResourceDialect,
38436                0x38bf28f0dafdbac0,
38437            >(_buf?)?;
38438            Ok(_response.map(|x| x.value))
38439        }
38440        self.client.send_query_and_decode::<
38441            fidl::encoding::EmptyPayload,
38442            BaseNetworkSocketGetOriginalDestinationResult,
38443        >(
38444            (),
38445            0x38bf28f0dafdbac0,
38446            fidl::encoding::DynamicFlags::empty(),
38447            _decode,
38448        )
38449    }
38450
38451    type GetInfoResponseFut = fidl::client::QueryResponseFut<
38452        BaseDatagramSocketGetInfoResult,
38453        fidl::encoding::DefaultFuchsiaResourceDialect,
38454    >;
38455    fn r#get_info(&self) -> Self::GetInfoResponseFut {
38456        fn _decode(
38457            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38458        ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
38459            let _response = fidl::client::decode_transaction_body::<
38460                fidl::encoding::ResultType<
38461                    BaseDatagramSocketGetInfoResponse,
38462                    fidl_fuchsia_posix::Errno,
38463                >,
38464                fidl::encoding::DefaultFuchsiaResourceDialect,
38465                0x48aa0a1f6a32d2ed,
38466            >(_buf?)?;
38467            Ok(_response.map(|x| (x.domain, x.proto)))
38468        }
38469        self.client
38470            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseDatagramSocketGetInfoResult>(
38471                (),
38472                0x48aa0a1f6a32d2ed,
38473                fidl::encoding::DynamicFlags::empty(),
38474                _decode,
38475            )
38476    }
38477
38478    type DescribeResponseFut = fidl::client::QueryResponseFut<
38479        DatagramSocketDescribeResponse,
38480        fidl::encoding::DefaultFuchsiaResourceDialect,
38481    >;
38482    fn r#describe(&self) -> Self::DescribeResponseFut {
38483        fn _decode(
38484            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38485        ) -> Result<DatagramSocketDescribeResponse, fidl::Error> {
38486            let _response = fidl::client::decode_transaction_body::<
38487                DatagramSocketDescribeResponse,
38488                fidl::encoding::DefaultFuchsiaResourceDialect,
38489                0xbf1e2f0a86601f3,
38490            >(_buf?)?;
38491            Ok(_response)
38492        }
38493        self.client
38494            .send_query_and_decode::<fidl::encoding::EmptyPayload, DatagramSocketDescribeResponse>(
38495                (),
38496                0xbf1e2f0a86601f3,
38497                fidl::encoding::DynamicFlags::empty(),
38498                _decode,
38499            )
38500    }
38501
38502    type SendMsgPreflightResponseFut = fidl::client::QueryResponseFut<
38503        DatagramSocketSendMsgPreflightResult,
38504        fidl::encoding::DefaultFuchsiaResourceDialect,
38505    >;
38506    fn r#send_msg_preflight(
38507        &self,
38508        mut payload: &DatagramSocketSendMsgPreflightRequest,
38509    ) -> Self::SendMsgPreflightResponseFut {
38510        fn _decode(
38511            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38512        ) -> Result<DatagramSocketSendMsgPreflightResult, fidl::Error> {
38513            let _response = fidl::client::decode_transaction_body::<
38514                fidl::encoding::ResultType<
38515                    DatagramSocketSendMsgPreflightResponse,
38516                    fidl_fuchsia_posix::Errno,
38517                >,
38518                fidl::encoding::DefaultFuchsiaResourceDialect,
38519                0x5362e668e777248a,
38520            >(_buf?)?;
38521            Ok(_response.map(|x| x))
38522        }
38523        self.client.send_query_and_decode::<
38524            DatagramSocketSendMsgPreflightRequest,
38525            DatagramSocketSendMsgPreflightResult,
38526        >(
38527            payload,
38528            0x5362e668e777248a,
38529            fidl::encoding::DynamicFlags::empty(),
38530            _decode,
38531        )
38532    }
38533
38534    type RecvMsgPostflightResponseFut = fidl::client::QueryResponseFut<
38535        DatagramSocketRecvMsgPostflightResult,
38536        fidl::encoding::DefaultFuchsiaResourceDialect,
38537    >;
38538    fn r#recv_msg_postflight(&self) -> Self::RecvMsgPostflightResponseFut {
38539        fn _decode(
38540            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
38541        ) -> Result<DatagramSocketRecvMsgPostflightResult, fidl::Error> {
38542            let _response = fidl::client::decode_transaction_body::<
38543                fidl::encoding::ResultType<
38544                    DatagramSocketRecvMsgPostflightResponse,
38545                    fidl_fuchsia_posix::Errno,
38546                >,
38547                fidl::encoding::DefaultFuchsiaResourceDialect,
38548                0x1a7cdeca5f3eb8e2,
38549            >(_buf?)?;
38550            Ok(_response.map(|x| x))
38551        }
38552        self.client.send_query_and_decode::<
38553            fidl::encoding::EmptyPayload,
38554            DatagramSocketRecvMsgPostflightResult,
38555        >(
38556            (),
38557            0x1a7cdeca5f3eb8e2,
38558            fidl::encoding::DynamicFlags::empty(),
38559            _decode,
38560        )
38561    }
38562}
38563
38564pub struct DatagramSocketEventStream {
38565    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
38566}
38567
38568impl std::marker::Unpin for DatagramSocketEventStream {}
38569
38570impl futures::stream::FusedStream for DatagramSocketEventStream {
38571    fn is_terminated(&self) -> bool {
38572        self.event_receiver.is_terminated()
38573    }
38574}
38575
38576impl futures::Stream for DatagramSocketEventStream {
38577    type Item = Result<DatagramSocketEvent, fidl::Error>;
38578
38579    fn poll_next(
38580        mut self: std::pin::Pin<&mut Self>,
38581        cx: &mut std::task::Context<'_>,
38582    ) -> std::task::Poll<Option<Self::Item>> {
38583        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
38584            &mut self.event_receiver,
38585            cx
38586        )?) {
38587            Some(buf) => std::task::Poll::Ready(Some(DatagramSocketEvent::decode(buf))),
38588            None => std::task::Poll::Ready(None),
38589        }
38590    }
38591}
38592
38593#[derive(Debug)]
38594pub enum DatagramSocketEvent {}
38595
38596impl DatagramSocketEvent {
38597    /// Decodes a message buffer as a [`DatagramSocketEvent`].
38598    fn decode(
38599        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
38600    ) -> Result<DatagramSocketEvent, fidl::Error> {
38601        let (bytes, _handles) = buf.split_mut();
38602        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
38603        debug_assert_eq!(tx_header.tx_id, 0);
38604        match tx_header.ordinal {
38605            _ => Err(fidl::Error::UnknownOrdinal {
38606                ordinal: tx_header.ordinal,
38607                protocol_name:
38608                    <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
38609            }),
38610        }
38611    }
38612}
38613
38614/// A Stream of incoming requests for fuchsia.posix.socket/DatagramSocket.
38615pub struct DatagramSocketRequestStream {
38616    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
38617    is_terminated: bool,
38618}
38619
38620impl std::marker::Unpin for DatagramSocketRequestStream {}
38621
38622impl futures::stream::FusedStream for DatagramSocketRequestStream {
38623    fn is_terminated(&self) -> bool {
38624        self.is_terminated
38625    }
38626}
38627
38628impl fidl::endpoints::RequestStream for DatagramSocketRequestStream {
38629    type Protocol = DatagramSocketMarker;
38630    type ControlHandle = DatagramSocketControlHandle;
38631
38632    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
38633        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
38634    }
38635
38636    fn control_handle(&self) -> Self::ControlHandle {
38637        DatagramSocketControlHandle { inner: self.inner.clone() }
38638    }
38639
38640    fn into_inner(
38641        self,
38642    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
38643    {
38644        (self.inner, self.is_terminated)
38645    }
38646
38647    fn from_inner(
38648        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
38649        is_terminated: bool,
38650    ) -> Self {
38651        Self { inner, is_terminated }
38652    }
38653}
38654
38655impl futures::Stream for DatagramSocketRequestStream {
38656    type Item = Result<DatagramSocketRequest, fidl::Error>;
38657
38658    fn poll_next(
38659        mut self: std::pin::Pin<&mut Self>,
38660        cx: &mut std::task::Context<'_>,
38661    ) -> std::task::Poll<Option<Self::Item>> {
38662        let this = &mut *self;
38663        if this.inner.check_shutdown(cx) {
38664            this.is_terminated = true;
38665            return std::task::Poll::Ready(None);
38666        }
38667        if this.is_terminated {
38668            panic!("polled DatagramSocketRequestStream after completion");
38669        }
38670        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
38671            |bytes, handles| {
38672                match this.inner.channel().read_etc(cx, bytes, handles) {
38673                    std::task::Poll::Ready(Ok(())) => {}
38674                    std::task::Poll::Pending => return std::task::Poll::Pending,
38675                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
38676                        this.is_terminated = true;
38677                        return std::task::Poll::Ready(None);
38678                    }
38679                    std::task::Poll::Ready(Err(e)) => {
38680                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
38681                            e.into(),
38682                        ))));
38683                    }
38684                }
38685
38686                // A message has been received from the channel
38687                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
38688
38689                std::task::Poll::Ready(Some(match header.ordinal {
38690                    0x20d8a7aba2168a79 => {
38691                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
38692                        let mut req = fidl::new_empty!(
38693                            fidl_fuchsia_unknown::CloneableCloneRequest,
38694                            fidl::encoding::DefaultFuchsiaResourceDialect
38695                        );
38696                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
38697                        let control_handle =
38698                            DatagramSocketControlHandle { inner: this.inner.clone() };
38699                        Ok(DatagramSocketRequest::Clone { request: req.request, control_handle })
38700                    }
38701                    0x5ac5d459ad7f657e => {
38702                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38703                        let mut req = fidl::new_empty!(
38704                            fidl::encoding::EmptyPayload,
38705                            fidl::encoding::DefaultFuchsiaResourceDialect
38706                        );
38707                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38708                        let control_handle =
38709                            DatagramSocketControlHandle { inner: this.inner.clone() };
38710                        Ok(DatagramSocketRequest::Close {
38711                            responder: DatagramSocketCloseResponder {
38712                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38713                                tx_id: header.tx_id,
38714                            },
38715                        })
38716                    }
38717                    0x2658edee9decfc06 => {
38718                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38719                        let mut req = fidl::new_empty!(
38720                            fidl::encoding::EmptyPayload,
38721                            fidl::encoding::DefaultFuchsiaResourceDialect
38722                        );
38723                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38724                        let control_handle =
38725                            DatagramSocketControlHandle { inner: this.inner.clone() };
38726                        Ok(DatagramSocketRequest::Query {
38727                            responder: DatagramSocketQueryResponder {
38728                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38729                                tx_id: header.tx_id,
38730                            },
38731                        })
38732                    }
38733                    0x1fd74ee8b9a4a876 => {
38734                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38735                        let mut req = fidl::new_empty!(
38736                            BaseSocketSetReuseAddressRequest,
38737                            fidl::encoding::DefaultFuchsiaResourceDialect
38738                        );
38739                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
38740                        let control_handle =
38741                            DatagramSocketControlHandle { inner: this.inner.clone() };
38742                        Ok(DatagramSocketRequest::SetReuseAddress {
38743                            value: req.value,
38744
38745                            responder: DatagramSocketSetReuseAddressResponder {
38746                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38747                                tx_id: header.tx_id,
38748                            },
38749                        })
38750                    }
38751                    0x67b7206b8d1bc0a5 => {
38752                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38753                        let mut req = fidl::new_empty!(
38754                            fidl::encoding::EmptyPayload,
38755                            fidl::encoding::DefaultFuchsiaResourceDialect
38756                        );
38757                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38758                        let control_handle =
38759                            DatagramSocketControlHandle { inner: this.inner.clone() };
38760                        Ok(DatagramSocketRequest::GetReuseAddress {
38761                            responder: DatagramSocketGetReuseAddressResponder {
38762                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38763                                tx_id: header.tx_id,
38764                            },
38765                        })
38766                    }
38767                    0x5aad39b33e5f6ebb => {
38768                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38769                        let mut req = fidl::new_empty!(
38770                            fidl::encoding::EmptyPayload,
38771                            fidl::encoding::DefaultFuchsiaResourceDialect
38772                        );
38773                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38774                        let control_handle =
38775                            DatagramSocketControlHandle { inner: this.inner.clone() };
38776                        Ok(DatagramSocketRequest::GetError {
38777                            responder: DatagramSocketGetErrorResponder {
38778                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38779                                tx_id: header.tx_id,
38780                            },
38781                        })
38782                    }
38783                    0x6023e081ce3cd947 => {
38784                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38785                        let mut req = fidl::new_empty!(
38786                            BaseSocketSetBroadcastRequest,
38787                            fidl::encoding::DefaultFuchsiaResourceDialect
38788                        );
38789                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
38790                        let control_handle =
38791                            DatagramSocketControlHandle { inner: this.inner.clone() };
38792                        Ok(DatagramSocketRequest::SetBroadcast {
38793                            value: req.value,
38794
38795                            responder: DatagramSocketSetBroadcastResponder {
38796                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38797                                tx_id: header.tx_id,
38798                            },
38799                        })
38800                    }
38801                    0x68796fc556f9780d => {
38802                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38803                        let mut req = fidl::new_empty!(
38804                            fidl::encoding::EmptyPayload,
38805                            fidl::encoding::DefaultFuchsiaResourceDialect
38806                        );
38807                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38808                        let control_handle =
38809                            DatagramSocketControlHandle { inner: this.inner.clone() };
38810                        Ok(DatagramSocketRequest::GetBroadcast {
38811                            responder: DatagramSocketGetBroadcastResponder {
38812                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38813                                tx_id: header.tx_id,
38814                            },
38815                        })
38816                    }
38817                    0x756eac32d73a7a70 => {
38818                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38819                        let mut req = fidl::new_empty!(
38820                            BaseSocketSetSendBufferRequest,
38821                            fidl::encoding::DefaultFuchsiaResourceDialect
38822                        );
38823                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
38824                        let control_handle =
38825                            DatagramSocketControlHandle { inner: this.inner.clone() };
38826                        Ok(DatagramSocketRequest::SetSendBuffer {
38827                            value_bytes: req.value_bytes,
38828
38829                            responder: DatagramSocketSetSendBufferResponder {
38830                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38831                                tx_id: header.tx_id,
38832                            },
38833                        })
38834                    }
38835                    0x78a52fd9c7b2410b => {
38836                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38837                        let mut req = fidl::new_empty!(
38838                            fidl::encoding::EmptyPayload,
38839                            fidl::encoding::DefaultFuchsiaResourceDialect
38840                        );
38841                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38842                        let control_handle =
38843                            DatagramSocketControlHandle { inner: this.inner.clone() };
38844                        Ok(DatagramSocketRequest::GetSendBuffer {
38845                            responder: DatagramSocketGetSendBufferResponder {
38846                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38847                                tx_id: header.tx_id,
38848                            },
38849                        })
38850                    }
38851                    0x6b0cf2f1919c7001 => {
38852                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38853                        let mut req = fidl::new_empty!(
38854                            BaseSocketSetReceiveBufferRequest,
38855                            fidl::encoding::DefaultFuchsiaResourceDialect
38856                        );
38857                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
38858                        let control_handle =
38859                            DatagramSocketControlHandle { inner: this.inner.clone() };
38860                        Ok(DatagramSocketRequest::SetReceiveBuffer {
38861                            value_bytes: req.value_bytes,
38862
38863                            responder: DatagramSocketSetReceiveBufferResponder {
38864                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38865                                tx_id: header.tx_id,
38866                            },
38867                        })
38868                    }
38869                    0x14c1a4b64f709e5c => {
38870                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38871                        let mut req = fidl::new_empty!(
38872                            fidl::encoding::EmptyPayload,
38873                            fidl::encoding::DefaultFuchsiaResourceDialect
38874                        );
38875                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38876                        let control_handle =
38877                            DatagramSocketControlHandle { inner: this.inner.clone() };
38878                        Ok(DatagramSocketRequest::GetReceiveBuffer {
38879                            responder: DatagramSocketGetReceiveBufferResponder {
38880                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38881                                tx_id: header.tx_id,
38882                            },
38883                        })
38884                    }
38885                    0x572df8f0b920d2c7 => {
38886                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38887                        let mut req = fidl::new_empty!(
38888                            BaseSocketSetKeepAliveRequest,
38889                            fidl::encoding::DefaultFuchsiaResourceDialect
38890                        );
38891                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
38892                        let control_handle =
38893                            DatagramSocketControlHandle { inner: this.inner.clone() };
38894                        Ok(DatagramSocketRequest::SetKeepAlive {
38895                            value: req.value,
38896
38897                            responder: DatagramSocketSetKeepAliveResponder {
38898                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38899                                tx_id: header.tx_id,
38900                            },
38901                        })
38902                    }
38903                    0x2dd29d3215f2c9d2 => {
38904                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38905                        let mut req = fidl::new_empty!(
38906                            fidl::encoding::EmptyPayload,
38907                            fidl::encoding::DefaultFuchsiaResourceDialect
38908                        );
38909                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38910                        let control_handle =
38911                            DatagramSocketControlHandle { inner: this.inner.clone() };
38912                        Ok(DatagramSocketRequest::GetKeepAlive {
38913                            responder: DatagramSocketGetKeepAliveResponder {
38914                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38915                                tx_id: header.tx_id,
38916                            },
38917                        })
38918                    }
38919                    0x3ecb49968bee439 => {
38920                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38921                        let mut req = fidl::new_empty!(
38922                            BaseSocketSetOutOfBandInlineRequest,
38923                            fidl::encoding::DefaultFuchsiaResourceDialect
38924                        );
38925                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
38926                        let control_handle =
38927                            DatagramSocketControlHandle { inner: this.inner.clone() };
38928                        Ok(DatagramSocketRequest::SetOutOfBandInline {
38929                            value: req.value,
38930
38931                            responder: DatagramSocketSetOutOfBandInlineResponder {
38932                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38933                                tx_id: header.tx_id,
38934                            },
38935                        })
38936                    }
38937                    0x348c1ab3aeca1745 => {
38938                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38939                        let mut req = fidl::new_empty!(
38940                            fidl::encoding::EmptyPayload,
38941                            fidl::encoding::DefaultFuchsiaResourceDialect
38942                        );
38943                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38944                        let control_handle =
38945                            DatagramSocketControlHandle { inner: this.inner.clone() };
38946                        Ok(DatagramSocketRequest::GetOutOfBandInline {
38947                            responder: DatagramSocketGetOutOfBandInlineResponder {
38948                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38949                                tx_id: header.tx_id,
38950                            },
38951                        })
38952                    }
38953                    0x6bbf00c53a4c78c2 => {
38954                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38955                        let mut req = fidl::new_empty!(
38956                            BaseSocketSetNoCheckRequest,
38957                            fidl::encoding::DefaultFuchsiaResourceDialect
38958                        );
38959                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
38960                        let control_handle =
38961                            DatagramSocketControlHandle { inner: this.inner.clone() };
38962                        Ok(DatagramSocketRequest::SetNoCheck {
38963                            value: req.value,
38964
38965                            responder: DatagramSocketSetNoCheckResponder {
38966                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38967                                tx_id: header.tx_id,
38968                            },
38969                        })
38970                    }
38971                    0x2cd4249286417694 => {
38972                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38973                        let mut req = fidl::new_empty!(
38974                            fidl::encoding::EmptyPayload,
38975                            fidl::encoding::DefaultFuchsiaResourceDialect
38976                        );
38977                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
38978                        let control_handle =
38979                            DatagramSocketControlHandle { inner: this.inner.clone() };
38980                        Ok(DatagramSocketRequest::GetNoCheck {
38981                            responder: DatagramSocketGetNoCheckResponder {
38982                                control_handle: std::mem::ManuallyDrop::new(control_handle),
38983                                tx_id: header.tx_id,
38984                            },
38985                        })
38986                    }
38987                    0x45386351246e998e => {
38988                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
38989                        let mut req = fidl::new_empty!(
38990                            BaseSocketSetLingerRequest,
38991                            fidl::encoding::DefaultFuchsiaResourceDialect
38992                        );
38993                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
38994                        let control_handle =
38995                            DatagramSocketControlHandle { inner: this.inner.clone() };
38996                        Ok(DatagramSocketRequest::SetLinger {
38997                            linger: req.linger,
38998                            length_secs: req.length_secs,
38999
39000                            responder: DatagramSocketSetLingerResponder {
39001                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39002                                tx_id: header.tx_id,
39003                            },
39004                        })
39005                    }
39006                    0x48eb20fc5ccb0e45 => {
39007                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39008                        let mut req = fidl::new_empty!(
39009                            fidl::encoding::EmptyPayload,
39010                            fidl::encoding::DefaultFuchsiaResourceDialect
39011                        );
39012                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39013                        let control_handle =
39014                            DatagramSocketControlHandle { inner: this.inner.clone() };
39015                        Ok(DatagramSocketRequest::GetLinger {
39016                            responder: DatagramSocketGetLingerResponder {
39017                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39018                                tx_id: header.tx_id,
39019                            },
39020                        })
39021                    }
39022                    0x24dd3e5cb36d9ccb => {
39023                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39024                        let mut req = fidl::new_empty!(
39025                            BaseSocketSetReusePortRequest,
39026                            fidl::encoding::DefaultFuchsiaResourceDialect
39027                        );
39028                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
39029                        let control_handle =
39030                            DatagramSocketControlHandle { inner: this.inner.clone() };
39031                        Ok(DatagramSocketRequest::SetReusePort {
39032                            value: req.value,
39033
39034                            responder: DatagramSocketSetReusePortResponder {
39035                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39036                                tx_id: header.tx_id,
39037                            },
39038                        })
39039                    }
39040                    0x7a112c1ab54ff828 => {
39041                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39042                        let mut req = fidl::new_empty!(
39043                            fidl::encoding::EmptyPayload,
39044                            fidl::encoding::DefaultFuchsiaResourceDialect
39045                        );
39046                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39047                        let control_handle =
39048                            DatagramSocketControlHandle { inner: this.inner.clone() };
39049                        Ok(DatagramSocketRequest::GetReusePort {
39050                            responder: DatagramSocketGetReusePortResponder {
39051                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39052                                tx_id: header.tx_id,
39053                            },
39054                        })
39055                    }
39056                    0x67ce6db6c2ec8966 => {
39057                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39058                        let mut req = fidl::new_empty!(
39059                            fidl::encoding::EmptyPayload,
39060                            fidl::encoding::DefaultFuchsiaResourceDialect
39061                        );
39062                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39063                        let control_handle =
39064                            DatagramSocketControlHandle { inner: this.inner.clone() };
39065                        Ok(DatagramSocketRequest::GetAcceptConn {
39066                            responder: DatagramSocketGetAcceptConnResponder {
39067                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39068                                tx_id: header.tx_id,
39069                            },
39070                        })
39071                    }
39072                    0x2118b483f28aafc4 => {
39073                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39074                        let mut req = fidl::new_empty!(
39075                            BaseSocketSetBindToDeviceRequest,
39076                            fidl::encoding::DefaultFuchsiaResourceDialect
39077                        );
39078                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
39079                        let control_handle =
39080                            DatagramSocketControlHandle { inner: this.inner.clone() };
39081                        Ok(DatagramSocketRequest::SetBindToDevice {
39082                            value: req.value,
39083
39084                            responder: DatagramSocketSetBindToDeviceResponder {
39085                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39086                                tx_id: header.tx_id,
39087                            },
39088                        })
39089                    }
39090                    0x1ab1fbf0ef7906c8 => {
39091                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39092                        let mut req = fidl::new_empty!(
39093                            fidl::encoding::EmptyPayload,
39094                            fidl::encoding::DefaultFuchsiaResourceDialect
39095                        );
39096                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39097                        let control_handle =
39098                            DatagramSocketControlHandle { inner: this.inner.clone() };
39099                        Ok(DatagramSocketRequest::GetBindToDevice {
39100                            responder: DatagramSocketGetBindToDeviceResponder {
39101                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39102                                tx_id: header.tx_id,
39103                            },
39104                        })
39105                    }
39106                    0x6e387a0def00821 => {
39107                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39108                        let mut req = fidl::new_empty!(
39109                            BaseSocketSetBindToInterfaceIndexRequest,
39110                            fidl::encoding::DefaultFuchsiaResourceDialect
39111                        );
39112                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
39113                        let control_handle =
39114                            DatagramSocketControlHandle { inner: this.inner.clone() };
39115                        Ok(DatagramSocketRequest::SetBindToInterfaceIndex {
39116                            value: req.value,
39117
39118                            responder: DatagramSocketSetBindToInterfaceIndexResponder {
39119                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39120                                tx_id: header.tx_id,
39121                            },
39122                        })
39123                    }
39124                    0x59c31dd3e3078295 => {
39125                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39126                        let mut req = fidl::new_empty!(
39127                            fidl::encoding::EmptyPayload,
39128                            fidl::encoding::DefaultFuchsiaResourceDialect
39129                        );
39130                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39131                        let control_handle =
39132                            DatagramSocketControlHandle { inner: this.inner.clone() };
39133                        Ok(DatagramSocketRequest::GetBindToInterfaceIndex {
39134                            responder: DatagramSocketGetBindToInterfaceIndexResponder {
39135                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39136                                tx_id: header.tx_id,
39137                            },
39138                        })
39139                    }
39140                    0x285d6516c263d839 => {
39141                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39142                        let mut req = fidl::new_empty!(
39143                            BaseSocketSetTimestampRequest,
39144                            fidl::encoding::DefaultFuchsiaResourceDialect
39145                        );
39146                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
39147                        let control_handle =
39148                            DatagramSocketControlHandle { inner: this.inner.clone() };
39149                        Ok(DatagramSocketRequest::SetTimestamp {
39150                            value: req.value,
39151
39152                            responder: DatagramSocketSetTimestampResponder {
39153                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39154                                tx_id: header.tx_id,
39155                            },
39156                        })
39157                    }
39158                    0x49f2fffbbcc2bd27 => {
39159                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39160                        let mut req = fidl::new_empty!(
39161                            fidl::encoding::EmptyPayload,
39162                            fidl::encoding::DefaultFuchsiaResourceDialect
39163                        );
39164                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39165                        let control_handle =
39166                            DatagramSocketControlHandle { inner: this.inner.clone() };
39167                        Ok(DatagramSocketRequest::GetTimestamp {
39168                            responder: DatagramSocketGetTimestampResponder {
39169                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39170                                tx_id: header.tx_id,
39171                            },
39172                        })
39173                    }
39174                    0x6ead6de09f653236 => {
39175                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39176                        let mut req = fidl::new_empty!(
39177                            BaseSocketSetMarkRequest,
39178                            fidl::encoding::DefaultFuchsiaResourceDialect
39179                        );
39180                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
39181                        let control_handle =
39182                            DatagramSocketControlHandle { inner: this.inner.clone() };
39183                        Ok(DatagramSocketRequest::SetMark {
39184                            domain: req.domain,
39185                            mark: req.mark,
39186
39187                            responder: DatagramSocketSetMarkResponder {
39188                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39189                                tx_id: header.tx_id,
39190                            },
39191                        })
39192                    }
39193                    0x57a2752c61d93d47 => {
39194                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39195                        let mut req = fidl::new_empty!(
39196                            BaseSocketGetMarkRequest,
39197                            fidl::encoding::DefaultFuchsiaResourceDialect
39198                        );
39199                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
39200                        let control_handle =
39201                            DatagramSocketControlHandle { inner: this.inner.clone() };
39202                        Ok(DatagramSocketRequest::GetMark {
39203                            domain: req.domain,
39204
39205                            responder: DatagramSocketGetMarkResponder {
39206                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39207                                tx_id: header.tx_id,
39208                            },
39209                        })
39210                    }
39211                    0x2c2f47fd8f924e52 => {
39212                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39213                        let mut req = fidl::new_empty!(
39214                            fidl::encoding::EmptyPayload,
39215                            fidl::encoding::DefaultFuchsiaResourceDialect
39216                        );
39217                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39218                        let control_handle =
39219                            DatagramSocketControlHandle { inner: this.inner.clone() };
39220                        Ok(DatagramSocketRequest::GetCookie {
39221                            responder: DatagramSocketGetCookieResponder {
39222                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39223                                tx_id: header.tx_id,
39224                            },
39225                        })
39226                    }
39227                    0x4bc6400ae92125d => {
39228                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39229                        let mut req = fidl::new_empty!(
39230                            BaseNetworkSocketBindRequest,
39231                            fidl::encoding::DefaultFuchsiaResourceDialect
39232                        );
39233                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
39234                        let control_handle =
39235                            DatagramSocketControlHandle { inner: this.inner.clone() };
39236                        Ok(DatagramSocketRequest::Bind {
39237                            addr: req.addr,
39238
39239                            responder: DatagramSocketBindResponder {
39240                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39241                                tx_id: header.tx_id,
39242                            },
39243                        })
39244                    }
39245                    0x5f05f19bfdd38871 => {
39246                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39247                        let mut req = fidl::new_empty!(
39248                            BaseNetworkSocketConnectRequest,
39249                            fidl::encoding::DefaultFuchsiaResourceDialect
39250                        );
39251                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
39252                        let control_handle =
39253                            DatagramSocketControlHandle { inner: this.inner.clone() };
39254                        Ok(DatagramSocketRequest::Connect {
39255                            addr: req.addr,
39256
39257                            responder: DatagramSocketConnectResponder {
39258                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39259                                tx_id: header.tx_id,
39260                            },
39261                        })
39262                    }
39263                    0x74e63b91f7b29b2 => {
39264                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39265                        let mut req = fidl::new_empty!(
39266                            fidl::encoding::EmptyPayload,
39267                            fidl::encoding::DefaultFuchsiaResourceDialect
39268                        );
39269                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39270                        let control_handle =
39271                            DatagramSocketControlHandle { inner: this.inner.clone() };
39272                        Ok(DatagramSocketRequest::Disconnect {
39273                            responder: DatagramSocketDisconnectResponder {
39274                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39275                                tx_id: header.tx_id,
39276                            },
39277                        })
39278                    }
39279                    0x475f23f84a1a4f85 => {
39280                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39281                        let mut req = fidl::new_empty!(
39282                            fidl::encoding::EmptyPayload,
39283                            fidl::encoding::DefaultFuchsiaResourceDialect
39284                        );
39285                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39286                        let control_handle =
39287                            DatagramSocketControlHandle { inner: this.inner.clone() };
39288                        Ok(DatagramSocketRequest::GetSockName {
39289                            responder: DatagramSocketGetSockNameResponder {
39290                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39291                                tx_id: header.tx_id,
39292                            },
39293                        })
39294                    }
39295                    0x1ffecf4bd5b6432e => {
39296                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39297                        let mut req = fidl::new_empty!(
39298                            fidl::encoding::EmptyPayload,
39299                            fidl::encoding::DefaultFuchsiaResourceDialect
39300                        );
39301                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39302                        let control_handle =
39303                            DatagramSocketControlHandle { inner: this.inner.clone() };
39304                        Ok(DatagramSocketRequest::GetPeerName {
39305                            responder: DatagramSocketGetPeerNameResponder {
39306                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39307                                tx_id: header.tx_id,
39308                            },
39309                        })
39310                    }
39311                    0x247f38b6db68c336 => {
39312                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39313                        let mut req = fidl::new_empty!(
39314                            BaseNetworkSocketShutdownRequest,
39315                            fidl::encoding::DefaultFuchsiaResourceDialect
39316                        );
39317                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
39318                        let control_handle =
39319                            DatagramSocketControlHandle { inner: this.inner.clone() };
39320                        Ok(DatagramSocketRequest::Shutdown {
39321                            mode: req.mode,
39322
39323                            responder: DatagramSocketShutdownResponder {
39324                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39325                                tx_id: header.tx_id,
39326                            },
39327                        })
39328                    }
39329                    0x995c600475b6d46 => {
39330                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39331                        let mut req = fidl::new_empty!(
39332                            BaseNetworkSocketSetIpTypeOfServiceRequest,
39333                            fidl::encoding::DefaultFuchsiaResourceDialect
39334                        );
39335                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
39336                        let control_handle =
39337                            DatagramSocketControlHandle { inner: this.inner.clone() };
39338                        Ok(DatagramSocketRequest::SetIpTypeOfService {
39339                            value: req.value,
39340
39341                            responder: DatagramSocketSetIpTypeOfServiceResponder {
39342                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39343                                tx_id: header.tx_id,
39344                            },
39345                        })
39346                    }
39347                    0x3814a04259f75fcb => {
39348                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39349                        let mut req = fidl::new_empty!(
39350                            fidl::encoding::EmptyPayload,
39351                            fidl::encoding::DefaultFuchsiaResourceDialect
39352                        );
39353                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39354                        let control_handle =
39355                            DatagramSocketControlHandle { inner: this.inner.clone() };
39356                        Ok(DatagramSocketRequest::GetIpTypeOfService {
39357                            responder: DatagramSocketGetIpTypeOfServiceResponder {
39358                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39359                                tx_id: header.tx_id,
39360                            },
39361                        })
39362                    }
39363                    0x29e2424b433ae1ef => {
39364                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39365                        let mut req = fidl::new_empty!(
39366                            BaseNetworkSocketSetIpTtlRequest,
39367                            fidl::encoding::DefaultFuchsiaResourceDialect
39368                        );
39369                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
39370                        let control_handle =
39371                            DatagramSocketControlHandle { inner: this.inner.clone() };
39372                        Ok(DatagramSocketRequest::SetIpTtl {
39373                            value: req.value,
39374
39375                            responder: DatagramSocketSetIpTtlResponder {
39376                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39377                                tx_id: header.tx_id,
39378                            },
39379                        })
39380                    }
39381                    0x47e47fa1f24da471 => {
39382                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39383                        let mut req = fidl::new_empty!(
39384                            fidl::encoding::EmptyPayload,
39385                            fidl::encoding::DefaultFuchsiaResourceDialect
39386                        );
39387                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39388                        let control_handle =
39389                            DatagramSocketControlHandle { inner: this.inner.clone() };
39390                        Ok(DatagramSocketRequest::GetIpTtl {
39391                            responder: DatagramSocketGetIpTtlResponder {
39392                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39393                                tx_id: header.tx_id,
39394                            },
39395                        })
39396                    }
39397                    0x392d16bee20c0e16 => {
39398                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39399                        let mut req = fidl::new_empty!(
39400                            BaseNetworkSocketSetIpPacketInfoRequest,
39401                            fidl::encoding::DefaultFuchsiaResourceDialect
39402                        );
39403                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
39404                        let control_handle =
39405                            DatagramSocketControlHandle { inner: this.inner.clone() };
39406                        Ok(DatagramSocketRequest::SetIpPacketInfo {
39407                            value: req.value,
39408
39409                            responder: DatagramSocketSetIpPacketInfoResponder {
39410                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39411                                tx_id: header.tx_id,
39412                            },
39413                        })
39414                    }
39415                    0x54b505f242280740 => {
39416                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39417                        let mut req = fidl::new_empty!(
39418                            fidl::encoding::EmptyPayload,
39419                            fidl::encoding::DefaultFuchsiaResourceDialect
39420                        );
39421                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39422                        let control_handle =
39423                            DatagramSocketControlHandle { inner: this.inner.clone() };
39424                        Ok(DatagramSocketRequest::GetIpPacketInfo {
39425                            responder: DatagramSocketGetIpPacketInfoResponder {
39426                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39427                                tx_id: header.tx_id,
39428                            },
39429                        })
39430                    }
39431                    0x6c4f6714995f84ef => {
39432                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39433                        let mut req = fidl::new_empty!(
39434                            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
39435                            fidl::encoding::DefaultFuchsiaResourceDialect
39436                        );
39437                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
39438                        let control_handle =
39439                            DatagramSocketControlHandle { inner: this.inner.clone() };
39440                        Ok(DatagramSocketRequest::SetIpReceiveTypeOfService {
39441                            value: req.value,
39442
39443                            responder: DatagramSocketSetIpReceiveTypeOfServiceResponder {
39444                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39445                                tx_id: header.tx_id,
39446                            },
39447                        })
39448                    }
39449                    0x4158ba7dc2795960 => {
39450                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39451                        let mut req = fidl::new_empty!(
39452                            fidl::encoding::EmptyPayload,
39453                            fidl::encoding::DefaultFuchsiaResourceDialect
39454                        );
39455                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39456                        let control_handle =
39457                            DatagramSocketControlHandle { inner: this.inner.clone() };
39458                        Ok(DatagramSocketRequest::GetIpReceiveTypeOfService {
39459                            responder: DatagramSocketGetIpReceiveTypeOfServiceResponder {
39460                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39461                                tx_id: header.tx_id,
39462                            },
39463                        })
39464                    }
39465                    0x46f15be0ce0ab82b => {
39466                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39467                        let mut req = fidl::new_empty!(
39468                            BaseNetworkSocketSetIpReceiveTtlRequest,
39469                            fidl::encoding::DefaultFuchsiaResourceDialect
39470                        );
39471                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
39472                        let control_handle =
39473                            DatagramSocketControlHandle { inner: this.inner.clone() };
39474                        Ok(DatagramSocketRequest::SetIpReceiveTtl {
39475                            value: req.value,
39476
39477                            responder: DatagramSocketSetIpReceiveTtlResponder {
39478                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39479                                tx_id: header.tx_id,
39480                            },
39481                        })
39482                    }
39483                    0x678ddd5a5dfa2eb5 => {
39484                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39485                        let mut req = fidl::new_empty!(
39486                            fidl::encoding::EmptyPayload,
39487                            fidl::encoding::DefaultFuchsiaResourceDialect
39488                        );
39489                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39490                        let control_handle =
39491                            DatagramSocketControlHandle { inner: this.inner.clone() };
39492                        Ok(DatagramSocketRequest::GetIpReceiveTtl {
39493                            responder: DatagramSocketGetIpReceiveTtlResponder {
39494                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39495                                tx_id: header.tx_id,
39496                            },
39497                        })
39498                    }
39499                    0x752fbfa9b12befe => {
39500                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39501                        let mut req = fidl::new_empty!(
39502                            BaseNetworkSocketSetIpMulticastInterfaceRequest,
39503                            fidl::encoding::DefaultFuchsiaResourceDialect
39504                        );
39505                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
39506                        let control_handle =
39507                            DatagramSocketControlHandle { inner: this.inner.clone() };
39508                        Ok(DatagramSocketRequest::SetIpMulticastInterface {
39509                            iface: req.iface,
39510                            address: req.address,
39511
39512                            responder: DatagramSocketSetIpMulticastInterfaceResponder {
39513                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39514                                tx_id: header.tx_id,
39515                            },
39516                        })
39517                    }
39518                    0x320bd14c4df046c4 => {
39519                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39520                        let mut req = fidl::new_empty!(
39521                            fidl::encoding::EmptyPayload,
39522                            fidl::encoding::DefaultFuchsiaResourceDialect
39523                        );
39524                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39525                        let control_handle =
39526                            DatagramSocketControlHandle { inner: this.inner.clone() };
39527                        Ok(DatagramSocketRequest::GetIpMulticastInterface {
39528                            responder: DatagramSocketGetIpMulticastInterfaceResponder {
39529                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39530                                tx_id: header.tx_id,
39531                            },
39532                        })
39533                    }
39534                    0x63134d53772916a1 => {
39535                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39536                        let mut req = fidl::new_empty!(
39537                            BaseNetworkSocketSetIpMulticastTtlRequest,
39538                            fidl::encoding::DefaultFuchsiaResourceDialect
39539                        );
39540                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
39541                        let control_handle =
39542                            DatagramSocketControlHandle { inner: this.inner.clone() };
39543                        Ok(DatagramSocketRequest::SetIpMulticastTtl {
39544                            value: req.value,
39545
39546                            responder: DatagramSocketSetIpMulticastTtlResponder {
39547                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39548                                tx_id: header.tx_id,
39549                            },
39550                        })
39551                    }
39552                    0x4665cd378f39e1a => {
39553                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39554                        let mut req = fidl::new_empty!(
39555                            fidl::encoding::EmptyPayload,
39556                            fidl::encoding::DefaultFuchsiaResourceDialect
39557                        );
39558                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39559                        let control_handle =
39560                            DatagramSocketControlHandle { inner: this.inner.clone() };
39561                        Ok(DatagramSocketRequest::GetIpMulticastTtl {
39562                            responder: DatagramSocketGetIpMulticastTtlResponder {
39563                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39564                                tx_id: header.tx_id,
39565                            },
39566                        })
39567                    }
39568                    0x20c55c11f00943ea => {
39569                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39570                        let mut req = fidl::new_empty!(
39571                            BaseNetworkSocketSetIpMulticastLoopbackRequest,
39572                            fidl::encoding::DefaultFuchsiaResourceDialect
39573                        );
39574                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
39575                        let control_handle =
39576                            DatagramSocketControlHandle { inner: this.inner.clone() };
39577                        Ok(DatagramSocketRequest::SetIpMulticastLoopback {
39578                            value: req.value,
39579
39580                            responder: DatagramSocketSetIpMulticastLoopbackResponder {
39581                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39582                                tx_id: header.tx_id,
39583                            },
39584                        })
39585                    }
39586                    0x3b6b26ff558298f2 => {
39587                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39588                        let mut req = fidl::new_empty!(
39589                            fidl::encoding::EmptyPayload,
39590                            fidl::encoding::DefaultFuchsiaResourceDialect
39591                        );
39592                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39593                        let control_handle =
39594                            DatagramSocketControlHandle { inner: this.inner.clone() };
39595                        Ok(DatagramSocketRequest::GetIpMulticastLoopback {
39596                            responder: DatagramSocketGetIpMulticastLoopbackResponder {
39597                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39598                                tx_id: header.tx_id,
39599                            },
39600                        })
39601                    }
39602                    0x76bc7df115a3b4d0 => {
39603                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39604                        let mut req = fidl::new_empty!(
39605                            BaseNetworkSocketAddIpMembershipRequest,
39606                            fidl::encoding::DefaultFuchsiaResourceDialect
39607                        );
39608                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
39609                        let control_handle =
39610                            DatagramSocketControlHandle { inner: this.inner.clone() };
39611                        Ok(DatagramSocketRequest::AddIpMembership {
39612                            membership: req.membership,
39613
39614                            responder: DatagramSocketAddIpMembershipResponder {
39615                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39616                                tx_id: header.tx_id,
39617                            },
39618                        })
39619                    }
39620                    0x2888f3099188d03 => {
39621                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39622                        let mut req = fidl::new_empty!(
39623                            BaseNetworkSocketDropIpMembershipRequest,
39624                            fidl::encoding::DefaultFuchsiaResourceDialect
39625                        );
39626                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
39627                        let control_handle =
39628                            DatagramSocketControlHandle { inner: this.inner.clone() };
39629                        Ok(DatagramSocketRequest::DropIpMembership {
39630                            membership: req.membership,
39631
39632                            responder: DatagramSocketDropIpMembershipResponder {
39633                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39634                                tx_id: header.tx_id,
39635                            },
39636                        })
39637                    }
39638                    0x1ae532b0c066e3a0 => {
39639                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39640                        let mut req = fidl::new_empty!(
39641                            BaseNetworkSocketSetIpTransparentRequest,
39642                            fidl::encoding::DefaultFuchsiaResourceDialect
39643                        );
39644                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
39645                        let control_handle =
39646                            DatagramSocketControlHandle { inner: this.inner.clone() };
39647                        Ok(DatagramSocketRequest::SetIpTransparent {
39648                            value: req.value,
39649
39650                            responder: DatagramSocketSetIpTransparentResponder {
39651                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39652                                tx_id: header.tx_id,
39653                            },
39654                        })
39655                    }
39656                    0x51d43695962ebfb5 => {
39657                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39658                        let mut req = fidl::new_empty!(
39659                            fidl::encoding::EmptyPayload,
39660                            fidl::encoding::DefaultFuchsiaResourceDialect
39661                        );
39662                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39663                        let control_handle =
39664                            DatagramSocketControlHandle { inner: this.inner.clone() };
39665                        Ok(DatagramSocketRequest::GetIpTransparent {
39666                            responder: DatagramSocketGetIpTransparentResponder {
39667                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39668                                tx_id: header.tx_id,
39669                            },
39670                        })
39671                    }
39672                    0x4722b4ce52f7840 => {
39673                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39674                        let mut req = fidl::new_empty!(
39675                            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
39676                            fidl::encoding::DefaultFuchsiaResourceDialect
39677                        );
39678                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
39679                        let control_handle =
39680                            DatagramSocketControlHandle { inner: this.inner.clone() };
39681                        Ok(DatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {
39682                            value: req.value,
39683
39684                            responder:
39685                                DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
39686                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
39687                                    tx_id: header.tx_id,
39688                                },
39689                        })
39690                    }
39691                    0x2a0e7dc5d6bfdfe9 => {
39692                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39693                        let mut req = fidl::new_empty!(
39694                            fidl::encoding::EmptyPayload,
39695                            fidl::encoding::DefaultFuchsiaResourceDialect
39696                        );
39697                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39698                        let control_handle =
39699                            DatagramSocketControlHandle { inner: this.inner.clone() };
39700                        Ok(DatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
39701                            responder:
39702                                DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
39703                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
39704                                    tx_id: header.tx_id,
39705                                },
39706                        })
39707                    }
39708                    0x7c94727acb4ea4b3 => {
39709                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39710                        let mut req = fidl::new_empty!(
39711                            BaseNetworkSocketAddIpv6MembershipRequest,
39712                            fidl::encoding::DefaultFuchsiaResourceDialect
39713                        );
39714                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
39715                        let control_handle =
39716                            DatagramSocketControlHandle { inner: this.inner.clone() };
39717                        Ok(DatagramSocketRequest::AddIpv6Membership {
39718                            membership: req.membership,
39719
39720                            responder: DatagramSocketAddIpv6MembershipResponder {
39721                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39722                                tx_id: header.tx_id,
39723                            },
39724                        })
39725                    }
39726                    0x42104c70ccaba304 => {
39727                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39728                        let mut req = fidl::new_empty!(
39729                            BaseNetworkSocketDropIpv6MembershipRequest,
39730                            fidl::encoding::DefaultFuchsiaResourceDialect
39731                        );
39732                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
39733                        let control_handle =
39734                            DatagramSocketControlHandle { inner: this.inner.clone() };
39735                        Ok(DatagramSocketRequest::DropIpv6Membership {
39736                            membership: req.membership,
39737
39738                            responder: DatagramSocketDropIpv6MembershipResponder {
39739                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39740                                tx_id: header.tx_id,
39741                            },
39742                        })
39743                    }
39744                    0x135f76db3774ab3b => {
39745                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39746                        let mut req = fidl::new_empty!(
39747                            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
39748                            fidl::encoding::DefaultFuchsiaResourceDialect
39749                        );
39750                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
39751                        let control_handle =
39752                            DatagramSocketControlHandle { inner: this.inner.clone() };
39753                        Ok(DatagramSocketRequest::SetIpv6MulticastInterface {
39754                            value: req.value,
39755
39756                            responder: DatagramSocketSetIpv6MulticastInterfaceResponder {
39757                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39758                                tx_id: header.tx_id,
39759                            },
39760                        })
39761                    }
39762                    0x1f26fcdd348f1882 => {
39763                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39764                        let mut req = fidl::new_empty!(
39765                            fidl::encoding::EmptyPayload,
39766                            fidl::encoding::DefaultFuchsiaResourceDialect
39767                        );
39768                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39769                        let control_handle =
39770                            DatagramSocketControlHandle { inner: this.inner.clone() };
39771                        Ok(DatagramSocketRequest::GetIpv6MulticastInterface {
39772                            responder: DatagramSocketGetIpv6MulticastInterfaceResponder {
39773                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39774                                tx_id: header.tx_id,
39775                            },
39776                        })
39777                    }
39778                    0x157d51e98f462859 => {
39779                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39780                        let mut req = fidl::new_empty!(
39781                            BaseNetworkSocketSetIpv6UnicastHopsRequest,
39782                            fidl::encoding::DefaultFuchsiaResourceDialect
39783                        );
39784                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
39785                        let control_handle =
39786                            DatagramSocketControlHandle { inner: this.inner.clone() };
39787                        Ok(DatagramSocketRequest::SetIpv6UnicastHops {
39788                            value: req.value,
39789
39790                            responder: DatagramSocketSetIpv6UnicastHopsResponder {
39791                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39792                                tx_id: header.tx_id,
39793                            },
39794                        })
39795                    }
39796                    0x21f4641cad8bd8d2 => {
39797                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39798                        let mut req = fidl::new_empty!(
39799                            fidl::encoding::EmptyPayload,
39800                            fidl::encoding::DefaultFuchsiaResourceDialect
39801                        );
39802                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39803                        let control_handle =
39804                            DatagramSocketControlHandle { inner: this.inner.clone() };
39805                        Ok(DatagramSocketRequest::GetIpv6UnicastHops {
39806                            responder: DatagramSocketGetIpv6UnicastHopsResponder {
39807                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39808                                tx_id: header.tx_id,
39809                            },
39810                        })
39811                    }
39812                    0x5c24808ed2e84a1e => {
39813                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39814                        let mut req = fidl::new_empty!(
39815                            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
39816                            fidl::encoding::DefaultFuchsiaResourceDialect
39817                        );
39818                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
39819                        let control_handle =
39820                            DatagramSocketControlHandle { inner: this.inner.clone() };
39821                        Ok(DatagramSocketRequest::SetIpv6ReceiveHopLimit {
39822                            value: req.value,
39823
39824                            responder: DatagramSocketSetIpv6ReceiveHopLimitResponder {
39825                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39826                                tx_id: header.tx_id,
39827                            },
39828                        })
39829                    }
39830                    0x341e06689885b4c0 => {
39831                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39832                        let mut req = fidl::new_empty!(
39833                            fidl::encoding::EmptyPayload,
39834                            fidl::encoding::DefaultFuchsiaResourceDialect
39835                        );
39836                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39837                        let control_handle =
39838                            DatagramSocketControlHandle { inner: this.inner.clone() };
39839                        Ok(DatagramSocketRequest::GetIpv6ReceiveHopLimit {
39840                            responder: DatagramSocketGetIpv6ReceiveHopLimitResponder {
39841                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39842                                tx_id: header.tx_id,
39843                            },
39844                        })
39845                    }
39846                    0x25b9cd4d181f82c1 => {
39847                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39848                        let mut req = fidl::new_empty!(
39849                            BaseNetworkSocketSetIpv6MulticastHopsRequest,
39850                            fidl::encoding::DefaultFuchsiaResourceDialect
39851                        );
39852                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
39853                        let control_handle =
39854                            DatagramSocketControlHandle { inner: this.inner.clone() };
39855                        Ok(DatagramSocketRequest::SetIpv6MulticastHops {
39856                            value: req.value,
39857
39858                            responder: DatagramSocketSetIpv6MulticastHopsResponder {
39859                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39860                                tx_id: header.tx_id,
39861                            },
39862                        })
39863                    }
39864                    0x52916948a365012a => {
39865                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39866                        let mut req = fidl::new_empty!(
39867                            fidl::encoding::EmptyPayload,
39868                            fidl::encoding::DefaultFuchsiaResourceDialect
39869                        );
39870                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39871                        let control_handle =
39872                            DatagramSocketControlHandle { inner: this.inner.clone() };
39873                        Ok(DatagramSocketRequest::GetIpv6MulticastHops {
39874                            responder: DatagramSocketGetIpv6MulticastHopsResponder {
39875                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39876                                tx_id: header.tx_id,
39877                            },
39878                        })
39879                    }
39880                    0x55701c409ff41b40 => {
39881                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39882                        let mut req = fidl::new_empty!(
39883                            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
39884                            fidl::encoding::DefaultFuchsiaResourceDialect
39885                        );
39886                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
39887                        let control_handle =
39888                            DatagramSocketControlHandle { inner: this.inner.clone() };
39889                        Ok(DatagramSocketRequest::SetIpv6MulticastLoopback {
39890                            value: req.value,
39891
39892                            responder: DatagramSocketSetIpv6MulticastLoopbackResponder {
39893                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39894                                tx_id: header.tx_id,
39895                            },
39896                        })
39897                    }
39898                    0x4415b701fde319c3 => {
39899                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39900                        let mut req = fidl::new_empty!(
39901                            fidl::encoding::EmptyPayload,
39902                            fidl::encoding::DefaultFuchsiaResourceDialect
39903                        );
39904                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39905                        let control_handle =
39906                            DatagramSocketControlHandle { inner: this.inner.clone() };
39907                        Ok(DatagramSocketRequest::GetIpv6MulticastLoopback {
39908                            responder: DatagramSocketGetIpv6MulticastLoopbackResponder {
39909                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39910                                tx_id: header.tx_id,
39911                            },
39912                        })
39913                    }
39914                    0x4873f1364758cbba => {
39915                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39916                        let mut req = fidl::new_empty!(
39917                            BaseNetworkSocketSetIpv6OnlyRequest,
39918                            fidl::encoding::DefaultFuchsiaResourceDialect
39919                        );
39920                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
39921                        let control_handle =
39922                            DatagramSocketControlHandle { inner: this.inner.clone() };
39923                        Ok(DatagramSocketRequest::SetIpv6Only {
39924                            value: req.value,
39925
39926                            responder: DatagramSocketSetIpv6OnlyResponder {
39927                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39928                                tx_id: header.tx_id,
39929                            },
39930                        })
39931                    }
39932                    0x4aa3340a1a26b89c => {
39933                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39934                        let mut req = fidl::new_empty!(
39935                            fidl::encoding::EmptyPayload,
39936                            fidl::encoding::DefaultFuchsiaResourceDialect
39937                        );
39938                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39939                        let control_handle =
39940                            DatagramSocketControlHandle { inner: this.inner.clone() };
39941                        Ok(DatagramSocketRequest::GetIpv6Only {
39942                            responder: DatagramSocketGetIpv6OnlyResponder {
39943                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39944                                tx_id: header.tx_id,
39945                            },
39946                        })
39947                    }
39948                    0x58f07c8788d099a0 => {
39949                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39950                        let mut req = fidl::new_empty!(
39951                            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
39952                            fidl::encoding::DefaultFuchsiaResourceDialect
39953                        );
39954                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
39955                        let control_handle =
39956                            DatagramSocketControlHandle { inner: this.inner.clone() };
39957                        Ok(DatagramSocketRequest::SetIpv6ReceiveTrafficClass {
39958                            value: req.value,
39959
39960                            responder: DatagramSocketSetIpv6ReceiveTrafficClassResponder {
39961                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39962                                tx_id: header.tx_id,
39963                            },
39964                        })
39965                    }
39966                    0x2e334df1da553ffa => {
39967                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39968                        let mut req = fidl::new_empty!(
39969                            fidl::encoding::EmptyPayload,
39970                            fidl::encoding::DefaultFuchsiaResourceDialect
39971                        );
39972                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
39973                        let control_handle =
39974                            DatagramSocketControlHandle { inner: this.inner.clone() };
39975                        Ok(DatagramSocketRequest::GetIpv6ReceiveTrafficClass {
39976                            responder: DatagramSocketGetIpv6ReceiveTrafficClassResponder {
39977                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39978                                tx_id: header.tx_id,
39979                            },
39980                        })
39981                    }
39982                    0x6af077800c5a0b4f => {
39983                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
39984                        let mut req = fidl::new_empty!(
39985                            BaseNetworkSocketSetIpv6TrafficClassRequest,
39986                            fidl::encoding::DefaultFuchsiaResourceDialect
39987                        );
39988                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
39989                        let control_handle =
39990                            DatagramSocketControlHandle { inner: this.inner.clone() };
39991                        Ok(DatagramSocketRequest::SetIpv6TrafficClass {
39992                            value: req.value,
39993
39994                            responder: DatagramSocketSetIpv6TrafficClassResponder {
39995                                control_handle: std::mem::ManuallyDrop::new(control_handle),
39996                                tx_id: header.tx_id,
39997                            },
39998                        })
39999                    }
40000                    0x6baf6eed8fc2f04 => {
40001                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40002                        let mut req = fidl::new_empty!(
40003                            fidl::encoding::EmptyPayload,
40004                            fidl::encoding::DefaultFuchsiaResourceDialect
40005                        );
40006                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40007                        let control_handle =
40008                            DatagramSocketControlHandle { inner: this.inner.clone() };
40009                        Ok(DatagramSocketRequest::GetIpv6TrafficClass {
40010                            responder: DatagramSocketGetIpv6TrafficClassResponder {
40011                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40012                                tx_id: header.tx_id,
40013                            },
40014                        })
40015                    }
40016                    0x19259775b1a92768 => {
40017                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40018                        let mut req = fidl::new_empty!(
40019                            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
40020                            fidl::encoding::DefaultFuchsiaResourceDialect
40021                        );
40022                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
40023                        let control_handle =
40024                            DatagramSocketControlHandle { inner: this.inner.clone() };
40025                        Ok(DatagramSocketRequest::SetIpv6ReceivePacketInfo {
40026                            value: req.value,
40027
40028                            responder: DatagramSocketSetIpv6ReceivePacketInfoResponder {
40029                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40030                                tx_id: header.tx_id,
40031                            },
40032                        })
40033                    }
40034                    0x7acd4a2775baec75 => {
40035                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40036                        let mut req = fidl::new_empty!(
40037                            fidl::encoding::EmptyPayload,
40038                            fidl::encoding::DefaultFuchsiaResourceDialect
40039                        );
40040                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40041                        let control_handle =
40042                            DatagramSocketControlHandle { inner: this.inner.clone() };
40043                        Ok(DatagramSocketRequest::GetIpv6ReceivePacketInfo {
40044                            responder: DatagramSocketGetIpv6ReceivePacketInfoResponder {
40045                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40046                                tx_id: header.tx_id,
40047                            },
40048                        })
40049                    }
40050                    0x38bf28f0dafdbac0 => {
40051                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40052                        let mut req = fidl::new_empty!(
40053                            fidl::encoding::EmptyPayload,
40054                            fidl::encoding::DefaultFuchsiaResourceDialect
40055                        );
40056                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40057                        let control_handle =
40058                            DatagramSocketControlHandle { inner: this.inner.clone() };
40059                        Ok(DatagramSocketRequest::GetOriginalDestination {
40060                            responder: DatagramSocketGetOriginalDestinationResponder {
40061                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40062                                tx_id: header.tx_id,
40063                            },
40064                        })
40065                    }
40066                    0x48aa0a1f6a32d2ed => {
40067                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40068                        let mut req = fidl::new_empty!(
40069                            fidl::encoding::EmptyPayload,
40070                            fidl::encoding::DefaultFuchsiaResourceDialect
40071                        );
40072                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40073                        let control_handle =
40074                            DatagramSocketControlHandle { inner: this.inner.clone() };
40075                        Ok(DatagramSocketRequest::GetInfo {
40076                            responder: DatagramSocketGetInfoResponder {
40077                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40078                                tx_id: header.tx_id,
40079                            },
40080                        })
40081                    }
40082                    0xbf1e2f0a86601f3 => {
40083                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40084                        let mut req = fidl::new_empty!(
40085                            fidl::encoding::EmptyPayload,
40086                            fidl::encoding::DefaultFuchsiaResourceDialect
40087                        );
40088                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40089                        let control_handle =
40090                            DatagramSocketControlHandle { inner: this.inner.clone() };
40091                        Ok(DatagramSocketRequest::Describe {
40092                            responder: DatagramSocketDescribeResponder {
40093                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40094                                tx_id: header.tx_id,
40095                            },
40096                        })
40097                    }
40098                    0x5362e668e777248a => {
40099                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40100                        let mut req = fidl::new_empty!(
40101                            DatagramSocketSendMsgPreflightRequest,
40102                            fidl::encoding::DefaultFuchsiaResourceDialect
40103                        );
40104                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DatagramSocketSendMsgPreflightRequest>(&header, _body_bytes, handles, &mut req)?;
40105                        let control_handle =
40106                            DatagramSocketControlHandle { inner: this.inner.clone() };
40107                        Ok(DatagramSocketRequest::SendMsgPreflight {
40108                            payload: req,
40109                            responder: DatagramSocketSendMsgPreflightResponder {
40110                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40111                                tx_id: header.tx_id,
40112                            },
40113                        })
40114                    }
40115                    0x1a7cdeca5f3eb8e2 => {
40116                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
40117                        let mut req = fidl::new_empty!(
40118                            fidl::encoding::EmptyPayload,
40119                            fidl::encoding::DefaultFuchsiaResourceDialect
40120                        );
40121                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
40122                        let control_handle =
40123                            DatagramSocketControlHandle { inner: this.inner.clone() };
40124                        Ok(DatagramSocketRequest::RecvMsgPostflight {
40125                            responder: DatagramSocketRecvMsgPostflightResponder {
40126                                control_handle: std::mem::ManuallyDrop::new(control_handle),
40127                                tx_id: header.tx_id,
40128                            },
40129                        })
40130                    }
40131                    _ => Err(fidl::Error::UnknownOrdinal {
40132                        ordinal: header.ordinal,
40133                        protocol_name:
40134                            <DatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
40135                    }),
40136                }))
40137            },
40138        )
40139    }
40140}
40141
40142/// A datagram socket.
40143#[derive(Debug)]
40144pub enum DatagramSocketRequest {
40145    Clone {
40146        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
40147        control_handle: DatagramSocketControlHandle,
40148    },
40149    /// Terminates the connection.
40150    ///
40151    /// After calling `Close`, the client must not send any other requests.
40152    ///
40153    /// Servers, after sending the status response, should close the connection
40154    /// regardless of status and without sending an epitaph.
40155    ///
40156    /// Closing the client end of the channel should be semantically equivalent
40157    /// to calling `Close` without knowing when the close has completed or its
40158    /// status.
40159    Close {
40160        responder: DatagramSocketCloseResponder,
40161    },
40162    Query {
40163        responder: DatagramSocketQueryResponder,
40164    },
40165    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
40166    SetReuseAddress {
40167        value: bool,
40168        responder: DatagramSocketSetReuseAddressResponder,
40169    },
40170    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
40171    GetReuseAddress {
40172        responder: DatagramSocketGetReuseAddressResponder,
40173    },
40174    /// Get `SOL_SOCKET` -> `SO_ERROR`.
40175    /// Returns the last error if there is an error set on the socket.
40176    GetError {
40177        responder: DatagramSocketGetErrorResponder,
40178    },
40179    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
40180    SetBroadcast {
40181        value: bool,
40182        responder: DatagramSocketSetBroadcastResponder,
40183    },
40184    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
40185    GetBroadcast {
40186        responder: DatagramSocketGetBroadcastResponder,
40187    },
40188    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
40189    SetSendBuffer {
40190        value_bytes: u64,
40191        responder: DatagramSocketSetSendBufferResponder,
40192    },
40193    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
40194    GetSendBuffer {
40195        responder: DatagramSocketGetSendBufferResponder,
40196    },
40197    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
40198    SetReceiveBuffer {
40199        value_bytes: u64,
40200        responder: DatagramSocketSetReceiveBufferResponder,
40201    },
40202    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
40203    GetReceiveBuffer {
40204        responder: DatagramSocketGetReceiveBufferResponder,
40205    },
40206    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
40207    SetKeepAlive {
40208        value: bool,
40209        responder: DatagramSocketSetKeepAliveResponder,
40210    },
40211    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
40212    GetKeepAlive {
40213        responder: DatagramSocketGetKeepAliveResponder,
40214    },
40215    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
40216    SetOutOfBandInline {
40217        value: bool,
40218        responder: DatagramSocketSetOutOfBandInlineResponder,
40219    },
40220    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
40221    GetOutOfBandInline {
40222        responder: DatagramSocketGetOutOfBandInlineResponder,
40223    },
40224    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
40225    SetNoCheck {
40226        value: bool,
40227        responder: DatagramSocketSetNoCheckResponder,
40228    },
40229    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
40230    GetNoCheck {
40231        responder: DatagramSocketGetNoCheckResponder,
40232    },
40233    /// Set `SOL_SOCKET` -> `SO_LINGER`.
40234    SetLinger {
40235        linger: bool,
40236        length_secs: u32,
40237        responder: DatagramSocketSetLingerResponder,
40238    },
40239    /// Get `SOL_SOCKET` -> `SO_LINGER`.
40240    GetLinger {
40241        responder: DatagramSocketGetLingerResponder,
40242    },
40243    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
40244    SetReusePort {
40245        value: bool,
40246        responder: DatagramSocketSetReusePortResponder,
40247    },
40248    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
40249    GetReusePort {
40250        responder: DatagramSocketGetReusePortResponder,
40251    },
40252    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
40253    GetAcceptConn {
40254        responder: DatagramSocketGetAcceptConnResponder,
40255    },
40256    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
40257    SetBindToDevice {
40258        value: String,
40259        responder: DatagramSocketSetBindToDeviceResponder,
40260    },
40261    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
40262    GetBindToDevice {
40263        responder: DatagramSocketGetBindToDeviceResponder,
40264    },
40265    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
40266    /// If `value` is 0, this clears the bound interface.
40267    SetBindToInterfaceIndex {
40268        value: u64,
40269        responder: DatagramSocketSetBindToInterfaceIndexResponder,
40270    },
40271    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
40272    GetBindToInterfaceIndex {
40273        responder: DatagramSocketGetBindToInterfaceIndexResponder,
40274    },
40275    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
40276    SetTimestamp {
40277        value: TimestampOption,
40278        responder: DatagramSocketSetTimestampResponder,
40279    },
40280    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
40281    GetTimestamp {
40282        responder: DatagramSocketGetTimestampResponder,
40283    },
40284    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
40285    /// unlike the standard SO_MARK, this API has multiple mark domains and each
40286    /// mark can be set independently in each domain.
40287    SetMark {
40288        domain: fidl_fuchsia_net::MarkDomain,
40289        mark: OptionalUint32,
40290        responder: DatagramSocketSetMarkResponder,
40291    },
40292    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
40293    /// unlike the standard SO_MARK, this API has multiple mark domains and each
40294    /// mark can be retrieved independently in each domain.
40295    GetMark {
40296        domain: fidl_fuchsia_net::MarkDomain,
40297        responder: DatagramSocketGetMarkResponder,
40298    },
40299    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
40300    GetCookie {
40301        responder: DatagramSocketGetCookieResponder,
40302    },
40303    /// Sets the local address used for the socket.
40304    Bind {
40305        addr: fidl_fuchsia_net::SocketAddress,
40306        responder: DatagramSocketBindResponder,
40307    },
40308    /// Initiates a connection to a remote address.
40309    Connect {
40310        addr: fidl_fuchsia_net::SocketAddress,
40311        responder: DatagramSocketConnectResponder,
40312    },
40313    /// Clears connection information from this socket.
40314    Disconnect {
40315        responder: DatagramSocketDisconnectResponder,
40316    },
40317    /// Retrieves the local socket address.
40318    GetSockName {
40319        responder: DatagramSocketGetSockNameResponder,
40320    },
40321    /// Retrieves the remote socket address.
40322    GetPeerName {
40323        responder: DatagramSocketGetPeerNameResponder,
40324    },
40325    /// Shuts down part of the socket.
40326    Shutdown {
40327        mode: ShutdownMode,
40328        responder: DatagramSocketShutdownResponder,
40329    },
40330    /// Set `SOL_IP` -> `IP_TOS`.
40331    SetIpTypeOfService {
40332        value: u8,
40333        responder: DatagramSocketSetIpTypeOfServiceResponder,
40334    },
40335    /// Get `SOL_IP` -> `IP_TOS`.
40336    GetIpTypeOfService {
40337        responder: DatagramSocketGetIpTypeOfServiceResponder,
40338    },
40339    /// Set `SOL_IP` -> `IP_TTL`.
40340    SetIpTtl {
40341        value: OptionalUint8,
40342        responder: DatagramSocketSetIpTtlResponder,
40343    },
40344    /// Get `SOL_IP` -> `IP_TTL`.
40345    GetIpTtl {
40346        responder: DatagramSocketGetIpTtlResponder,
40347    },
40348    /// Set `SOL_IP` -> `IP_PKTINFO`.
40349    SetIpPacketInfo {
40350        value: bool,
40351        responder: DatagramSocketSetIpPacketInfoResponder,
40352    },
40353    /// Get `SOL_IP` -> `IP_PKTINFO`.
40354    GetIpPacketInfo {
40355        responder: DatagramSocketGetIpPacketInfoResponder,
40356    },
40357    /// Set `SOL_IP` -> `IP_RECVTOS`.
40358    SetIpReceiveTypeOfService {
40359        value: bool,
40360        responder: DatagramSocketSetIpReceiveTypeOfServiceResponder,
40361    },
40362    /// Get `SOL_IP` -> `IP_RECVTOS`.
40363    GetIpReceiveTypeOfService {
40364        responder: DatagramSocketGetIpReceiveTypeOfServiceResponder,
40365    },
40366    /// Set `SOL_IP` -> `IP_RECVTTL`.
40367    SetIpReceiveTtl {
40368        value: bool,
40369        responder: DatagramSocketSetIpReceiveTtlResponder,
40370    },
40371    /// Get `SOL_IP` -> `IP_RECVTTL`.
40372    GetIpReceiveTtl {
40373        responder: DatagramSocketGetIpReceiveTtlResponder,
40374    },
40375    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
40376    SetIpMulticastInterface {
40377        iface: u64,
40378        address: fidl_fuchsia_net::Ipv4Address,
40379        responder: DatagramSocketSetIpMulticastInterfaceResponder,
40380    },
40381    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
40382    GetIpMulticastInterface {
40383        responder: DatagramSocketGetIpMulticastInterfaceResponder,
40384    },
40385    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
40386    SetIpMulticastTtl {
40387        value: OptionalUint8,
40388        responder: DatagramSocketSetIpMulticastTtlResponder,
40389    },
40390    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
40391    GetIpMulticastTtl {
40392        responder: DatagramSocketGetIpMulticastTtlResponder,
40393    },
40394    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
40395    SetIpMulticastLoopback {
40396        value: bool,
40397        responder: DatagramSocketSetIpMulticastLoopbackResponder,
40398    },
40399    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
40400    GetIpMulticastLoopback {
40401        responder: DatagramSocketGetIpMulticastLoopbackResponder,
40402    },
40403    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
40404    AddIpMembership {
40405        membership: IpMulticastMembership,
40406        responder: DatagramSocketAddIpMembershipResponder,
40407    },
40408    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
40409    DropIpMembership {
40410        membership: IpMulticastMembership,
40411        responder: DatagramSocketDropIpMembershipResponder,
40412    },
40413    /// Set `SOL_IP` -> `IP_TRANSPARENT`
40414    SetIpTransparent {
40415        value: bool,
40416        responder: DatagramSocketSetIpTransparentResponder,
40417    },
40418    /// Get `SOL_IP` -> `IP_TRANSPARENT`
40419    GetIpTransparent {
40420        responder: DatagramSocketGetIpTransparentResponder,
40421    },
40422    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
40423    SetIpReceiveOriginalDestinationAddress {
40424        value: bool,
40425        responder: DatagramSocketSetIpReceiveOriginalDestinationAddressResponder,
40426    },
40427    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
40428    GetIpReceiveOriginalDestinationAddress {
40429        responder: DatagramSocketGetIpReceiveOriginalDestinationAddressResponder,
40430    },
40431    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
40432    AddIpv6Membership {
40433        membership: Ipv6MulticastMembership,
40434        responder: DatagramSocketAddIpv6MembershipResponder,
40435    },
40436    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
40437    DropIpv6Membership {
40438        membership: Ipv6MulticastMembership,
40439        responder: DatagramSocketDropIpv6MembershipResponder,
40440    },
40441    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
40442    SetIpv6MulticastInterface {
40443        value: u64,
40444        responder: DatagramSocketSetIpv6MulticastInterfaceResponder,
40445    },
40446    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
40447    GetIpv6MulticastInterface {
40448        responder: DatagramSocketGetIpv6MulticastInterfaceResponder,
40449    },
40450    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
40451    SetIpv6UnicastHops {
40452        value: OptionalUint8,
40453        responder: DatagramSocketSetIpv6UnicastHopsResponder,
40454    },
40455    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
40456    GetIpv6UnicastHops {
40457        responder: DatagramSocketGetIpv6UnicastHopsResponder,
40458    },
40459    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
40460    SetIpv6ReceiveHopLimit {
40461        value: bool,
40462        responder: DatagramSocketSetIpv6ReceiveHopLimitResponder,
40463    },
40464    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
40465    GetIpv6ReceiveHopLimit {
40466        responder: DatagramSocketGetIpv6ReceiveHopLimitResponder,
40467    },
40468    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
40469    SetIpv6MulticastHops {
40470        value: OptionalUint8,
40471        responder: DatagramSocketSetIpv6MulticastHopsResponder,
40472    },
40473    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
40474    GetIpv6MulticastHops {
40475        responder: DatagramSocketGetIpv6MulticastHopsResponder,
40476    },
40477    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
40478    SetIpv6MulticastLoopback {
40479        value: bool,
40480        responder: DatagramSocketSetIpv6MulticastLoopbackResponder,
40481    },
40482    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
40483    GetIpv6MulticastLoopback {
40484        responder: DatagramSocketGetIpv6MulticastLoopbackResponder,
40485    },
40486    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
40487    SetIpv6Only {
40488        value: bool,
40489        responder: DatagramSocketSetIpv6OnlyResponder,
40490    },
40491    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
40492    GetIpv6Only {
40493        responder: DatagramSocketGetIpv6OnlyResponder,
40494    },
40495    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
40496    SetIpv6ReceiveTrafficClass {
40497        value: bool,
40498        responder: DatagramSocketSetIpv6ReceiveTrafficClassResponder,
40499    },
40500    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
40501    GetIpv6ReceiveTrafficClass {
40502        responder: DatagramSocketGetIpv6ReceiveTrafficClassResponder,
40503    },
40504    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
40505    SetIpv6TrafficClass {
40506        value: OptionalUint8,
40507        responder: DatagramSocketSetIpv6TrafficClassResponder,
40508    },
40509    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
40510    GetIpv6TrafficClass {
40511        responder: DatagramSocketGetIpv6TrafficClassResponder,
40512    },
40513    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
40514    SetIpv6ReceivePacketInfo {
40515        value: bool,
40516        responder: DatagramSocketSetIpv6ReceivePacketInfoResponder,
40517    },
40518    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
40519    GetIpv6ReceivePacketInfo {
40520        responder: DatagramSocketGetIpv6ReceivePacketInfoResponder,
40521    },
40522    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
40523    GetOriginalDestination {
40524        responder: DatagramSocketGetOriginalDestinationResponder,
40525    },
40526    /// Retrieves creation information from the socket.
40527    ///
40528    /// - response `domain` the socket's associated domain.
40529    /// - response `proto` the socket's associated protocol.
40530    GetInfo {
40531        responder: DatagramSocketGetInfoResponder,
40532    },
40533    Describe {
40534        responder: DatagramSocketDescribeResponder,
40535    },
40536    /// Validates that data can be sent.
40537    ///
40538    /// + request `args` the requested disposition of data to be sent.
40539    /// - response the constraints sent data must satisfy.
40540    /// * error the error code indicating the reason for validation failure.
40541    SendMsgPreflight {
40542        payload: DatagramSocketSendMsgPreflightRequest,
40543        responder: DatagramSocketSendMsgPreflightResponder,
40544    },
40545    /// Returns the set of requested control messages.
40546    ///
40547    /// - response the set of currently requested control messages.
40548    RecvMsgPostflight {
40549        responder: DatagramSocketRecvMsgPostflightResponder,
40550    },
40551}
40552
40553impl DatagramSocketRequest {
40554    #[allow(irrefutable_let_patterns)]
40555    pub fn into_clone(
40556        self,
40557    ) -> Option<(
40558        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
40559        DatagramSocketControlHandle,
40560    )> {
40561        if let DatagramSocketRequest::Clone { request, control_handle } = self {
40562            Some((request, control_handle))
40563        } else {
40564            None
40565        }
40566    }
40567
40568    #[allow(irrefutable_let_patterns)]
40569    pub fn into_close(self) -> Option<(DatagramSocketCloseResponder)> {
40570        if let DatagramSocketRequest::Close { responder } = self { Some((responder)) } else { None }
40571    }
40572
40573    #[allow(irrefutable_let_patterns)]
40574    pub fn into_query(self) -> Option<(DatagramSocketQueryResponder)> {
40575        if let DatagramSocketRequest::Query { responder } = self { Some((responder)) } else { None }
40576    }
40577
40578    #[allow(irrefutable_let_patterns)]
40579    pub fn into_set_reuse_address(self) -> Option<(bool, DatagramSocketSetReuseAddressResponder)> {
40580        if let DatagramSocketRequest::SetReuseAddress { value, responder } = self {
40581            Some((value, responder))
40582        } else {
40583            None
40584        }
40585    }
40586
40587    #[allow(irrefutable_let_patterns)]
40588    pub fn into_get_reuse_address(self) -> Option<(DatagramSocketGetReuseAddressResponder)> {
40589        if let DatagramSocketRequest::GetReuseAddress { responder } = self {
40590            Some((responder))
40591        } else {
40592            None
40593        }
40594    }
40595
40596    #[allow(irrefutable_let_patterns)]
40597    pub fn into_get_error(self) -> Option<(DatagramSocketGetErrorResponder)> {
40598        if let DatagramSocketRequest::GetError { responder } = self {
40599            Some((responder))
40600        } else {
40601            None
40602        }
40603    }
40604
40605    #[allow(irrefutable_let_patterns)]
40606    pub fn into_set_broadcast(self) -> Option<(bool, DatagramSocketSetBroadcastResponder)> {
40607        if let DatagramSocketRequest::SetBroadcast { value, responder } = self {
40608            Some((value, responder))
40609        } else {
40610            None
40611        }
40612    }
40613
40614    #[allow(irrefutable_let_patterns)]
40615    pub fn into_get_broadcast(self) -> Option<(DatagramSocketGetBroadcastResponder)> {
40616        if let DatagramSocketRequest::GetBroadcast { responder } = self {
40617            Some((responder))
40618        } else {
40619            None
40620        }
40621    }
40622
40623    #[allow(irrefutable_let_patterns)]
40624    pub fn into_set_send_buffer(self) -> Option<(u64, DatagramSocketSetSendBufferResponder)> {
40625        if let DatagramSocketRequest::SetSendBuffer { value_bytes, responder } = self {
40626            Some((value_bytes, responder))
40627        } else {
40628            None
40629        }
40630    }
40631
40632    #[allow(irrefutable_let_patterns)]
40633    pub fn into_get_send_buffer(self) -> Option<(DatagramSocketGetSendBufferResponder)> {
40634        if let DatagramSocketRequest::GetSendBuffer { responder } = self {
40635            Some((responder))
40636        } else {
40637            None
40638        }
40639    }
40640
40641    #[allow(irrefutable_let_patterns)]
40642    pub fn into_set_receive_buffer(self) -> Option<(u64, DatagramSocketSetReceiveBufferResponder)> {
40643        if let DatagramSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
40644            Some((value_bytes, responder))
40645        } else {
40646            None
40647        }
40648    }
40649
40650    #[allow(irrefutable_let_patterns)]
40651    pub fn into_get_receive_buffer(self) -> Option<(DatagramSocketGetReceiveBufferResponder)> {
40652        if let DatagramSocketRequest::GetReceiveBuffer { responder } = self {
40653            Some((responder))
40654        } else {
40655            None
40656        }
40657    }
40658
40659    #[allow(irrefutable_let_patterns)]
40660    pub fn into_set_keep_alive(self) -> Option<(bool, DatagramSocketSetKeepAliveResponder)> {
40661        if let DatagramSocketRequest::SetKeepAlive { value, responder } = self {
40662            Some((value, responder))
40663        } else {
40664            None
40665        }
40666    }
40667
40668    #[allow(irrefutable_let_patterns)]
40669    pub fn into_get_keep_alive(self) -> Option<(DatagramSocketGetKeepAliveResponder)> {
40670        if let DatagramSocketRequest::GetKeepAlive { responder } = self {
40671            Some((responder))
40672        } else {
40673            None
40674        }
40675    }
40676
40677    #[allow(irrefutable_let_patterns)]
40678    pub fn into_set_out_of_band_inline(
40679        self,
40680    ) -> Option<(bool, DatagramSocketSetOutOfBandInlineResponder)> {
40681        if let DatagramSocketRequest::SetOutOfBandInline { value, responder } = self {
40682            Some((value, responder))
40683        } else {
40684            None
40685        }
40686    }
40687
40688    #[allow(irrefutable_let_patterns)]
40689    pub fn into_get_out_of_band_inline(
40690        self,
40691    ) -> Option<(DatagramSocketGetOutOfBandInlineResponder)> {
40692        if let DatagramSocketRequest::GetOutOfBandInline { responder } = self {
40693            Some((responder))
40694        } else {
40695            None
40696        }
40697    }
40698
40699    #[allow(irrefutable_let_patterns)]
40700    pub fn into_set_no_check(self) -> Option<(bool, DatagramSocketSetNoCheckResponder)> {
40701        if let DatagramSocketRequest::SetNoCheck { value, responder } = self {
40702            Some((value, responder))
40703        } else {
40704            None
40705        }
40706    }
40707
40708    #[allow(irrefutable_let_patterns)]
40709    pub fn into_get_no_check(self) -> Option<(DatagramSocketGetNoCheckResponder)> {
40710        if let DatagramSocketRequest::GetNoCheck { responder } = self {
40711            Some((responder))
40712        } else {
40713            None
40714        }
40715    }
40716
40717    #[allow(irrefutable_let_patterns)]
40718    pub fn into_set_linger(self) -> Option<(bool, u32, DatagramSocketSetLingerResponder)> {
40719        if let DatagramSocketRequest::SetLinger { linger, length_secs, responder } = self {
40720            Some((linger, length_secs, responder))
40721        } else {
40722            None
40723        }
40724    }
40725
40726    #[allow(irrefutable_let_patterns)]
40727    pub fn into_get_linger(self) -> Option<(DatagramSocketGetLingerResponder)> {
40728        if let DatagramSocketRequest::GetLinger { responder } = self {
40729            Some((responder))
40730        } else {
40731            None
40732        }
40733    }
40734
40735    #[allow(irrefutable_let_patterns)]
40736    pub fn into_set_reuse_port(self) -> Option<(bool, DatagramSocketSetReusePortResponder)> {
40737        if let DatagramSocketRequest::SetReusePort { value, responder } = self {
40738            Some((value, responder))
40739        } else {
40740            None
40741        }
40742    }
40743
40744    #[allow(irrefutable_let_patterns)]
40745    pub fn into_get_reuse_port(self) -> Option<(DatagramSocketGetReusePortResponder)> {
40746        if let DatagramSocketRequest::GetReusePort { responder } = self {
40747            Some((responder))
40748        } else {
40749            None
40750        }
40751    }
40752
40753    #[allow(irrefutable_let_patterns)]
40754    pub fn into_get_accept_conn(self) -> Option<(DatagramSocketGetAcceptConnResponder)> {
40755        if let DatagramSocketRequest::GetAcceptConn { responder } = self {
40756            Some((responder))
40757        } else {
40758            None
40759        }
40760    }
40761
40762    #[allow(irrefutable_let_patterns)]
40763    pub fn into_set_bind_to_device(
40764        self,
40765    ) -> Option<(String, DatagramSocketSetBindToDeviceResponder)> {
40766        if let DatagramSocketRequest::SetBindToDevice { value, responder } = self {
40767            Some((value, responder))
40768        } else {
40769            None
40770        }
40771    }
40772
40773    #[allow(irrefutable_let_patterns)]
40774    pub fn into_get_bind_to_device(self) -> Option<(DatagramSocketGetBindToDeviceResponder)> {
40775        if let DatagramSocketRequest::GetBindToDevice { responder } = self {
40776            Some((responder))
40777        } else {
40778            None
40779        }
40780    }
40781
40782    #[allow(irrefutable_let_patterns)]
40783    pub fn into_set_bind_to_interface_index(
40784        self,
40785    ) -> Option<(u64, DatagramSocketSetBindToInterfaceIndexResponder)> {
40786        if let DatagramSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
40787            Some((value, responder))
40788        } else {
40789            None
40790        }
40791    }
40792
40793    #[allow(irrefutable_let_patterns)]
40794    pub fn into_get_bind_to_interface_index(
40795        self,
40796    ) -> Option<(DatagramSocketGetBindToInterfaceIndexResponder)> {
40797        if let DatagramSocketRequest::GetBindToInterfaceIndex { responder } = self {
40798            Some((responder))
40799        } else {
40800            None
40801        }
40802    }
40803
40804    #[allow(irrefutable_let_patterns)]
40805    pub fn into_set_timestamp(
40806        self,
40807    ) -> Option<(TimestampOption, DatagramSocketSetTimestampResponder)> {
40808        if let DatagramSocketRequest::SetTimestamp { value, responder } = self {
40809            Some((value, responder))
40810        } else {
40811            None
40812        }
40813    }
40814
40815    #[allow(irrefutable_let_patterns)]
40816    pub fn into_get_timestamp(self) -> Option<(DatagramSocketGetTimestampResponder)> {
40817        if let DatagramSocketRequest::GetTimestamp { responder } = self {
40818            Some((responder))
40819        } else {
40820            None
40821        }
40822    }
40823
40824    #[allow(irrefutable_let_patterns)]
40825    pub fn into_set_mark(
40826        self,
40827    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, DatagramSocketSetMarkResponder)>
40828    {
40829        if let DatagramSocketRequest::SetMark { domain, mark, responder } = self {
40830            Some((domain, mark, responder))
40831        } else {
40832            None
40833        }
40834    }
40835
40836    #[allow(irrefutable_let_patterns)]
40837    pub fn into_get_mark(
40838        self,
40839    ) -> Option<(fidl_fuchsia_net::MarkDomain, DatagramSocketGetMarkResponder)> {
40840        if let DatagramSocketRequest::GetMark { domain, responder } = self {
40841            Some((domain, responder))
40842        } else {
40843            None
40844        }
40845    }
40846
40847    #[allow(irrefutable_let_patterns)]
40848    pub fn into_get_cookie(self) -> Option<(DatagramSocketGetCookieResponder)> {
40849        if let DatagramSocketRequest::GetCookie { responder } = self {
40850            Some((responder))
40851        } else {
40852            None
40853        }
40854    }
40855
40856    #[allow(irrefutable_let_patterns)]
40857    pub fn into_bind(
40858        self,
40859    ) -> Option<(fidl_fuchsia_net::SocketAddress, DatagramSocketBindResponder)> {
40860        if let DatagramSocketRequest::Bind { addr, responder } = self {
40861            Some((addr, responder))
40862        } else {
40863            None
40864        }
40865    }
40866
40867    #[allow(irrefutable_let_patterns)]
40868    pub fn into_connect(
40869        self,
40870    ) -> Option<(fidl_fuchsia_net::SocketAddress, DatagramSocketConnectResponder)> {
40871        if let DatagramSocketRequest::Connect { addr, responder } = self {
40872            Some((addr, responder))
40873        } else {
40874            None
40875        }
40876    }
40877
40878    #[allow(irrefutable_let_patterns)]
40879    pub fn into_disconnect(self) -> Option<(DatagramSocketDisconnectResponder)> {
40880        if let DatagramSocketRequest::Disconnect { responder } = self {
40881            Some((responder))
40882        } else {
40883            None
40884        }
40885    }
40886
40887    #[allow(irrefutable_let_patterns)]
40888    pub fn into_get_sock_name(self) -> Option<(DatagramSocketGetSockNameResponder)> {
40889        if let DatagramSocketRequest::GetSockName { responder } = self {
40890            Some((responder))
40891        } else {
40892            None
40893        }
40894    }
40895
40896    #[allow(irrefutable_let_patterns)]
40897    pub fn into_get_peer_name(self) -> Option<(DatagramSocketGetPeerNameResponder)> {
40898        if let DatagramSocketRequest::GetPeerName { responder } = self {
40899            Some((responder))
40900        } else {
40901            None
40902        }
40903    }
40904
40905    #[allow(irrefutable_let_patterns)]
40906    pub fn into_shutdown(self) -> Option<(ShutdownMode, DatagramSocketShutdownResponder)> {
40907        if let DatagramSocketRequest::Shutdown { mode, responder } = self {
40908            Some((mode, responder))
40909        } else {
40910            None
40911        }
40912    }
40913
40914    #[allow(irrefutable_let_patterns)]
40915    pub fn into_set_ip_type_of_service(
40916        self,
40917    ) -> Option<(u8, DatagramSocketSetIpTypeOfServiceResponder)> {
40918        if let DatagramSocketRequest::SetIpTypeOfService { value, responder } = self {
40919            Some((value, responder))
40920        } else {
40921            None
40922        }
40923    }
40924
40925    #[allow(irrefutable_let_patterns)]
40926    pub fn into_get_ip_type_of_service(
40927        self,
40928    ) -> Option<(DatagramSocketGetIpTypeOfServiceResponder)> {
40929        if let DatagramSocketRequest::GetIpTypeOfService { responder } = self {
40930            Some((responder))
40931        } else {
40932            None
40933        }
40934    }
40935
40936    #[allow(irrefutable_let_patterns)]
40937    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, DatagramSocketSetIpTtlResponder)> {
40938        if let DatagramSocketRequest::SetIpTtl { value, responder } = self {
40939            Some((value, responder))
40940        } else {
40941            None
40942        }
40943    }
40944
40945    #[allow(irrefutable_let_patterns)]
40946    pub fn into_get_ip_ttl(self) -> Option<(DatagramSocketGetIpTtlResponder)> {
40947        if let DatagramSocketRequest::GetIpTtl { responder } = self {
40948            Some((responder))
40949        } else {
40950            None
40951        }
40952    }
40953
40954    #[allow(irrefutable_let_patterns)]
40955    pub fn into_set_ip_packet_info(self) -> Option<(bool, DatagramSocketSetIpPacketInfoResponder)> {
40956        if let DatagramSocketRequest::SetIpPacketInfo { value, responder } = self {
40957            Some((value, responder))
40958        } else {
40959            None
40960        }
40961    }
40962
40963    #[allow(irrefutable_let_patterns)]
40964    pub fn into_get_ip_packet_info(self) -> Option<(DatagramSocketGetIpPacketInfoResponder)> {
40965        if let DatagramSocketRequest::GetIpPacketInfo { responder } = self {
40966            Some((responder))
40967        } else {
40968            None
40969        }
40970    }
40971
40972    #[allow(irrefutable_let_patterns)]
40973    pub fn into_set_ip_receive_type_of_service(
40974        self,
40975    ) -> Option<(bool, DatagramSocketSetIpReceiveTypeOfServiceResponder)> {
40976        if let DatagramSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
40977            Some((value, responder))
40978        } else {
40979            None
40980        }
40981    }
40982
40983    #[allow(irrefutable_let_patterns)]
40984    pub fn into_get_ip_receive_type_of_service(
40985        self,
40986    ) -> Option<(DatagramSocketGetIpReceiveTypeOfServiceResponder)> {
40987        if let DatagramSocketRequest::GetIpReceiveTypeOfService { responder } = self {
40988            Some((responder))
40989        } else {
40990            None
40991        }
40992    }
40993
40994    #[allow(irrefutable_let_patterns)]
40995    pub fn into_set_ip_receive_ttl(self) -> Option<(bool, DatagramSocketSetIpReceiveTtlResponder)> {
40996        if let DatagramSocketRequest::SetIpReceiveTtl { value, responder } = self {
40997            Some((value, responder))
40998        } else {
40999            None
41000        }
41001    }
41002
41003    #[allow(irrefutable_let_patterns)]
41004    pub fn into_get_ip_receive_ttl(self) -> Option<(DatagramSocketGetIpReceiveTtlResponder)> {
41005        if let DatagramSocketRequest::GetIpReceiveTtl { responder } = self {
41006            Some((responder))
41007        } else {
41008            None
41009        }
41010    }
41011
41012    #[allow(irrefutable_let_patterns)]
41013    pub fn into_set_ip_multicast_interface(
41014        self,
41015    ) -> Option<(u64, fidl_fuchsia_net::Ipv4Address, DatagramSocketSetIpMulticastInterfaceResponder)>
41016    {
41017        if let DatagramSocketRequest::SetIpMulticastInterface { iface, address, responder } = self {
41018            Some((iface, address, responder))
41019        } else {
41020            None
41021        }
41022    }
41023
41024    #[allow(irrefutable_let_patterns)]
41025    pub fn into_get_ip_multicast_interface(
41026        self,
41027    ) -> Option<(DatagramSocketGetIpMulticastInterfaceResponder)> {
41028        if let DatagramSocketRequest::GetIpMulticastInterface { responder } = self {
41029            Some((responder))
41030        } else {
41031            None
41032        }
41033    }
41034
41035    #[allow(irrefutable_let_patterns)]
41036    pub fn into_set_ip_multicast_ttl(
41037        self,
41038    ) -> Option<(OptionalUint8, DatagramSocketSetIpMulticastTtlResponder)> {
41039        if let DatagramSocketRequest::SetIpMulticastTtl { value, responder } = self {
41040            Some((value, responder))
41041        } else {
41042            None
41043        }
41044    }
41045
41046    #[allow(irrefutable_let_patterns)]
41047    pub fn into_get_ip_multicast_ttl(self) -> Option<(DatagramSocketGetIpMulticastTtlResponder)> {
41048        if let DatagramSocketRequest::GetIpMulticastTtl { responder } = self {
41049            Some((responder))
41050        } else {
41051            None
41052        }
41053    }
41054
41055    #[allow(irrefutable_let_patterns)]
41056    pub fn into_set_ip_multicast_loopback(
41057        self,
41058    ) -> Option<(bool, DatagramSocketSetIpMulticastLoopbackResponder)> {
41059        if let DatagramSocketRequest::SetIpMulticastLoopback { value, responder } = self {
41060            Some((value, responder))
41061        } else {
41062            None
41063        }
41064    }
41065
41066    #[allow(irrefutable_let_patterns)]
41067    pub fn into_get_ip_multicast_loopback(
41068        self,
41069    ) -> Option<(DatagramSocketGetIpMulticastLoopbackResponder)> {
41070        if let DatagramSocketRequest::GetIpMulticastLoopback { responder } = self {
41071            Some((responder))
41072        } else {
41073            None
41074        }
41075    }
41076
41077    #[allow(irrefutable_let_patterns)]
41078    pub fn into_add_ip_membership(
41079        self,
41080    ) -> Option<(IpMulticastMembership, DatagramSocketAddIpMembershipResponder)> {
41081        if let DatagramSocketRequest::AddIpMembership { membership, responder } = self {
41082            Some((membership, responder))
41083        } else {
41084            None
41085        }
41086    }
41087
41088    #[allow(irrefutable_let_patterns)]
41089    pub fn into_drop_ip_membership(
41090        self,
41091    ) -> Option<(IpMulticastMembership, DatagramSocketDropIpMembershipResponder)> {
41092        if let DatagramSocketRequest::DropIpMembership { membership, responder } = self {
41093            Some((membership, responder))
41094        } else {
41095            None
41096        }
41097    }
41098
41099    #[allow(irrefutable_let_patterns)]
41100    pub fn into_set_ip_transparent(
41101        self,
41102    ) -> Option<(bool, DatagramSocketSetIpTransparentResponder)> {
41103        if let DatagramSocketRequest::SetIpTransparent { value, responder } = self {
41104            Some((value, responder))
41105        } else {
41106            None
41107        }
41108    }
41109
41110    #[allow(irrefutable_let_patterns)]
41111    pub fn into_get_ip_transparent(self) -> Option<(DatagramSocketGetIpTransparentResponder)> {
41112        if let DatagramSocketRequest::GetIpTransparent { responder } = self {
41113            Some((responder))
41114        } else {
41115            None
41116        }
41117    }
41118
41119    #[allow(irrefutable_let_patterns)]
41120    pub fn into_set_ip_receive_original_destination_address(
41121        self,
41122    ) -> Option<(bool, DatagramSocketSetIpReceiveOriginalDestinationAddressResponder)> {
41123        if let DatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { value, responder } =
41124            self
41125        {
41126            Some((value, responder))
41127        } else {
41128            None
41129        }
41130    }
41131
41132    #[allow(irrefutable_let_patterns)]
41133    pub fn into_get_ip_receive_original_destination_address(
41134        self,
41135    ) -> Option<(DatagramSocketGetIpReceiveOriginalDestinationAddressResponder)> {
41136        if let DatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } = self {
41137            Some((responder))
41138        } else {
41139            None
41140        }
41141    }
41142
41143    #[allow(irrefutable_let_patterns)]
41144    pub fn into_add_ipv6_membership(
41145        self,
41146    ) -> Option<(Ipv6MulticastMembership, DatagramSocketAddIpv6MembershipResponder)> {
41147        if let DatagramSocketRequest::AddIpv6Membership { membership, responder } = self {
41148            Some((membership, responder))
41149        } else {
41150            None
41151        }
41152    }
41153
41154    #[allow(irrefutable_let_patterns)]
41155    pub fn into_drop_ipv6_membership(
41156        self,
41157    ) -> Option<(Ipv6MulticastMembership, DatagramSocketDropIpv6MembershipResponder)> {
41158        if let DatagramSocketRequest::DropIpv6Membership { membership, responder } = self {
41159            Some((membership, responder))
41160        } else {
41161            None
41162        }
41163    }
41164
41165    #[allow(irrefutable_let_patterns)]
41166    pub fn into_set_ipv6_multicast_interface(
41167        self,
41168    ) -> Option<(u64, DatagramSocketSetIpv6MulticastInterfaceResponder)> {
41169        if let DatagramSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
41170            Some((value, responder))
41171        } else {
41172            None
41173        }
41174    }
41175
41176    #[allow(irrefutable_let_patterns)]
41177    pub fn into_get_ipv6_multicast_interface(
41178        self,
41179    ) -> Option<(DatagramSocketGetIpv6MulticastInterfaceResponder)> {
41180        if let DatagramSocketRequest::GetIpv6MulticastInterface { responder } = self {
41181            Some((responder))
41182        } else {
41183            None
41184        }
41185    }
41186
41187    #[allow(irrefutable_let_patterns)]
41188    pub fn into_set_ipv6_unicast_hops(
41189        self,
41190    ) -> Option<(OptionalUint8, DatagramSocketSetIpv6UnicastHopsResponder)> {
41191        if let DatagramSocketRequest::SetIpv6UnicastHops { value, responder } = self {
41192            Some((value, responder))
41193        } else {
41194            None
41195        }
41196    }
41197
41198    #[allow(irrefutable_let_patterns)]
41199    pub fn into_get_ipv6_unicast_hops(self) -> Option<(DatagramSocketGetIpv6UnicastHopsResponder)> {
41200        if let DatagramSocketRequest::GetIpv6UnicastHops { responder } = self {
41201            Some((responder))
41202        } else {
41203            None
41204        }
41205    }
41206
41207    #[allow(irrefutable_let_patterns)]
41208    pub fn into_set_ipv6_receive_hop_limit(
41209        self,
41210    ) -> Option<(bool, DatagramSocketSetIpv6ReceiveHopLimitResponder)> {
41211        if let DatagramSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
41212            Some((value, responder))
41213        } else {
41214            None
41215        }
41216    }
41217
41218    #[allow(irrefutable_let_patterns)]
41219    pub fn into_get_ipv6_receive_hop_limit(
41220        self,
41221    ) -> Option<(DatagramSocketGetIpv6ReceiveHopLimitResponder)> {
41222        if let DatagramSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
41223            Some((responder))
41224        } else {
41225            None
41226        }
41227    }
41228
41229    #[allow(irrefutable_let_patterns)]
41230    pub fn into_set_ipv6_multicast_hops(
41231        self,
41232    ) -> Option<(OptionalUint8, DatagramSocketSetIpv6MulticastHopsResponder)> {
41233        if let DatagramSocketRequest::SetIpv6MulticastHops { value, responder } = self {
41234            Some((value, responder))
41235        } else {
41236            None
41237        }
41238    }
41239
41240    #[allow(irrefutable_let_patterns)]
41241    pub fn into_get_ipv6_multicast_hops(
41242        self,
41243    ) -> Option<(DatagramSocketGetIpv6MulticastHopsResponder)> {
41244        if let DatagramSocketRequest::GetIpv6MulticastHops { responder } = self {
41245            Some((responder))
41246        } else {
41247            None
41248        }
41249    }
41250
41251    #[allow(irrefutable_let_patterns)]
41252    pub fn into_set_ipv6_multicast_loopback(
41253        self,
41254    ) -> Option<(bool, DatagramSocketSetIpv6MulticastLoopbackResponder)> {
41255        if let DatagramSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
41256            Some((value, responder))
41257        } else {
41258            None
41259        }
41260    }
41261
41262    #[allow(irrefutable_let_patterns)]
41263    pub fn into_get_ipv6_multicast_loopback(
41264        self,
41265    ) -> Option<(DatagramSocketGetIpv6MulticastLoopbackResponder)> {
41266        if let DatagramSocketRequest::GetIpv6MulticastLoopback { responder } = self {
41267            Some((responder))
41268        } else {
41269            None
41270        }
41271    }
41272
41273    #[allow(irrefutable_let_patterns)]
41274    pub fn into_set_ipv6_only(self) -> Option<(bool, DatagramSocketSetIpv6OnlyResponder)> {
41275        if let DatagramSocketRequest::SetIpv6Only { value, responder } = self {
41276            Some((value, responder))
41277        } else {
41278            None
41279        }
41280    }
41281
41282    #[allow(irrefutable_let_patterns)]
41283    pub fn into_get_ipv6_only(self) -> Option<(DatagramSocketGetIpv6OnlyResponder)> {
41284        if let DatagramSocketRequest::GetIpv6Only { responder } = self {
41285            Some((responder))
41286        } else {
41287            None
41288        }
41289    }
41290
41291    #[allow(irrefutable_let_patterns)]
41292    pub fn into_set_ipv6_receive_traffic_class(
41293        self,
41294    ) -> Option<(bool, DatagramSocketSetIpv6ReceiveTrafficClassResponder)> {
41295        if let DatagramSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
41296            Some((value, responder))
41297        } else {
41298            None
41299        }
41300    }
41301
41302    #[allow(irrefutable_let_patterns)]
41303    pub fn into_get_ipv6_receive_traffic_class(
41304        self,
41305    ) -> Option<(DatagramSocketGetIpv6ReceiveTrafficClassResponder)> {
41306        if let DatagramSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
41307            Some((responder))
41308        } else {
41309            None
41310        }
41311    }
41312
41313    #[allow(irrefutable_let_patterns)]
41314    pub fn into_set_ipv6_traffic_class(
41315        self,
41316    ) -> Option<(OptionalUint8, DatagramSocketSetIpv6TrafficClassResponder)> {
41317        if let DatagramSocketRequest::SetIpv6TrafficClass { value, responder } = self {
41318            Some((value, responder))
41319        } else {
41320            None
41321        }
41322    }
41323
41324    #[allow(irrefutable_let_patterns)]
41325    pub fn into_get_ipv6_traffic_class(
41326        self,
41327    ) -> Option<(DatagramSocketGetIpv6TrafficClassResponder)> {
41328        if let DatagramSocketRequest::GetIpv6TrafficClass { responder } = self {
41329            Some((responder))
41330        } else {
41331            None
41332        }
41333    }
41334
41335    #[allow(irrefutable_let_patterns)]
41336    pub fn into_set_ipv6_receive_packet_info(
41337        self,
41338    ) -> Option<(bool, DatagramSocketSetIpv6ReceivePacketInfoResponder)> {
41339        if let DatagramSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
41340            Some((value, responder))
41341        } else {
41342            None
41343        }
41344    }
41345
41346    #[allow(irrefutable_let_patterns)]
41347    pub fn into_get_ipv6_receive_packet_info(
41348        self,
41349    ) -> Option<(DatagramSocketGetIpv6ReceivePacketInfoResponder)> {
41350        if let DatagramSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
41351            Some((responder))
41352        } else {
41353            None
41354        }
41355    }
41356
41357    #[allow(irrefutable_let_patterns)]
41358    pub fn into_get_original_destination(
41359        self,
41360    ) -> Option<(DatagramSocketGetOriginalDestinationResponder)> {
41361        if let DatagramSocketRequest::GetOriginalDestination { responder } = self {
41362            Some((responder))
41363        } else {
41364            None
41365        }
41366    }
41367
41368    #[allow(irrefutable_let_patterns)]
41369    pub fn into_get_info(self) -> Option<(DatagramSocketGetInfoResponder)> {
41370        if let DatagramSocketRequest::GetInfo { responder } = self {
41371            Some((responder))
41372        } else {
41373            None
41374        }
41375    }
41376
41377    #[allow(irrefutable_let_patterns)]
41378    pub fn into_describe(self) -> Option<(DatagramSocketDescribeResponder)> {
41379        if let DatagramSocketRequest::Describe { responder } = self {
41380            Some((responder))
41381        } else {
41382            None
41383        }
41384    }
41385
41386    #[allow(irrefutable_let_patterns)]
41387    pub fn into_send_msg_preflight(
41388        self,
41389    ) -> Option<(DatagramSocketSendMsgPreflightRequest, DatagramSocketSendMsgPreflightResponder)>
41390    {
41391        if let DatagramSocketRequest::SendMsgPreflight { payload, responder } = self {
41392            Some((payload, responder))
41393        } else {
41394            None
41395        }
41396    }
41397
41398    #[allow(irrefutable_let_patterns)]
41399    pub fn into_recv_msg_postflight(self) -> Option<(DatagramSocketRecvMsgPostflightResponder)> {
41400        if let DatagramSocketRequest::RecvMsgPostflight { responder } = self {
41401            Some((responder))
41402        } else {
41403            None
41404        }
41405    }
41406
41407    /// Name of the method defined in FIDL
41408    pub fn method_name(&self) -> &'static str {
41409        match *self {
41410            DatagramSocketRequest::Clone { .. } => "clone",
41411            DatagramSocketRequest::Close { .. } => "close",
41412            DatagramSocketRequest::Query { .. } => "query",
41413            DatagramSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
41414            DatagramSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
41415            DatagramSocketRequest::GetError { .. } => "get_error",
41416            DatagramSocketRequest::SetBroadcast { .. } => "set_broadcast",
41417            DatagramSocketRequest::GetBroadcast { .. } => "get_broadcast",
41418            DatagramSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
41419            DatagramSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
41420            DatagramSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
41421            DatagramSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
41422            DatagramSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
41423            DatagramSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
41424            DatagramSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
41425            DatagramSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
41426            DatagramSocketRequest::SetNoCheck { .. } => "set_no_check",
41427            DatagramSocketRequest::GetNoCheck { .. } => "get_no_check",
41428            DatagramSocketRequest::SetLinger { .. } => "set_linger",
41429            DatagramSocketRequest::GetLinger { .. } => "get_linger",
41430            DatagramSocketRequest::SetReusePort { .. } => "set_reuse_port",
41431            DatagramSocketRequest::GetReusePort { .. } => "get_reuse_port",
41432            DatagramSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
41433            DatagramSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
41434            DatagramSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
41435            DatagramSocketRequest::SetBindToInterfaceIndex { .. } => "set_bind_to_interface_index",
41436            DatagramSocketRequest::GetBindToInterfaceIndex { .. } => "get_bind_to_interface_index",
41437            DatagramSocketRequest::SetTimestamp { .. } => "set_timestamp",
41438            DatagramSocketRequest::GetTimestamp { .. } => "get_timestamp",
41439            DatagramSocketRequest::SetMark { .. } => "set_mark",
41440            DatagramSocketRequest::GetMark { .. } => "get_mark",
41441            DatagramSocketRequest::GetCookie { .. } => "get_cookie",
41442            DatagramSocketRequest::Bind { .. } => "bind",
41443            DatagramSocketRequest::Connect { .. } => "connect",
41444            DatagramSocketRequest::Disconnect { .. } => "disconnect",
41445            DatagramSocketRequest::GetSockName { .. } => "get_sock_name",
41446            DatagramSocketRequest::GetPeerName { .. } => "get_peer_name",
41447            DatagramSocketRequest::Shutdown { .. } => "shutdown",
41448            DatagramSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
41449            DatagramSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
41450            DatagramSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
41451            DatagramSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
41452            DatagramSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
41453            DatagramSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
41454            DatagramSocketRequest::SetIpReceiveTypeOfService { .. } => {
41455                "set_ip_receive_type_of_service"
41456            }
41457            DatagramSocketRequest::GetIpReceiveTypeOfService { .. } => {
41458                "get_ip_receive_type_of_service"
41459            }
41460            DatagramSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
41461            DatagramSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
41462            DatagramSocketRequest::SetIpMulticastInterface { .. } => "set_ip_multicast_interface",
41463            DatagramSocketRequest::GetIpMulticastInterface { .. } => "get_ip_multicast_interface",
41464            DatagramSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
41465            DatagramSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
41466            DatagramSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
41467            DatagramSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
41468            DatagramSocketRequest::AddIpMembership { .. } => "add_ip_membership",
41469            DatagramSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
41470            DatagramSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
41471            DatagramSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
41472            DatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
41473                "set_ip_receive_original_destination_address"
41474            }
41475            DatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
41476                "get_ip_receive_original_destination_address"
41477            }
41478            DatagramSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
41479            DatagramSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
41480            DatagramSocketRequest::SetIpv6MulticastInterface { .. } => {
41481                "set_ipv6_multicast_interface"
41482            }
41483            DatagramSocketRequest::GetIpv6MulticastInterface { .. } => {
41484                "get_ipv6_multicast_interface"
41485            }
41486            DatagramSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
41487            DatagramSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
41488            DatagramSocketRequest::SetIpv6ReceiveHopLimit { .. } => "set_ipv6_receive_hop_limit",
41489            DatagramSocketRequest::GetIpv6ReceiveHopLimit { .. } => "get_ipv6_receive_hop_limit",
41490            DatagramSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
41491            DatagramSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
41492            DatagramSocketRequest::SetIpv6MulticastLoopback { .. } => "set_ipv6_multicast_loopback",
41493            DatagramSocketRequest::GetIpv6MulticastLoopback { .. } => "get_ipv6_multicast_loopback",
41494            DatagramSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
41495            DatagramSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
41496            DatagramSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
41497                "set_ipv6_receive_traffic_class"
41498            }
41499            DatagramSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
41500                "get_ipv6_receive_traffic_class"
41501            }
41502            DatagramSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
41503            DatagramSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
41504            DatagramSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
41505                "set_ipv6_receive_packet_info"
41506            }
41507            DatagramSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
41508                "get_ipv6_receive_packet_info"
41509            }
41510            DatagramSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
41511            DatagramSocketRequest::GetInfo { .. } => "get_info",
41512            DatagramSocketRequest::Describe { .. } => "describe",
41513            DatagramSocketRequest::SendMsgPreflight { .. } => "send_msg_preflight",
41514            DatagramSocketRequest::RecvMsgPostflight { .. } => "recv_msg_postflight",
41515        }
41516    }
41517}
41518
41519#[derive(Debug, Clone)]
41520pub struct DatagramSocketControlHandle {
41521    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
41522}
41523
41524impl fidl::endpoints::ControlHandle for DatagramSocketControlHandle {
41525    fn shutdown(&self) {
41526        self.inner.shutdown()
41527    }
41528    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
41529        self.inner.shutdown_with_epitaph(status)
41530    }
41531
41532    fn is_closed(&self) -> bool {
41533        self.inner.channel().is_closed()
41534    }
41535    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
41536        self.inner.channel().on_closed()
41537    }
41538
41539    #[cfg(target_os = "fuchsia")]
41540    fn signal_peer(
41541        &self,
41542        clear_mask: zx::Signals,
41543        set_mask: zx::Signals,
41544    ) -> Result<(), zx_status::Status> {
41545        use fidl::Peered;
41546        self.inner.channel().signal_peer(clear_mask, set_mask)
41547    }
41548}
41549
41550impl DatagramSocketControlHandle {}
41551
41552#[must_use = "FIDL methods require a response to be sent"]
41553#[derive(Debug)]
41554pub struct DatagramSocketCloseResponder {
41555    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41556    tx_id: u32,
41557}
41558
41559/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41560/// if the responder is dropped without sending a response, so that the client
41561/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41562impl std::ops::Drop for DatagramSocketCloseResponder {
41563    fn drop(&mut self) {
41564        self.control_handle.shutdown();
41565        // Safety: drops once, never accessed again
41566        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41567    }
41568}
41569
41570impl fidl::endpoints::Responder for DatagramSocketCloseResponder {
41571    type ControlHandle = DatagramSocketControlHandle;
41572
41573    fn control_handle(&self) -> &DatagramSocketControlHandle {
41574        &self.control_handle
41575    }
41576
41577    fn drop_without_shutdown(mut self) {
41578        // Safety: drops once, never accessed again due to mem::forget
41579        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41580        // Prevent Drop from running (which would shut down the channel)
41581        std::mem::forget(self);
41582    }
41583}
41584
41585impl DatagramSocketCloseResponder {
41586    /// Sends a response to the FIDL transaction.
41587    ///
41588    /// Sets the channel to shutdown if an error occurs.
41589    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
41590        let _result = self.send_raw(result);
41591        if _result.is_err() {
41592            self.control_handle.shutdown();
41593        }
41594        self.drop_without_shutdown();
41595        _result
41596    }
41597
41598    /// Similar to "send" but does not shutdown the channel if an error occurs.
41599    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
41600        let _result = self.send_raw(result);
41601        self.drop_without_shutdown();
41602        _result
41603    }
41604
41605    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
41606        self.control_handle
41607            .inner
41608            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
41609                result,
41610                self.tx_id,
41611                0x5ac5d459ad7f657e,
41612                fidl::encoding::DynamicFlags::empty(),
41613            )
41614    }
41615}
41616
41617#[must_use = "FIDL methods require a response to be sent"]
41618#[derive(Debug)]
41619pub struct DatagramSocketQueryResponder {
41620    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41621    tx_id: u32,
41622}
41623
41624/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41625/// if the responder is dropped without sending a response, so that the client
41626/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41627impl std::ops::Drop for DatagramSocketQueryResponder {
41628    fn drop(&mut self) {
41629        self.control_handle.shutdown();
41630        // Safety: drops once, never accessed again
41631        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41632    }
41633}
41634
41635impl fidl::endpoints::Responder for DatagramSocketQueryResponder {
41636    type ControlHandle = DatagramSocketControlHandle;
41637
41638    fn control_handle(&self) -> &DatagramSocketControlHandle {
41639        &self.control_handle
41640    }
41641
41642    fn drop_without_shutdown(mut self) {
41643        // Safety: drops once, never accessed again due to mem::forget
41644        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41645        // Prevent Drop from running (which would shut down the channel)
41646        std::mem::forget(self);
41647    }
41648}
41649
41650impl DatagramSocketQueryResponder {
41651    /// Sends a response to the FIDL transaction.
41652    ///
41653    /// Sets the channel to shutdown if an error occurs.
41654    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
41655        let _result = self.send_raw(protocol);
41656        if _result.is_err() {
41657            self.control_handle.shutdown();
41658        }
41659        self.drop_without_shutdown();
41660        _result
41661    }
41662
41663    /// Similar to "send" but does not shutdown the channel if an error occurs.
41664    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
41665        let _result = self.send_raw(protocol);
41666        self.drop_without_shutdown();
41667        _result
41668    }
41669
41670    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
41671        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
41672            (protocol,),
41673            self.tx_id,
41674            0x2658edee9decfc06,
41675            fidl::encoding::DynamicFlags::empty(),
41676        )
41677    }
41678}
41679
41680#[must_use = "FIDL methods require a response to be sent"]
41681#[derive(Debug)]
41682pub struct DatagramSocketSetReuseAddressResponder {
41683    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41684    tx_id: u32,
41685}
41686
41687/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41688/// if the responder is dropped without sending a response, so that the client
41689/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41690impl std::ops::Drop for DatagramSocketSetReuseAddressResponder {
41691    fn drop(&mut self) {
41692        self.control_handle.shutdown();
41693        // Safety: drops once, never accessed again
41694        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41695    }
41696}
41697
41698impl fidl::endpoints::Responder for DatagramSocketSetReuseAddressResponder {
41699    type ControlHandle = DatagramSocketControlHandle;
41700
41701    fn control_handle(&self) -> &DatagramSocketControlHandle {
41702        &self.control_handle
41703    }
41704
41705    fn drop_without_shutdown(mut self) {
41706        // Safety: drops once, never accessed again due to mem::forget
41707        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41708        // Prevent Drop from running (which would shut down the channel)
41709        std::mem::forget(self);
41710    }
41711}
41712
41713impl DatagramSocketSetReuseAddressResponder {
41714    /// Sends a response to the FIDL transaction.
41715    ///
41716    /// Sets the channel to shutdown if an error occurs.
41717    pub fn send(
41718        self,
41719        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41720    ) -> Result<(), fidl::Error> {
41721        let _result = self.send_raw(result);
41722        if _result.is_err() {
41723            self.control_handle.shutdown();
41724        }
41725        self.drop_without_shutdown();
41726        _result
41727    }
41728
41729    /// Similar to "send" but does not shutdown the channel if an error occurs.
41730    pub fn send_no_shutdown_on_err(
41731        self,
41732        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41733    ) -> Result<(), fidl::Error> {
41734        let _result = self.send_raw(result);
41735        self.drop_without_shutdown();
41736        _result
41737    }
41738
41739    fn send_raw(
41740        &self,
41741        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41742    ) -> Result<(), fidl::Error> {
41743        self.control_handle.inner.send::<fidl::encoding::ResultType<
41744            fidl::encoding::EmptyStruct,
41745            fidl_fuchsia_posix::Errno,
41746        >>(
41747            result,
41748            self.tx_id,
41749            0x1fd74ee8b9a4a876,
41750            fidl::encoding::DynamicFlags::empty(),
41751        )
41752    }
41753}
41754
41755#[must_use = "FIDL methods require a response to be sent"]
41756#[derive(Debug)]
41757pub struct DatagramSocketGetReuseAddressResponder {
41758    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41759    tx_id: u32,
41760}
41761
41762/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41763/// if the responder is dropped without sending a response, so that the client
41764/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41765impl std::ops::Drop for DatagramSocketGetReuseAddressResponder {
41766    fn drop(&mut self) {
41767        self.control_handle.shutdown();
41768        // Safety: drops once, never accessed again
41769        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41770    }
41771}
41772
41773impl fidl::endpoints::Responder for DatagramSocketGetReuseAddressResponder {
41774    type ControlHandle = DatagramSocketControlHandle;
41775
41776    fn control_handle(&self) -> &DatagramSocketControlHandle {
41777        &self.control_handle
41778    }
41779
41780    fn drop_without_shutdown(mut self) {
41781        // Safety: drops once, never accessed again due to mem::forget
41782        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41783        // Prevent Drop from running (which would shut down the channel)
41784        std::mem::forget(self);
41785    }
41786}
41787
41788impl DatagramSocketGetReuseAddressResponder {
41789    /// Sends a response to the FIDL transaction.
41790    ///
41791    /// Sets the channel to shutdown if an error occurs.
41792    pub fn send(
41793        self,
41794        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
41795    ) -> Result<(), fidl::Error> {
41796        let _result = self.send_raw(result);
41797        if _result.is_err() {
41798            self.control_handle.shutdown();
41799        }
41800        self.drop_without_shutdown();
41801        _result
41802    }
41803
41804    /// Similar to "send" but does not shutdown the channel if an error occurs.
41805    pub fn send_no_shutdown_on_err(
41806        self,
41807        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
41808    ) -> Result<(), fidl::Error> {
41809        let _result = self.send_raw(result);
41810        self.drop_without_shutdown();
41811        _result
41812    }
41813
41814    fn send_raw(
41815        &self,
41816        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
41817    ) -> Result<(), fidl::Error> {
41818        self.control_handle.inner.send::<fidl::encoding::ResultType<
41819            BaseSocketGetReuseAddressResponse,
41820            fidl_fuchsia_posix::Errno,
41821        >>(
41822            result.map(|value| (value,)),
41823            self.tx_id,
41824            0x67b7206b8d1bc0a5,
41825            fidl::encoding::DynamicFlags::empty(),
41826        )
41827    }
41828}
41829
41830#[must_use = "FIDL methods require a response to be sent"]
41831#[derive(Debug)]
41832pub struct DatagramSocketGetErrorResponder {
41833    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41834    tx_id: u32,
41835}
41836
41837/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41838/// if the responder is dropped without sending a response, so that the client
41839/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41840impl std::ops::Drop for DatagramSocketGetErrorResponder {
41841    fn drop(&mut self) {
41842        self.control_handle.shutdown();
41843        // Safety: drops once, never accessed again
41844        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41845    }
41846}
41847
41848impl fidl::endpoints::Responder for DatagramSocketGetErrorResponder {
41849    type ControlHandle = DatagramSocketControlHandle;
41850
41851    fn control_handle(&self) -> &DatagramSocketControlHandle {
41852        &self.control_handle
41853    }
41854
41855    fn drop_without_shutdown(mut self) {
41856        // Safety: drops once, never accessed again due to mem::forget
41857        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41858        // Prevent Drop from running (which would shut down the channel)
41859        std::mem::forget(self);
41860    }
41861}
41862
41863impl DatagramSocketGetErrorResponder {
41864    /// Sends a response to the FIDL transaction.
41865    ///
41866    /// Sets the channel to shutdown if an error occurs.
41867    pub fn send(
41868        self,
41869        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41870    ) -> Result<(), fidl::Error> {
41871        let _result = self.send_raw(result);
41872        if _result.is_err() {
41873            self.control_handle.shutdown();
41874        }
41875        self.drop_without_shutdown();
41876        _result
41877    }
41878
41879    /// Similar to "send" but does not shutdown the channel if an error occurs.
41880    pub fn send_no_shutdown_on_err(
41881        self,
41882        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41883    ) -> Result<(), fidl::Error> {
41884        let _result = self.send_raw(result);
41885        self.drop_without_shutdown();
41886        _result
41887    }
41888
41889    fn send_raw(
41890        &self,
41891        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41892    ) -> Result<(), fidl::Error> {
41893        self.control_handle.inner.send::<fidl::encoding::ResultType<
41894            fidl::encoding::EmptyStruct,
41895            fidl_fuchsia_posix::Errno,
41896        >>(
41897            result,
41898            self.tx_id,
41899            0x5aad39b33e5f6ebb,
41900            fidl::encoding::DynamicFlags::empty(),
41901        )
41902    }
41903}
41904
41905#[must_use = "FIDL methods require a response to be sent"]
41906#[derive(Debug)]
41907pub struct DatagramSocketSetBroadcastResponder {
41908    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41909    tx_id: u32,
41910}
41911
41912/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41913/// if the responder is dropped without sending a response, so that the client
41914/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41915impl std::ops::Drop for DatagramSocketSetBroadcastResponder {
41916    fn drop(&mut self) {
41917        self.control_handle.shutdown();
41918        // Safety: drops once, never accessed again
41919        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41920    }
41921}
41922
41923impl fidl::endpoints::Responder for DatagramSocketSetBroadcastResponder {
41924    type ControlHandle = DatagramSocketControlHandle;
41925
41926    fn control_handle(&self) -> &DatagramSocketControlHandle {
41927        &self.control_handle
41928    }
41929
41930    fn drop_without_shutdown(mut self) {
41931        // Safety: drops once, never accessed again due to mem::forget
41932        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41933        // Prevent Drop from running (which would shut down the channel)
41934        std::mem::forget(self);
41935    }
41936}
41937
41938impl DatagramSocketSetBroadcastResponder {
41939    /// Sends a response to the FIDL transaction.
41940    ///
41941    /// Sets the channel to shutdown if an error occurs.
41942    pub fn send(
41943        self,
41944        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41945    ) -> Result<(), fidl::Error> {
41946        let _result = self.send_raw(result);
41947        if _result.is_err() {
41948            self.control_handle.shutdown();
41949        }
41950        self.drop_without_shutdown();
41951        _result
41952    }
41953
41954    /// Similar to "send" but does not shutdown the channel if an error occurs.
41955    pub fn send_no_shutdown_on_err(
41956        self,
41957        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41958    ) -> Result<(), fidl::Error> {
41959        let _result = self.send_raw(result);
41960        self.drop_without_shutdown();
41961        _result
41962    }
41963
41964    fn send_raw(
41965        &self,
41966        mut result: Result<(), fidl_fuchsia_posix::Errno>,
41967    ) -> Result<(), fidl::Error> {
41968        self.control_handle.inner.send::<fidl::encoding::ResultType<
41969            fidl::encoding::EmptyStruct,
41970            fidl_fuchsia_posix::Errno,
41971        >>(
41972            result,
41973            self.tx_id,
41974            0x6023e081ce3cd947,
41975            fidl::encoding::DynamicFlags::empty(),
41976        )
41977    }
41978}
41979
41980#[must_use = "FIDL methods require a response to be sent"]
41981#[derive(Debug)]
41982pub struct DatagramSocketGetBroadcastResponder {
41983    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
41984    tx_id: u32,
41985}
41986
41987/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
41988/// if the responder is dropped without sending a response, so that the client
41989/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
41990impl std::ops::Drop for DatagramSocketGetBroadcastResponder {
41991    fn drop(&mut self) {
41992        self.control_handle.shutdown();
41993        // Safety: drops once, never accessed again
41994        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
41995    }
41996}
41997
41998impl fidl::endpoints::Responder for DatagramSocketGetBroadcastResponder {
41999    type ControlHandle = DatagramSocketControlHandle;
42000
42001    fn control_handle(&self) -> &DatagramSocketControlHandle {
42002        &self.control_handle
42003    }
42004
42005    fn drop_without_shutdown(mut self) {
42006        // Safety: drops once, never accessed again due to mem::forget
42007        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42008        // Prevent Drop from running (which would shut down the channel)
42009        std::mem::forget(self);
42010    }
42011}
42012
42013impl DatagramSocketGetBroadcastResponder {
42014    /// Sends a response to the FIDL transaction.
42015    ///
42016    /// Sets the channel to shutdown if an error occurs.
42017    pub fn send(
42018        self,
42019        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42020    ) -> Result<(), fidl::Error> {
42021        let _result = self.send_raw(result);
42022        if _result.is_err() {
42023            self.control_handle.shutdown();
42024        }
42025        self.drop_without_shutdown();
42026        _result
42027    }
42028
42029    /// Similar to "send" but does not shutdown the channel if an error occurs.
42030    pub fn send_no_shutdown_on_err(
42031        self,
42032        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42033    ) -> Result<(), fidl::Error> {
42034        let _result = self.send_raw(result);
42035        self.drop_without_shutdown();
42036        _result
42037    }
42038
42039    fn send_raw(
42040        &self,
42041        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42042    ) -> Result<(), fidl::Error> {
42043        self.control_handle.inner.send::<fidl::encoding::ResultType<
42044            BaseSocketGetBroadcastResponse,
42045            fidl_fuchsia_posix::Errno,
42046        >>(
42047            result.map(|value| (value,)),
42048            self.tx_id,
42049            0x68796fc556f9780d,
42050            fidl::encoding::DynamicFlags::empty(),
42051        )
42052    }
42053}
42054
42055#[must_use = "FIDL methods require a response to be sent"]
42056#[derive(Debug)]
42057pub struct DatagramSocketSetSendBufferResponder {
42058    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42059    tx_id: u32,
42060}
42061
42062/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42063/// if the responder is dropped without sending a response, so that the client
42064/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42065impl std::ops::Drop for DatagramSocketSetSendBufferResponder {
42066    fn drop(&mut self) {
42067        self.control_handle.shutdown();
42068        // Safety: drops once, never accessed again
42069        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42070    }
42071}
42072
42073impl fidl::endpoints::Responder for DatagramSocketSetSendBufferResponder {
42074    type ControlHandle = DatagramSocketControlHandle;
42075
42076    fn control_handle(&self) -> &DatagramSocketControlHandle {
42077        &self.control_handle
42078    }
42079
42080    fn drop_without_shutdown(mut self) {
42081        // Safety: drops once, never accessed again due to mem::forget
42082        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42083        // Prevent Drop from running (which would shut down the channel)
42084        std::mem::forget(self);
42085    }
42086}
42087
42088impl DatagramSocketSetSendBufferResponder {
42089    /// Sends a response to the FIDL transaction.
42090    ///
42091    /// Sets the channel to shutdown if an error occurs.
42092    pub fn send(
42093        self,
42094        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42095    ) -> Result<(), fidl::Error> {
42096        let _result = self.send_raw(result);
42097        if _result.is_err() {
42098            self.control_handle.shutdown();
42099        }
42100        self.drop_without_shutdown();
42101        _result
42102    }
42103
42104    /// Similar to "send" but does not shutdown the channel if an error occurs.
42105    pub fn send_no_shutdown_on_err(
42106        self,
42107        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42108    ) -> Result<(), fidl::Error> {
42109        let _result = self.send_raw(result);
42110        self.drop_without_shutdown();
42111        _result
42112    }
42113
42114    fn send_raw(
42115        &self,
42116        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42117    ) -> Result<(), fidl::Error> {
42118        self.control_handle.inner.send::<fidl::encoding::ResultType<
42119            fidl::encoding::EmptyStruct,
42120            fidl_fuchsia_posix::Errno,
42121        >>(
42122            result,
42123            self.tx_id,
42124            0x756eac32d73a7a70,
42125            fidl::encoding::DynamicFlags::empty(),
42126        )
42127    }
42128}
42129
42130#[must_use = "FIDL methods require a response to be sent"]
42131#[derive(Debug)]
42132pub struct DatagramSocketGetSendBufferResponder {
42133    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42134    tx_id: u32,
42135}
42136
42137/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42138/// if the responder is dropped without sending a response, so that the client
42139/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42140impl std::ops::Drop for DatagramSocketGetSendBufferResponder {
42141    fn drop(&mut self) {
42142        self.control_handle.shutdown();
42143        // Safety: drops once, never accessed again
42144        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42145    }
42146}
42147
42148impl fidl::endpoints::Responder for DatagramSocketGetSendBufferResponder {
42149    type ControlHandle = DatagramSocketControlHandle;
42150
42151    fn control_handle(&self) -> &DatagramSocketControlHandle {
42152        &self.control_handle
42153    }
42154
42155    fn drop_without_shutdown(mut self) {
42156        // Safety: drops once, never accessed again due to mem::forget
42157        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42158        // Prevent Drop from running (which would shut down the channel)
42159        std::mem::forget(self);
42160    }
42161}
42162
42163impl DatagramSocketGetSendBufferResponder {
42164    /// Sends a response to the FIDL transaction.
42165    ///
42166    /// Sets the channel to shutdown if an error occurs.
42167    pub fn send(
42168        self,
42169        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42170    ) -> Result<(), fidl::Error> {
42171        let _result = self.send_raw(result);
42172        if _result.is_err() {
42173            self.control_handle.shutdown();
42174        }
42175        self.drop_without_shutdown();
42176        _result
42177    }
42178
42179    /// Similar to "send" but does not shutdown the channel if an error occurs.
42180    pub fn send_no_shutdown_on_err(
42181        self,
42182        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42183    ) -> Result<(), fidl::Error> {
42184        let _result = self.send_raw(result);
42185        self.drop_without_shutdown();
42186        _result
42187    }
42188
42189    fn send_raw(
42190        &self,
42191        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42192    ) -> Result<(), fidl::Error> {
42193        self.control_handle.inner.send::<fidl::encoding::ResultType<
42194            BaseSocketGetSendBufferResponse,
42195            fidl_fuchsia_posix::Errno,
42196        >>(
42197            result.map(|value_bytes| (value_bytes,)),
42198            self.tx_id,
42199            0x78a52fd9c7b2410b,
42200            fidl::encoding::DynamicFlags::empty(),
42201        )
42202    }
42203}
42204
42205#[must_use = "FIDL methods require a response to be sent"]
42206#[derive(Debug)]
42207pub struct DatagramSocketSetReceiveBufferResponder {
42208    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42209    tx_id: u32,
42210}
42211
42212/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42213/// if the responder is dropped without sending a response, so that the client
42214/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42215impl std::ops::Drop for DatagramSocketSetReceiveBufferResponder {
42216    fn drop(&mut self) {
42217        self.control_handle.shutdown();
42218        // Safety: drops once, never accessed again
42219        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42220    }
42221}
42222
42223impl fidl::endpoints::Responder for DatagramSocketSetReceiveBufferResponder {
42224    type ControlHandle = DatagramSocketControlHandle;
42225
42226    fn control_handle(&self) -> &DatagramSocketControlHandle {
42227        &self.control_handle
42228    }
42229
42230    fn drop_without_shutdown(mut self) {
42231        // Safety: drops once, never accessed again due to mem::forget
42232        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42233        // Prevent Drop from running (which would shut down the channel)
42234        std::mem::forget(self);
42235    }
42236}
42237
42238impl DatagramSocketSetReceiveBufferResponder {
42239    /// Sends a response to the FIDL transaction.
42240    ///
42241    /// Sets the channel to shutdown if an error occurs.
42242    pub fn send(
42243        self,
42244        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42245    ) -> Result<(), fidl::Error> {
42246        let _result = self.send_raw(result);
42247        if _result.is_err() {
42248            self.control_handle.shutdown();
42249        }
42250        self.drop_without_shutdown();
42251        _result
42252    }
42253
42254    /// Similar to "send" but does not shutdown the channel if an error occurs.
42255    pub fn send_no_shutdown_on_err(
42256        self,
42257        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42258    ) -> Result<(), fidl::Error> {
42259        let _result = self.send_raw(result);
42260        self.drop_without_shutdown();
42261        _result
42262    }
42263
42264    fn send_raw(
42265        &self,
42266        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42267    ) -> Result<(), fidl::Error> {
42268        self.control_handle.inner.send::<fidl::encoding::ResultType<
42269            fidl::encoding::EmptyStruct,
42270            fidl_fuchsia_posix::Errno,
42271        >>(
42272            result,
42273            self.tx_id,
42274            0x6b0cf2f1919c7001,
42275            fidl::encoding::DynamicFlags::empty(),
42276        )
42277    }
42278}
42279
42280#[must_use = "FIDL methods require a response to be sent"]
42281#[derive(Debug)]
42282pub struct DatagramSocketGetReceiveBufferResponder {
42283    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42284    tx_id: u32,
42285}
42286
42287/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42288/// if the responder is dropped without sending a response, so that the client
42289/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42290impl std::ops::Drop for DatagramSocketGetReceiveBufferResponder {
42291    fn drop(&mut self) {
42292        self.control_handle.shutdown();
42293        // Safety: drops once, never accessed again
42294        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42295    }
42296}
42297
42298impl fidl::endpoints::Responder for DatagramSocketGetReceiveBufferResponder {
42299    type ControlHandle = DatagramSocketControlHandle;
42300
42301    fn control_handle(&self) -> &DatagramSocketControlHandle {
42302        &self.control_handle
42303    }
42304
42305    fn drop_without_shutdown(mut self) {
42306        // Safety: drops once, never accessed again due to mem::forget
42307        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42308        // Prevent Drop from running (which would shut down the channel)
42309        std::mem::forget(self);
42310    }
42311}
42312
42313impl DatagramSocketGetReceiveBufferResponder {
42314    /// Sends a response to the FIDL transaction.
42315    ///
42316    /// Sets the channel to shutdown if an error occurs.
42317    pub fn send(
42318        self,
42319        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42320    ) -> Result<(), fidl::Error> {
42321        let _result = self.send_raw(result);
42322        if _result.is_err() {
42323            self.control_handle.shutdown();
42324        }
42325        self.drop_without_shutdown();
42326        _result
42327    }
42328
42329    /// Similar to "send" but does not shutdown the channel if an error occurs.
42330    pub fn send_no_shutdown_on_err(
42331        self,
42332        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42333    ) -> Result<(), fidl::Error> {
42334        let _result = self.send_raw(result);
42335        self.drop_without_shutdown();
42336        _result
42337    }
42338
42339    fn send_raw(
42340        &self,
42341        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
42342    ) -> Result<(), fidl::Error> {
42343        self.control_handle.inner.send::<fidl::encoding::ResultType<
42344            BaseSocketGetReceiveBufferResponse,
42345            fidl_fuchsia_posix::Errno,
42346        >>(
42347            result.map(|value_bytes| (value_bytes,)),
42348            self.tx_id,
42349            0x14c1a4b64f709e5c,
42350            fidl::encoding::DynamicFlags::empty(),
42351        )
42352    }
42353}
42354
42355#[must_use = "FIDL methods require a response to be sent"]
42356#[derive(Debug)]
42357pub struct DatagramSocketSetKeepAliveResponder {
42358    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42359    tx_id: u32,
42360}
42361
42362/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42363/// if the responder is dropped without sending a response, so that the client
42364/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42365impl std::ops::Drop for DatagramSocketSetKeepAliveResponder {
42366    fn drop(&mut self) {
42367        self.control_handle.shutdown();
42368        // Safety: drops once, never accessed again
42369        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42370    }
42371}
42372
42373impl fidl::endpoints::Responder for DatagramSocketSetKeepAliveResponder {
42374    type ControlHandle = DatagramSocketControlHandle;
42375
42376    fn control_handle(&self) -> &DatagramSocketControlHandle {
42377        &self.control_handle
42378    }
42379
42380    fn drop_without_shutdown(mut self) {
42381        // Safety: drops once, never accessed again due to mem::forget
42382        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42383        // Prevent Drop from running (which would shut down the channel)
42384        std::mem::forget(self);
42385    }
42386}
42387
42388impl DatagramSocketSetKeepAliveResponder {
42389    /// Sends a response to the FIDL transaction.
42390    ///
42391    /// Sets the channel to shutdown if an error occurs.
42392    pub fn send(
42393        self,
42394        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42395    ) -> Result<(), fidl::Error> {
42396        let _result = self.send_raw(result);
42397        if _result.is_err() {
42398            self.control_handle.shutdown();
42399        }
42400        self.drop_without_shutdown();
42401        _result
42402    }
42403
42404    /// Similar to "send" but does not shutdown the channel if an error occurs.
42405    pub fn send_no_shutdown_on_err(
42406        self,
42407        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42408    ) -> Result<(), fidl::Error> {
42409        let _result = self.send_raw(result);
42410        self.drop_without_shutdown();
42411        _result
42412    }
42413
42414    fn send_raw(
42415        &self,
42416        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42417    ) -> Result<(), fidl::Error> {
42418        self.control_handle.inner.send::<fidl::encoding::ResultType<
42419            fidl::encoding::EmptyStruct,
42420            fidl_fuchsia_posix::Errno,
42421        >>(
42422            result,
42423            self.tx_id,
42424            0x572df8f0b920d2c7,
42425            fidl::encoding::DynamicFlags::empty(),
42426        )
42427    }
42428}
42429
42430#[must_use = "FIDL methods require a response to be sent"]
42431#[derive(Debug)]
42432pub struct DatagramSocketGetKeepAliveResponder {
42433    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42434    tx_id: u32,
42435}
42436
42437/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42438/// if the responder is dropped without sending a response, so that the client
42439/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42440impl std::ops::Drop for DatagramSocketGetKeepAliveResponder {
42441    fn drop(&mut self) {
42442        self.control_handle.shutdown();
42443        // Safety: drops once, never accessed again
42444        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42445    }
42446}
42447
42448impl fidl::endpoints::Responder for DatagramSocketGetKeepAliveResponder {
42449    type ControlHandle = DatagramSocketControlHandle;
42450
42451    fn control_handle(&self) -> &DatagramSocketControlHandle {
42452        &self.control_handle
42453    }
42454
42455    fn drop_without_shutdown(mut self) {
42456        // Safety: drops once, never accessed again due to mem::forget
42457        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42458        // Prevent Drop from running (which would shut down the channel)
42459        std::mem::forget(self);
42460    }
42461}
42462
42463impl DatagramSocketGetKeepAliveResponder {
42464    /// Sends a response to the FIDL transaction.
42465    ///
42466    /// Sets the channel to shutdown if an error occurs.
42467    pub fn send(
42468        self,
42469        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42470    ) -> Result<(), fidl::Error> {
42471        let _result = self.send_raw(result);
42472        if _result.is_err() {
42473            self.control_handle.shutdown();
42474        }
42475        self.drop_without_shutdown();
42476        _result
42477    }
42478
42479    /// Similar to "send" but does not shutdown the channel if an error occurs.
42480    pub fn send_no_shutdown_on_err(
42481        self,
42482        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42483    ) -> Result<(), fidl::Error> {
42484        let _result = self.send_raw(result);
42485        self.drop_without_shutdown();
42486        _result
42487    }
42488
42489    fn send_raw(
42490        &self,
42491        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42492    ) -> Result<(), fidl::Error> {
42493        self.control_handle.inner.send::<fidl::encoding::ResultType<
42494            BaseSocketGetKeepAliveResponse,
42495            fidl_fuchsia_posix::Errno,
42496        >>(
42497            result.map(|value| (value,)),
42498            self.tx_id,
42499            0x2dd29d3215f2c9d2,
42500            fidl::encoding::DynamicFlags::empty(),
42501        )
42502    }
42503}
42504
42505#[must_use = "FIDL methods require a response to be sent"]
42506#[derive(Debug)]
42507pub struct DatagramSocketSetOutOfBandInlineResponder {
42508    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42509    tx_id: u32,
42510}
42511
42512/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42513/// if the responder is dropped without sending a response, so that the client
42514/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42515impl std::ops::Drop for DatagramSocketSetOutOfBandInlineResponder {
42516    fn drop(&mut self) {
42517        self.control_handle.shutdown();
42518        // Safety: drops once, never accessed again
42519        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42520    }
42521}
42522
42523impl fidl::endpoints::Responder for DatagramSocketSetOutOfBandInlineResponder {
42524    type ControlHandle = DatagramSocketControlHandle;
42525
42526    fn control_handle(&self) -> &DatagramSocketControlHandle {
42527        &self.control_handle
42528    }
42529
42530    fn drop_without_shutdown(mut self) {
42531        // Safety: drops once, never accessed again due to mem::forget
42532        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42533        // Prevent Drop from running (which would shut down the channel)
42534        std::mem::forget(self);
42535    }
42536}
42537
42538impl DatagramSocketSetOutOfBandInlineResponder {
42539    /// Sends a response to the FIDL transaction.
42540    ///
42541    /// Sets the channel to shutdown if an error occurs.
42542    pub fn send(
42543        self,
42544        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42545    ) -> Result<(), fidl::Error> {
42546        let _result = self.send_raw(result);
42547        if _result.is_err() {
42548            self.control_handle.shutdown();
42549        }
42550        self.drop_without_shutdown();
42551        _result
42552    }
42553
42554    /// Similar to "send" but does not shutdown the channel if an error occurs.
42555    pub fn send_no_shutdown_on_err(
42556        self,
42557        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42558    ) -> Result<(), fidl::Error> {
42559        let _result = self.send_raw(result);
42560        self.drop_without_shutdown();
42561        _result
42562    }
42563
42564    fn send_raw(
42565        &self,
42566        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42567    ) -> Result<(), fidl::Error> {
42568        self.control_handle.inner.send::<fidl::encoding::ResultType<
42569            fidl::encoding::EmptyStruct,
42570            fidl_fuchsia_posix::Errno,
42571        >>(
42572            result,
42573            self.tx_id,
42574            0x3ecb49968bee439,
42575            fidl::encoding::DynamicFlags::empty(),
42576        )
42577    }
42578}
42579
42580#[must_use = "FIDL methods require a response to be sent"]
42581#[derive(Debug)]
42582pub struct DatagramSocketGetOutOfBandInlineResponder {
42583    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42584    tx_id: u32,
42585}
42586
42587/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42588/// if the responder is dropped without sending a response, so that the client
42589/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42590impl std::ops::Drop for DatagramSocketGetOutOfBandInlineResponder {
42591    fn drop(&mut self) {
42592        self.control_handle.shutdown();
42593        // Safety: drops once, never accessed again
42594        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42595    }
42596}
42597
42598impl fidl::endpoints::Responder for DatagramSocketGetOutOfBandInlineResponder {
42599    type ControlHandle = DatagramSocketControlHandle;
42600
42601    fn control_handle(&self) -> &DatagramSocketControlHandle {
42602        &self.control_handle
42603    }
42604
42605    fn drop_without_shutdown(mut self) {
42606        // Safety: drops once, never accessed again due to mem::forget
42607        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42608        // Prevent Drop from running (which would shut down the channel)
42609        std::mem::forget(self);
42610    }
42611}
42612
42613impl DatagramSocketGetOutOfBandInlineResponder {
42614    /// Sends a response to the FIDL transaction.
42615    ///
42616    /// Sets the channel to shutdown if an error occurs.
42617    pub fn send(
42618        self,
42619        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42620    ) -> Result<(), fidl::Error> {
42621        let _result = self.send_raw(result);
42622        if _result.is_err() {
42623            self.control_handle.shutdown();
42624        }
42625        self.drop_without_shutdown();
42626        _result
42627    }
42628
42629    /// Similar to "send" but does not shutdown the channel if an error occurs.
42630    pub fn send_no_shutdown_on_err(
42631        self,
42632        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42633    ) -> Result<(), fidl::Error> {
42634        let _result = self.send_raw(result);
42635        self.drop_without_shutdown();
42636        _result
42637    }
42638
42639    fn send_raw(
42640        &self,
42641        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42642    ) -> Result<(), fidl::Error> {
42643        self.control_handle.inner.send::<fidl::encoding::ResultType<
42644            BaseSocketGetOutOfBandInlineResponse,
42645            fidl_fuchsia_posix::Errno,
42646        >>(
42647            result.map(|value| (value,)),
42648            self.tx_id,
42649            0x348c1ab3aeca1745,
42650            fidl::encoding::DynamicFlags::empty(),
42651        )
42652    }
42653}
42654
42655#[must_use = "FIDL methods require a response to be sent"]
42656#[derive(Debug)]
42657pub struct DatagramSocketSetNoCheckResponder {
42658    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42659    tx_id: u32,
42660}
42661
42662/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42663/// if the responder is dropped without sending a response, so that the client
42664/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42665impl std::ops::Drop for DatagramSocketSetNoCheckResponder {
42666    fn drop(&mut self) {
42667        self.control_handle.shutdown();
42668        // Safety: drops once, never accessed again
42669        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42670    }
42671}
42672
42673impl fidl::endpoints::Responder for DatagramSocketSetNoCheckResponder {
42674    type ControlHandle = DatagramSocketControlHandle;
42675
42676    fn control_handle(&self) -> &DatagramSocketControlHandle {
42677        &self.control_handle
42678    }
42679
42680    fn drop_without_shutdown(mut self) {
42681        // Safety: drops once, never accessed again due to mem::forget
42682        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42683        // Prevent Drop from running (which would shut down the channel)
42684        std::mem::forget(self);
42685    }
42686}
42687
42688impl DatagramSocketSetNoCheckResponder {
42689    /// Sends a response to the FIDL transaction.
42690    ///
42691    /// Sets the channel to shutdown if an error occurs.
42692    pub fn send(
42693        self,
42694        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42695    ) -> Result<(), fidl::Error> {
42696        let _result = self.send_raw(result);
42697        if _result.is_err() {
42698            self.control_handle.shutdown();
42699        }
42700        self.drop_without_shutdown();
42701        _result
42702    }
42703
42704    /// Similar to "send" but does not shutdown the channel if an error occurs.
42705    pub fn send_no_shutdown_on_err(
42706        self,
42707        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42708    ) -> Result<(), fidl::Error> {
42709        let _result = self.send_raw(result);
42710        self.drop_without_shutdown();
42711        _result
42712    }
42713
42714    fn send_raw(
42715        &self,
42716        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42717    ) -> Result<(), fidl::Error> {
42718        self.control_handle.inner.send::<fidl::encoding::ResultType<
42719            fidl::encoding::EmptyStruct,
42720            fidl_fuchsia_posix::Errno,
42721        >>(
42722            result,
42723            self.tx_id,
42724            0x6bbf00c53a4c78c2,
42725            fidl::encoding::DynamicFlags::empty(),
42726        )
42727    }
42728}
42729
42730#[must_use = "FIDL methods require a response to be sent"]
42731#[derive(Debug)]
42732pub struct DatagramSocketGetNoCheckResponder {
42733    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42734    tx_id: u32,
42735}
42736
42737/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42738/// if the responder is dropped without sending a response, so that the client
42739/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42740impl std::ops::Drop for DatagramSocketGetNoCheckResponder {
42741    fn drop(&mut self) {
42742        self.control_handle.shutdown();
42743        // Safety: drops once, never accessed again
42744        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42745    }
42746}
42747
42748impl fidl::endpoints::Responder for DatagramSocketGetNoCheckResponder {
42749    type ControlHandle = DatagramSocketControlHandle;
42750
42751    fn control_handle(&self) -> &DatagramSocketControlHandle {
42752        &self.control_handle
42753    }
42754
42755    fn drop_without_shutdown(mut self) {
42756        // Safety: drops once, never accessed again due to mem::forget
42757        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42758        // Prevent Drop from running (which would shut down the channel)
42759        std::mem::forget(self);
42760    }
42761}
42762
42763impl DatagramSocketGetNoCheckResponder {
42764    /// Sends a response to the FIDL transaction.
42765    ///
42766    /// Sets the channel to shutdown if an error occurs.
42767    pub fn send(
42768        self,
42769        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42770    ) -> Result<(), fidl::Error> {
42771        let _result = self.send_raw(result);
42772        if _result.is_err() {
42773            self.control_handle.shutdown();
42774        }
42775        self.drop_without_shutdown();
42776        _result
42777    }
42778
42779    /// Similar to "send" but does not shutdown the channel if an error occurs.
42780    pub fn send_no_shutdown_on_err(
42781        self,
42782        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42783    ) -> Result<(), fidl::Error> {
42784        let _result = self.send_raw(result);
42785        self.drop_without_shutdown();
42786        _result
42787    }
42788
42789    fn send_raw(
42790        &self,
42791        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
42792    ) -> Result<(), fidl::Error> {
42793        self.control_handle.inner.send::<fidl::encoding::ResultType<
42794            BaseSocketGetNoCheckResponse,
42795            fidl_fuchsia_posix::Errno,
42796        >>(
42797            result.map(|value| (value,)),
42798            self.tx_id,
42799            0x2cd4249286417694,
42800            fidl::encoding::DynamicFlags::empty(),
42801        )
42802    }
42803}
42804
42805#[must_use = "FIDL methods require a response to be sent"]
42806#[derive(Debug)]
42807pub struct DatagramSocketSetLingerResponder {
42808    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42809    tx_id: u32,
42810}
42811
42812/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42813/// if the responder is dropped without sending a response, so that the client
42814/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42815impl std::ops::Drop for DatagramSocketSetLingerResponder {
42816    fn drop(&mut self) {
42817        self.control_handle.shutdown();
42818        // Safety: drops once, never accessed again
42819        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42820    }
42821}
42822
42823impl fidl::endpoints::Responder for DatagramSocketSetLingerResponder {
42824    type ControlHandle = DatagramSocketControlHandle;
42825
42826    fn control_handle(&self) -> &DatagramSocketControlHandle {
42827        &self.control_handle
42828    }
42829
42830    fn drop_without_shutdown(mut self) {
42831        // Safety: drops once, never accessed again due to mem::forget
42832        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42833        // Prevent Drop from running (which would shut down the channel)
42834        std::mem::forget(self);
42835    }
42836}
42837
42838impl DatagramSocketSetLingerResponder {
42839    /// Sends a response to the FIDL transaction.
42840    ///
42841    /// Sets the channel to shutdown if an error occurs.
42842    pub fn send(
42843        self,
42844        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42845    ) -> Result<(), fidl::Error> {
42846        let _result = self.send_raw(result);
42847        if _result.is_err() {
42848            self.control_handle.shutdown();
42849        }
42850        self.drop_without_shutdown();
42851        _result
42852    }
42853
42854    /// Similar to "send" but does not shutdown the channel if an error occurs.
42855    pub fn send_no_shutdown_on_err(
42856        self,
42857        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42858    ) -> Result<(), fidl::Error> {
42859        let _result = self.send_raw(result);
42860        self.drop_without_shutdown();
42861        _result
42862    }
42863
42864    fn send_raw(
42865        &self,
42866        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42867    ) -> Result<(), fidl::Error> {
42868        self.control_handle.inner.send::<fidl::encoding::ResultType<
42869            fidl::encoding::EmptyStruct,
42870            fidl_fuchsia_posix::Errno,
42871        >>(
42872            result,
42873            self.tx_id,
42874            0x45386351246e998e,
42875            fidl::encoding::DynamicFlags::empty(),
42876        )
42877    }
42878}
42879
42880#[must_use = "FIDL methods require a response to be sent"]
42881#[derive(Debug)]
42882pub struct DatagramSocketGetLingerResponder {
42883    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42884    tx_id: u32,
42885}
42886
42887/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42888/// if the responder is dropped without sending a response, so that the client
42889/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42890impl std::ops::Drop for DatagramSocketGetLingerResponder {
42891    fn drop(&mut self) {
42892        self.control_handle.shutdown();
42893        // Safety: drops once, never accessed again
42894        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42895    }
42896}
42897
42898impl fidl::endpoints::Responder for DatagramSocketGetLingerResponder {
42899    type ControlHandle = DatagramSocketControlHandle;
42900
42901    fn control_handle(&self) -> &DatagramSocketControlHandle {
42902        &self.control_handle
42903    }
42904
42905    fn drop_without_shutdown(mut self) {
42906        // Safety: drops once, never accessed again due to mem::forget
42907        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42908        // Prevent Drop from running (which would shut down the channel)
42909        std::mem::forget(self);
42910    }
42911}
42912
42913impl DatagramSocketGetLingerResponder {
42914    /// Sends a response to the FIDL transaction.
42915    ///
42916    /// Sets the channel to shutdown if an error occurs.
42917    pub fn send(
42918        self,
42919        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
42920    ) -> Result<(), fidl::Error> {
42921        let _result = self.send_raw(result);
42922        if _result.is_err() {
42923            self.control_handle.shutdown();
42924        }
42925        self.drop_without_shutdown();
42926        _result
42927    }
42928
42929    /// Similar to "send" but does not shutdown the channel if an error occurs.
42930    pub fn send_no_shutdown_on_err(
42931        self,
42932        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
42933    ) -> Result<(), fidl::Error> {
42934        let _result = self.send_raw(result);
42935        self.drop_without_shutdown();
42936        _result
42937    }
42938
42939    fn send_raw(
42940        &self,
42941        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
42942    ) -> Result<(), fidl::Error> {
42943        self.control_handle.inner.send::<fidl::encoding::ResultType<
42944            BaseSocketGetLingerResponse,
42945            fidl_fuchsia_posix::Errno,
42946        >>(
42947            result,
42948            self.tx_id,
42949            0x48eb20fc5ccb0e45,
42950            fidl::encoding::DynamicFlags::empty(),
42951        )
42952    }
42953}
42954
42955#[must_use = "FIDL methods require a response to be sent"]
42956#[derive(Debug)]
42957pub struct DatagramSocketSetReusePortResponder {
42958    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
42959    tx_id: u32,
42960}
42961
42962/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
42963/// if the responder is dropped without sending a response, so that the client
42964/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
42965impl std::ops::Drop for DatagramSocketSetReusePortResponder {
42966    fn drop(&mut self) {
42967        self.control_handle.shutdown();
42968        // Safety: drops once, never accessed again
42969        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42970    }
42971}
42972
42973impl fidl::endpoints::Responder for DatagramSocketSetReusePortResponder {
42974    type ControlHandle = DatagramSocketControlHandle;
42975
42976    fn control_handle(&self) -> &DatagramSocketControlHandle {
42977        &self.control_handle
42978    }
42979
42980    fn drop_without_shutdown(mut self) {
42981        // Safety: drops once, never accessed again due to mem::forget
42982        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
42983        // Prevent Drop from running (which would shut down the channel)
42984        std::mem::forget(self);
42985    }
42986}
42987
42988impl DatagramSocketSetReusePortResponder {
42989    /// Sends a response to the FIDL transaction.
42990    ///
42991    /// Sets the channel to shutdown if an error occurs.
42992    pub fn send(
42993        self,
42994        mut result: Result<(), fidl_fuchsia_posix::Errno>,
42995    ) -> Result<(), fidl::Error> {
42996        let _result = self.send_raw(result);
42997        if _result.is_err() {
42998            self.control_handle.shutdown();
42999        }
43000        self.drop_without_shutdown();
43001        _result
43002    }
43003
43004    /// Similar to "send" but does not shutdown the channel if an error occurs.
43005    pub fn send_no_shutdown_on_err(
43006        self,
43007        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43008    ) -> Result<(), fidl::Error> {
43009        let _result = self.send_raw(result);
43010        self.drop_without_shutdown();
43011        _result
43012    }
43013
43014    fn send_raw(
43015        &self,
43016        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43017    ) -> Result<(), fidl::Error> {
43018        self.control_handle.inner.send::<fidl::encoding::ResultType<
43019            fidl::encoding::EmptyStruct,
43020            fidl_fuchsia_posix::Errno,
43021        >>(
43022            result,
43023            self.tx_id,
43024            0x24dd3e5cb36d9ccb,
43025            fidl::encoding::DynamicFlags::empty(),
43026        )
43027    }
43028}
43029
43030#[must_use = "FIDL methods require a response to be sent"]
43031#[derive(Debug)]
43032pub struct DatagramSocketGetReusePortResponder {
43033    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43034    tx_id: u32,
43035}
43036
43037/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43038/// if the responder is dropped without sending a response, so that the client
43039/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43040impl std::ops::Drop for DatagramSocketGetReusePortResponder {
43041    fn drop(&mut self) {
43042        self.control_handle.shutdown();
43043        // Safety: drops once, never accessed again
43044        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43045    }
43046}
43047
43048impl fidl::endpoints::Responder for DatagramSocketGetReusePortResponder {
43049    type ControlHandle = DatagramSocketControlHandle;
43050
43051    fn control_handle(&self) -> &DatagramSocketControlHandle {
43052        &self.control_handle
43053    }
43054
43055    fn drop_without_shutdown(mut self) {
43056        // Safety: drops once, never accessed again due to mem::forget
43057        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43058        // Prevent Drop from running (which would shut down the channel)
43059        std::mem::forget(self);
43060    }
43061}
43062
43063impl DatagramSocketGetReusePortResponder {
43064    /// Sends a response to the FIDL transaction.
43065    ///
43066    /// Sets the channel to shutdown if an error occurs.
43067    pub fn send(
43068        self,
43069        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43070    ) -> Result<(), fidl::Error> {
43071        let _result = self.send_raw(result);
43072        if _result.is_err() {
43073            self.control_handle.shutdown();
43074        }
43075        self.drop_without_shutdown();
43076        _result
43077    }
43078
43079    /// Similar to "send" but does not shutdown the channel if an error occurs.
43080    pub fn send_no_shutdown_on_err(
43081        self,
43082        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43083    ) -> Result<(), fidl::Error> {
43084        let _result = self.send_raw(result);
43085        self.drop_without_shutdown();
43086        _result
43087    }
43088
43089    fn send_raw(
43090        &self,
43091        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43092    ) -> Result<(), fidl::Error> {
43093        self.control_handle.inner.send::<fidl::encoding::ResultType<
43094            BaseSocketGetReusePortResponse,
43095            fidl_fuchsia_posix::Errno,
43096        >>(
43097            result.map(|value| (value,)),
43098            self.tx_id,
43099            0x7a112c1ab54ff828,
43100            fidl::encoding::DynamicFlags::empty(),
43101        )
43102    }
43103}
43104
43105#[must_use = "FIDL methods require a response to be sent"]
43106#[derive(Debug)]
43107pub struct DatagramSocketGetAcceptConnResponder {
43108    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43109    tx_id: u32,
43110}
43111
43112/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43113/// if the responder is dropped without sending a response, so that the client
43114/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43115impl std::ops::Drop for DatagramSocketGetAcceptConnResponder {
43116    fn drop(&mut self) {
43117        self.control_handle.shutdown();
43118        // Safety: drops once, never accessed again
43119        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43120    }
43121}
43122
43123impl fidl::endpoints::Responder for DatagramSocketGetAcceptConnResponder {
43124    type ControlHandle = DatagramSocketControlHandle;
43125
43126    fn control_handle(&self) -> &DatagramSocketControlHandle {
43127        &self.control_handle
43128    }
43129
43130    fn drop_without_shutdown(mut self) {
43131        // Safety: drops once, never accessed again due to mem::forget
43132        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43133        // Prevent Drop from running (which would shut down the channel)
43134        std::mem::forget(self);
43135    }
43136}
43137
43138impl DatagramSocketGetAcceptConnResponder {
43139    /// Sends a response to the FIDL transaction.
43140    ///
43141    /// Sets the channel to shutdown if an error occurs.
43142    pub fn send(
43143        self,
43144        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43145    ) -> Result<(), fidl::Error> {
43146        let _result = self.send_raw(result);
43147        if _result.is_err() {
43148            self.control_handle.shutdown();
43149        }
43150        self.drop_without_shutdown();
43151        _result
43152    }
43153
43154    /// Similar to "send" but does not shutdown the channel if an error occurs.
43155    pub fn send_no_shutdown_on_err(
43156        self,
43157        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43158    ) -> Result<(), fidl::Error> {
43159        let _result = self.send_raw(result);
43160        self.drop_without_shutdown();
43161        _result
43162    }
43163
43164    fn send_raw(
43165        &self,
43166        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
43167    ) -> Result<(), fidl::Error> {
43168        self.control_handle.inner.send::<fidl::encoding::ResultType<
43169            BaseSocketGetAcceptConnResponse,
43170            fidl_fuchsia_posix::Errno,
43171        >>(
43172            result.map(|value| (value,)),
43173            self.tx_id,
43174            0x67ce6db6c2ec8966,
43175            fidl::encoding::DynamicFlags::empty(),
43176        )
43177    }
43178}
43179
43180#[must_use = "FIDL methods require a response to be sent"]
43181#[derive(Debug)]
43182pub struct DatagramSocketSetBindToDeviceResponder {
43183    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43184    tx_id: u32,
43185}
43186
43187/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43188/// if the responder is dropped without sending a response, so that the client
43189/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43190impl std::ops::Drop for DatagramSocketSetBindToDeviceResponder {
43191    fn drop(&mut self) {
43192        self.control_handle.shutdown();
43193        // Safety: drops once, never accessed again
43194        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43195    }
43196}
43197
43198impl fidl::endpoints::Responder for DatagramSocketSetBindToDeviceResponder {
43199    type ControlHandle = DatagramSocketControlHandle;
43200
43201    fn control_handle(&self) -> &DatagramSocketControlHandle {
43202        &self.control_handle
43203    }
43204
43205    fn drop_without_shutdown(mut self) {
43206        // Safety: drops once, never accessed again due to mem::forget
43207        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43208        // Prevent Drop from running (which would shut down the channel)
43209        std::mem::forget(self);
43210    }
43211}
43212
43213impl DatagramSocketSetBindToDeviceResponder {
43214    /// Sends a response to the FIDL transaction.
43215    ///
43216    /// Sets the channel to shutdown if an error occurs.
43217    pub fn send(
43218        self,
43219        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43220    ) -> Result<(), fidl::Error> {
43221        let _result = self.send_raw(result);
43222        if _result.is_err() {
43223            self.control_handle.shutdown();
43224        }
43225        self.drop_without_shutdown();
43226        _result
43227    }
43228
43229    /// Similar to "send" but does not shutdown the channel if an error occurs.
43230    pub fn send_no_shutdown_on_err(
43231        self,
43232        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43233    ) -> Result<(), fidl::Error> {
43234        let _result = self.send_raw(result);
43235        self.drop_without_shutdown();
43236        _result
43237    }
43238
43239    fn send_raw(
43240        &self,
43241        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43242    ) -> Result<(), fidl::Error> {
43243        self.control_handle.inner.send::<fidl::encoding::ResultType<
43244            fidl::encoding::EmptyStruct,
43245            fidl_fuchsia_posix::Errno,
43246        >>(
43247            result,
43248            self.tx_id,
43249            0x2118b483f28aafc4,
43250            fidl::encoding::DynamicFlags::empty(),
43251        )
43252    }
43253}
43254
43255#[must_use = "FIDL methods require a response to be sent"]
43256#[derive(Debug)]
43257pub struct DatagramSocketGetBindToDeviceResponder {
43258    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43259    tx_id: u32,
43260}
43261
43262/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43263/// if the responder is dropped without sending a response, so that the client
43264/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43265impl std::ops::Drop for DatagramSocketGetBindToDeviceResponder {
43266    fn drop(&mut self) {
43267        self.control_handle.shutdown();
43268        // Safety: drops once, never accessed again
43269        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43270    }
43271}
43272
43273impl fidl::endpoints::Responder for DatagramSocketGetBindToDeviceResponder {
43274    type ControlHandle = DatagramSocketControlHandle;
43275
43276    fn control_handle(&self) -> &DatagramSocketControlHandle {
43277        &self.control_handle
43278    }
43279
43280    fn drop_without_shutdown(mut self) {
43281        // Safety: drops once, never accessed again due to mem::forget
43282        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43283        // Prevent Drop from running (which would shut down the channel)
43284        std::mem::forget(self);
43285    }
43286}
43287
43288impl DatagramSocketGetBindToDeviceResponder {
43289    /// Sends a response to the FIDL transaction.
43290    ///
43291    /// Sets the channel to shutdown if an error occurs.
43292    pub fn send(
43293        self,
43294        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
43295    ) -> Result<(), fidl::Error> {
43296        let _result = self.send_raw(result);
43297        if _result.is_err() {
43298            self.control_handle.shutdown();
43299        }
43300        self.drop_without_shutdown();
43301        _result
43302    }
43303
43304    /// Similar to "send" but does not shutdown the channel if an error occurs.
43305    pub fn send_no_shutdown_on_err(
43306        self,
43307        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
43308    ) -> Result<(), fidl::Error> {
43309        let _result = self.send_raw(result);
43310        self.drop_without_shutdown();
43311        _result
43312    }
43313
43314    fn send_raw(
43315        &self,
43316        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
43317    ) -> Result<(), fidl::Error> {
43318        self.control_handle.inner.send::<fidl::encoding::ResultType<
43319            BaseSocketGetBindToDeviceResponse,
43320            fidl_fuchsia_posix::Errno,
43321        >>(
43322            result.map(|value| (value,)),
43323            self.tx_id,
43324            0x1ab1fbf0ef7906c8,
43325            fidl::encoding::DynamicFlags::empty(),
43326        )
43327    }
43328}
43329
43330#[must_use = "FIDL methods require a response to be sent"]
43331#[derive(Debug)]
43332pub struct DatagramSocketSetBindToInterfaceIndexResponder {
43333    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43334    tx_id: u32,
43335}
43336
43337/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43338/// if the responder is dropped without sending a response, so that the client
43339/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43340impl std::ops::Drop for DatagramSocketSetBindToInterfaceIndexResponder {
43341    fn drop(&mut self) {
43342        self.control_handle.shutdown();
43343        // Safety: drops once, never accessed again
43344        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43345    }
43346}
43347
43348impl fidl::endpoints::Responder for DatagramSocketSetBindToInterfaceIndexResponder {
43349    type ControlHandle = DatagramSocketControlHandle;
43350
43351    fn control_handle(&self) -> &DatagramSocketControlHandle {
43352        &self.control_handle
43353    }
43354
43355    fn drop_without_shutdown(mut self) {
43356        // Safety: drops once, never accessed again due to mem::forget
43357        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43358        // Prevent Drop from running (which would shut down the channel)
43359        std::mem::forget(self);
43360    }
43361}
43362
43363impl DatagramSocketSetBindToInterfaceIndexResponder {
43364    /// Sends a response to the FIDL transaction.
43365    ///
43366    /// Sets the channel to shutdown if an error occurs.
43367    pub fn send(
43368        self,
43369        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43370    ) -> Result<(), fidl::Error> {
43371        let _result = self.send_raw(result);
43372        if _result.is_err() {
43373            self.control_handle.shutdown();
43374        }
43375        self.drop_without_shutdown();
43376        _result
43377    }
43378
43379    /// Similar to "send" but does not shutdown the channel if an error occurs.
43380    pub fn send_no_shutdown_on_err(
43381        self,
43382        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43383    ) -> Result<(), fidl::Error> {
43384        let _result = self.send_raw(result);
43385        self.drop_without_shutdown();
43386        _result
43387    }
43388
43389    fn send_raw(
43390        &self,
43391        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43392    ) -> Result<(), fidl::Error> {
43393        self.control_handle.inner.send::<fidl::encoding::ResultType<
43394            fidl::encoding::EmptyStruct,
43395            fidl_fuchsia_posix::Errno,
43396        >>(
43397            result,
43398            self.tx_id,
43399            0x6e387a0def00821,
43400            fidl::encoding::DynamicFlags::empty(),
43401        )
43402    }
43403}
43404
43405#[must_use = "FIDL methods require a response to be sent"]
43406#[derive(Debug)]
43407pub struct DatagramSocketGetBindToInterfaceIndexResponder {
43408    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43409    tx_id: u32,
43410}
43411
43412/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43413/// if the responder is dropped without sending a response, so that the client
43414/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43415impl std::ops::Drop for DatagramSocketGetBindToInterfaceIndexResponder {
43416    fn drop(&mut self) {
43417        self.control_handle.shutdown();
43418        // Safety: drops once, never accessed again
43419        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43420    }
43421}
43422
43423impl fidl::endpoints::Responder for DatagramSocketGetBindToInterfaceIndexResponder {
43424    type ControlHandle = DatagramSocketControlHandle;
43425
43426    fn control_handle(&self) -> &DatagramSocketControlHandle {
43427        &self.control_handle
43428    }
43429
43430    fn drop_without_shutdown(mut self) {
43431        // Safety: drops once, never accessed again due to mem::forget
43432        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43433        // Prevent Drop from running (which would shut down the channel)
43434        std::mem::forget(self);
43435    }
43436}
43437
43438impl DatagramSocketGetBindToInterfaceIndexResponder {
43439    /// Sends a response to the FIDL transaction.
43440    ///
43441    /// Sets the channel to shutdown if an error occurs.
43442    pub fn send(
43443        self,
43444        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43445    ) -> Result<(), fidl::Error> {
43446        let _result = self.send_raw(result);
43447        if _result.is_err() {
43448            self.control_handle.shutdown();
43449        }
43450        self.drop_without_shutdown();
43451        _result
43452    }
43453
43454    /// Similar to "send" but does not shutdown the channel if an error occurs.
43455    pub fn send_no_shutdown_on_err(
43456        self,
43457        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43458    ) -> Result<(), fidl::Error> {
43459        let _result = self.send_raw(result);
43460        self.drop_without_shutdown();
43461        _result
43462    }
43463
43464    fn send_raw(
43465        &self,
43466        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43467    ) -> Result<(), fidl::Error> {
43468        self.control_handle.inner.send::<fidl::encoding::ResultType<
43469            BaseSocketGetBindToInterfaceIndexResponse,
43470            fidl_fuchsia_posix::Errno,
43471        >>(
43472            result.map(|value| (value,)),
43473            self.tx_id,
43474            0x59c31dd3e3078295,
43475            fidl::encoding::DynamicFlags::empty(),
43476        )
43477    }
43478}
43479
43480#[must_use = "FIDL methods require a response to be sent"]
43481#[derive(Debug)]
43482pub struct DatagramSocketSetTimestampResponder {
43483    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43484    tx_id: u32,
43485}
43486
43487/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43488/// if the responder is dropped without sending a response, so that the client
43489/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43490impl std::ops::Drop for DatagramSocketSetTimestampResponder {
43491    fn drop(&mut self) {
43492        self.control_handle.shutdown();
43493        // Safety: drops once, never accessed again
43494        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43495    }
43496}
43497
43498impl fidl::endpoints::Responder for DatagramSocketSetTimestampResponder {
43499    type ControlHandle = DatagramSocketControlHandle;
43500
43501    fn control_handle(&self) -> &DatagramSocketControlHandle {
43502        &self.control_handle
43503    }
43504
43505    fn drop_without_shutdown(mut self) {
43506        // Safety: drops once, never accessed again due to mem::forget
43507        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43508        // Prevent Drop from running (which would shut down the channel)
43509        std::mem::forget(self);
43510    }
43511}
43512
43513impl DatagramSocketSetTimestampResponder {
43514    /// Sends a response to the FIDL transaction.
43515    ///
43516    /// Sets the channel to shutdown if an error occurs.
43517    pub fn send(
43518        self,
43519        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43520    ) -> Result<(), fidl::Error> {
43521        let _result = self.send_raw(result);
43522        if _result.is_err() {
43523            self.control_handle.shutdown();
43524        }
43525        self.drop_without_shutdown();
43526        _result
43527    }
43528
43529    /// Similar to "send" but does not shutdown the channel if an error occurs.
43530    pub fn send_no_shutdown_on_err(
43531        self,
43532        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43533    ) -> Result<(), fidl::Error> {
43534        let _result = self.send_raw(result);
43535        self.drop_without_shutdown();
43536        _result
43537    }
43538
43539    fn send_raw(
43540        &self,
43541        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43542    ) -> Result<(), fidl::Error> {
43543        self.control_handle.inner.send::<fidl::encoding::ResultType<
43544            fidl::encoding::EmptyStruct,
43545            fidl_fuchsia_posix::Errno,
43546        >>(
43547            result,
43548            self.tx_id,
43549            0x285d6516c263d839,
43550            fidl::encoding::DynamicFlags::empty(),
43551        )
43552    }
43553}
43554
43555#[must_use = "FIDL methods require a response to be sent"]
43556#[derive(Debug)]
43557pub struct DatagramSocketGetTimestampResponder {
43558    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43559    tx_id: u32,
43560}
43561
43562/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43563/// if the responder is dropped without sending a response, so that the client
43564/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43565impl std::ops::Drop for DatagramSocketGetTimestampResponder {
43566    fn drop(&mut self) {
43567        self.control_handle.shutdown();
43568        // Safety: drops once, never accessed again
43569        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43570    }
43571}
43572
43573impl fidl::endpoints::Responder for DatagramSocketGetTimestampResponder {
43574    type ControlHandle = DatagramSocketControlHandle;
43575
43576    fn control_handle(&self) -> &DatagramSocketControlHandle {
43577        &self.control_handle
43578    }
43579
43580    fn drop_without_shutdown(mut self) {
43581        // Safety: drops once, never accessed again due to mem::forget
43582        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43583        // Prevent Drop from running (which would shut down the channel)
43584        std::mem::forget(self);
43585    }
43586}
43587
43588impl DatagramSocketGetTimestampResponder {
43589    /// Sends a response to the FIDL transaction.
43590    ///
43591    /// Sets the channel to shutdown if an error occurs.
43592    pub fn send(
43593        self,
43594        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
43595    ) -> Result<(), fidl::Error> {
43596        let _result = self.send_raw(result);
43597        if _result.is_err() {
43598            self.control_handle.shutdown();
43599        }
43600        self.drop_without_shutdown();
43601        _result
43602    }
43603
43604    /// Similar to "send" but does not shutdown the channel if an error occurs.
43605    pub fn send_no_shutdown_on_err(
43606        self,
43607        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
43608    ) -> Result<(), fidl::Error> {
43609        let _result = self.send_raw(result);
43610        self.drop_without_shutdown();
43611        _result
43612    }
43613
43614    fn send_raw(
43615        &self,
43616        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
43617    ) -> Result<(), fidl::Error> {
43618        self.control_handle.inner.send::<fidl::encoding::ResultType<
43619            BaseSocketGetTimestampResponse,
43620            fidl_fuchsia_posix::Errno,
43621        >>(
43622            result.map(|value| (value,)),
43623            self.tx_id,
43624            0x49f2fffbbcc2bd27,
43625            fidl::encoding::DynamicFlags::empty(),
43626        )
43627    }
43628}
43629
43630#[must_use = "FIDL methods require a response to be sent"]
43631#[derive(Debug)]
43632pub struct DatagramSocketSetMarkResponder {
43633    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43634    tx_id: u32,
43635}
43636
43637/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43638/// if the responder is dropped without sending a response, so that the client
43639/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43640impl std::ops::Drop for DatagramSocketSetMarkResponder {
43641    fn drop(&mut self) {
43642        self.control_handle.shutdown();
43643        // Safety: drops once, never accessed again
43644        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43645    }
43646}
43647
43648impl fidl::endpoints::Responder for DatagramSocketSetMarkResponder {
43649    type ControlHandle = DatagramSocketControlHandle;
43650
43651    fn control_handle(&self) -> &DatagramSocketControlHandle {
43652        &self.control_handle
43653    }
43654
43655    fn drop_without_shutdown(mut self) {
43656        // Safety: drops once, never accessed again due to mem::forget
43657        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43658        // Prevent Drop from running (which would shut down the channel)
43659        std::mem::forget(self);
43660    }
43661}
43662
43663impl DatagramSocketSetMarkResponder {
43664    /// Sends a response to the FIDL transaction.
43665    ///
43666    /// Sets the channel to shutdown if an error occurs.
43667    pub fn send(
43668        self,
43669        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43670    ) -> Result<(), fidl::Error> {
43671        let _result = self.send_raw(result);
43672        if _result.is_err() {
43673            self.control_handle.shutdown();
43674        }
43675        self.drop_without_shutdown();
43676        _result
43677    }
43678
43679    /// Similar to "send" but does not shutdown the channel if an error occurs.
43680    pub fn send_no_shutdown_on_err(
43681        self,
43682        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43683    ) -> Result<(), fidl::Error> {
43684        let _result = self.send_raw(result);
43685        self.drop_without_shutdown();
43686        _result
43687    }
43688
43689    fn send_raw(
43690        &self,
43691        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43692    ) -> Result<(), fidl::Error> {
43693        self.control_handle.inner.send::<fidl::encoding::ResultType<
43694            fidl::encoding::EmptyStruct,
43695            fidl_fuchsia_posix::Errno,
43696        >>(
43697            result,
43698            self.tx_id,
43699            0x6ead6de09f653236,
43700            fidl::encoding::DynamicFlags::empty(),
43701        )
43702    }
43703}
43704
43705#[must_use = "FIDL methods require a response to be sent"]
43706#[derive(Debug)]
43707pub struct DatagramSocketGetMarkResponder {
43708    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43709    tx_id: u32,
43710}
43711
43712/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43713/// if the responder is dropped without sending a response, so that the client
43714/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43715impl std::ops::Drop for DatagramSocketGetMarkResponder {
43716    fn drop(&mut self) {
43717        self.control_handle.shutdown();
43718        // Safety: drops once, never accessed again
43719        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43720    }
43721}
43722
43723impl fidl::endpoints::Responder for DatagramSocketGetMarkResponder {
43724    type ControlHandle = DatagramSocketControlHandle;
43725
43726    fn control_handle(&self) -> &DatagramSocketControlHandle {
43727        &self.control_handle
43728    }
43729
43730    fn drop_without_shutdown(mut self) {
43731        // Safety: drops once, never accessed again due to mem::forget
43732        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43733        // Prevent Drop from running (which would shut down the channel)
43734        std::mem::forget(self);
43735    }
43736}
43737
43738impl DatagramSocketGetMarkResponder {
43739    /// Sends a response to the FIDL transaction.
43740    ///
43741    /// Sets the channel to shutdown if an error occurs.
43742    pub fn send(
43743        self,
43744        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
43745    ) -> Result<(), fidl::Error> {
43746        let _result = self.send_raw(result);
43747        if _result.is_err() {
43748            self.control_handle.shutdown();
43749        }
43750        self.drop_without_shutdown();
43751        _result
43752    }
43753
43754    /// Similar to "send" but does not shutdown the channel if an error occurs.
43755    pub fn send_no_shutdown_on_err(
43756        self,
43757        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
43758    ) -> Result<(), fidl::Error> {
43759        let _result = self.send_raw(result);
43760        self.drop_without_shutdown();
43761        _result
43762    }
43763
43764    fn send_raw(
43765        &self,
43766        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
43767    ) -> Result<(), fidl::Error> {
43768        self.control_handle.inner.send::<fidl::encoding::ResultType<
43769            BaseSocketGetMarkResponse,
43770            fidl_fuchsia_posix::Errno,
43771        >>(
43772            result.map(|mark| (mark,)),
43773            self.tx_id,
43774            0x57a2752c61d93d47,
43775            fidl::encoding::DynamicFlags::empty(),
43776        )
43777    }
43778}
43779
43780#[must_use = "FIDL methods require a response to be sent"]
43781#[derive(Debug)]
43782pub struct DatagramSocketGetCookieResponder {
43783    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43784    tx_id: u32,
43785}
43786
43787/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43788/// if the responder is dropped without sending a response, so that the client
43789/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43790impl std::ops::Drop for DatagramSocketGetCookieResponder {
43791    fn drop(&mut self) {
43792        self.control_handle.shutdown();
43793        // Safety: drops once, never accessed again
43794        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43795    }
43796}
43797
43798impl fidl::endpoints::Responder for DatagramSocketGetCookieResponder {
43799    type ControlHandle = DatagramSocketControlHandle;
43800
43801    fn control_handle(&self) -> &DatagramSocketControlHandle {
43802        &self.control_handle
43803    }
43804
43805    fn drop_without_shutdown(mut self) {
43806        // Safety: drops once, never accessed again due to mem::forget
43807        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43808        // Prevent Drop from running (which would shut down the channel)
43809        std::mem::forget(self);
43810    }
43811}
43812
43813impl DatagramSocketGetCookieResponder {
43814    /// Sends a response to the FIDL transaction.
43815    ///
43816    /// Sets the channel to shutdown if an error occurs.
43817    pub fn send(
43818        self,
43819        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43820    ) -> Result<(), fidl::Error> {
43821        let _result = self.send_raw(result);
43822        if _result.is_err() {
43823            self.control_handle.shutdown();
43824        }
43825        self.drop_without_shutdown();
43826        _result
43827    }
43828
43829    /// Similar to "send" but does not shutdown the channel if an error occurs.
43830    pub fn send_no_shutdown_on_err(
43831        self,
43832        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43833    ) -> Result<(), fidl::Error> {
43834        let _result = self.send_raw(result);
43835        self.drop_without_shutdown();
43836        _result
43837    }
43838
43839    fn send_raw(
43840        &self,
43841        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
43842    ) -> Result<(), fidl::Error> {
43843        self.control_handle.inner.send::<fidl::encoding::ResultType<
43844            BaseSocketGetCookieResponse,
43845            fidl_fuchsia_posix::Errno,
43846        >>(
43847            result.map(|value| (value,)),
43848            self.tx_id,
43849            0x2c2f47fd8f924e52,
43850            fidl::encoding::DynamicFlags::empty(),
43851        )
43852    }
43853}
43854
43855#[must_use = "FIDL methods require a response to be sent"]
43856#[derive(Debug)]
43857pub struct DatagramSocketBindResponder {
43858    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43859    tx_id: u32,
43860}
43861
43862/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43863/// if the responder is dropped without sending a response, so that the client
43864/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43865impl std::ops::Drop for DatagramSocketBindResponder {
43866    fn drop(&mut self) {
43867        self.control_handle.shutdown();
43868        // Safety: drops once, never accessed again
43869        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43870    }
43871}
43872
43873impl fidl::endpoints::Responder for DatagramSocketBindResponder {
43874    type ControlHandle = DatagramSocketControlHandle;
43875
43876    fn control_handle(&self) -> &DatagramSocketControlHandle {
43877        &self.control_handle
43878    }
43879
43880    fn drop_without_shutdown(mut self) {
43881        // Safety: drops once, never accessed again due to mem::forget
43882        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43883        // Prevent Drop from running (which would shut down the channel)
43884        std::mem::forget(self);
43885    }
43886}
43887
43888impl DatagramSocketBindResponder {
43889    /// Sends a response to the FIDL transaction.
43890    ///
43891    /// Sets the channel to shutdown if an error occurs.
43892    pub fn send(
43893        self,
43894        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43895    ) -> Result<(), fidl::Error> {
43896        let _result = self.send_raw(result);
43897        if _result.is_err() {
43898            self.control_handle.shutdown();
43899        }
43900        self.drop_without_shutdown();
43901        _result
43902    }
43903
43904    /// Similar to "send" but does not shutdown the channel if an error occurs.
43905    pub fn send_no_shutdown_on_err(
43906        self,
43907        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43908    ) -> Result<(), fidl::Error> {
43909        let _result = self.send_raw(result);
43910        self.drop_without_shutdown();
43911        _result
43912    }
43913
43914    fn send_raw(
43915        &self,
43916        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43917    ) -> Result<(), fidl::Error> {
43918        self.control_handle.inner.send::<fidl::encoding::ResultType<
43919            fidl::encoding::EmptyStruct,
43920            fidl_fuchsia_posix::Errno,
43921        >>(
43922            result,
43923            self.tx_id,
43924            0x4bc6400ae92125d,
43925            fidl::encoding::DynamicFlags::empty(),
43926        )
43927    }
43928}
43929
43930#[must_use = "FIDL methods require a response to be sent"]
43931#[derive(Debug)]
43932pub struct DatagramSocketConnectResponder {
43933    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
43934    tx_id: u32,
43935}
43936
43937/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
43938/// if the responder is dropped without sending a response, so that the client
43939/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
43940impl std::ops::Drop for DatagramSocketConnectResponder {
43941    fn drop(&mut self) {
43942        self.control_handle.shutdown();
43943        // Safety: drops once, never accessed again
43944        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43945    }
43946}
43947
43948impl fidl::endpoints::Responder for DatagramSocketConnectResponder {
43949    type ControlHandle = DatagramSocketControlHandle;
43950
43951    fn control_handle(&self) -> &DatagramSocketControlHandle {
43952        &self.control_handle
43953    }
43954
43955    fn drop_without_shutdown(mut self) {
43956        // Safety: drops once, never accessed again due to mem::forget
43957        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
43958        // Prevent Drop from running (which would shut down the channel)
43959        std::mem::forget(self);
43960    }
43961}
43962
43963impl DatagramSocketConnectResponder {
43964    /// Sends a response to the FIDL transaction.
43965    ///
43966    /// Sets the channel to shutdown if an error occurs.
43967    pub fn send(
43968        self,
43969        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43970    ) -> Result<(), fidl::Error> {
43971        let _result = self.send_raw(result);
43972        if _result.is_err() {
43973            self.control_handle.shutdown();
43974        }
43975        self.drop_without_shutdown();
43976        _result
43977    }
43978
43979    /// Similar to "send" but does not shutdown the channel if an error occurs.
43980    pub fn send_no_shutdown_on_err(
43981        self,
43982        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43983    ) -> Result<(), fidl::Error> {
43984        let _result = self.send_raw(result);
43985        self.drop_without_shutdown();
43986        _result
43987    }
43988
43989    fn send_raw(
43990        &self,
43991        mut result: Result<(), fidl_fuchsia_posix::Errno>,
43992    ) -> Result<(), fidl::Error> {
43993        self.control_handle.inner.send::<fidl::encoding::ResultType<
43994            fidl::encoding::EmptyStruct,
43995            fidl_fuchsia_posix::Errno,
43996        >>(
43997            result,
43998            self.tx_id,
43999            0x5f05f19bfdd38871,
44000            fidl::encoding::DynamicFlags::empty(),
44001        )
44002    }
44003}
44004
44005#[must_use = "FIDL methods require a response to be sent"]
44006#[derive(Debug)]
44007pub struct DatagramSocketDisconnectResponder {
44008    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44009    tx_id: u32,
44010}
44011
44012/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44013/// if the responder is dropped without sending a response, so that the client
44014/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44015impl std::ops::Drop for DatagramSocketDisconnectResponder {
44016    fn drop(&mut self) {
44017        self.control_handle.shutdown();
44018        // Safety: drops once, never accessed again
44019        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44020    }
44021}
44022
44023impl fidl::endpoints::Responder for DatagramSocketDisconnectResponder {
44024    type ControlHandle = DatagramSocketControlHandle;
44025
44026    fn control_handle(&self) -> &DatagramSocketControlHandle {
44027        &self.control_handle
44028    }
44029
44030    fn drop_without_shutdown(mut self) {
44031        // Safety: drops once, never accessed again due to mem::forget
44032        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44033        // Prevent Drop from running (which would shut down the channel)
44034        std::mem::forget(self);
44035    }
44036}
44037
44038impl DatagramSocketDisconnectResponder {
44039    /// Sends a response to the FIDL transaction.
44040    ///
44041    /// Sets the channel to shutdown if an error occurs.
44042    pub fn send(
44043        self,
44044        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44045    ) -> Result<(), fidl::Error> {
44046        let _result = self.send_raw(result);
44047        if _result.is_err() {
44048            self.control_handle.shutdown();
44049        }
44050        self.drop_without_shutdown();
44051        _result
44052    }
44053
44054    /// Similar to "send" but does not shutdown the channel if an error occurs.
44055    pub fn send_no_shutdown_on_err(
44056        self,
44057        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44058    ) -> Result<(), fidl::Error> {
44059        let _result = self.send_raw(result);
44060        self.drop_without_shutdown();
44061        _result
44062    }
44063
44064    fn send_raw(
44065        &self,
44066        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44067    ) -> Result<(), fidl::Error> {
44068        self.control_handle.inner.send::<fidl::encoding::ResultType<
44069            fidl::encoding::EmptyStruct,
44070            fidl_fuchsia_posix::Errno,
44071        >>(
44072            result,
44073            self.tx_id,
44074            0x74e63b91f7b29b2,
44075            fidl::encoding::DynamicFlags::empty(),
44076        )
44077    }
44078}
44079
44080#[must_use = "FIDL methods require a response to be sent"]
44081#[derive(Debug)]
44082pub struct DatagramSocketGetSockNameResponder {
44083    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44084    tx_id: u32,
44085}
44086
44087/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44088/// if the responder is dropped without sending a response, so that the client
44089/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44090impl std::ops::Drop for DatagramSocketGetSockNameResponder {
44091    fn drop(&mut self) {
44092        self.control_handle.shutdown();
44093        // Safety: drops once, never accessed again
44094        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44095    }
44096}
44097
44098impl fidl::endpoints::Responder for DatagramSocketGetSockNameResponder {
44099    type ControlHandle = DatagramSocketControlHandle;
44100
44101    fn control_handle(&self) -> &DatagramSocketControlHandle {
44102        &self.control_handle
44103    }
44104
44105    fn drop_without_shutdown(mut self) {
44106        // Safety: drops once, never accessed again due to mem::forget
44107        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44108        // Prevent Drop from running (which would shut down the channel)
44109        std::mem::forget(self);
44110    }
44111}
44112
44113impl DatagramSocketGetSockNameResponder {
44114    /// Sends a response to the FIDL transaction.
44115    ///
44116    /// Sets the channel to shutdown if an error occurs.
44117    pub fn send(
44118        self,
44119        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44120    ) -> Result<(), fidl::Error> {
44121        let _result = self.send_raw(result);
44122        if _result.is_err() {
44123            self.control_handle.shutdown();
44124        }
44125        self.drop_without_shutdown();
44126        _result
44127    }
44128
44129    /// Similar to "send" but does not shutdown the channel if an error occurs.
44130    pub fn send_no_shutdown_on_err(
44131        self,
44132        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44133    ) -> Result<(), fidl::Error> {
44134        let _result = self.send_raw(result);
44135        self.drop_without_shutdown();
44136        _result
44137    }
44138
44139    fn send_raw(
44140        &self,
44141        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44142    ) -> Result<(), fidl::Error> {
44143        self.control_handle.inner.send::<fidl::encoding::ResultType<
44144            BaseNetworkSocketGetSockNameResponse,
44145            fidl_fuchsia_posix::Errno,
44146        >>(
44147            result.map(|addr| (addr,)),
44148            self.tx_id,
44149            0x475f23f84a1a4f85,
44150            fidl::encoding::DynamicFlags::empty(),
44151        )
44152    }
44153}
44154
44155#[must_use = "FIDL methods require a response to be sent"]
44156#[derive(Debug)]
44157pub struct DatagramSocketGetPeerNameResponder {
44158    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44159    tx_id: u32,
44160}
44161
44162/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44163/// if the responder is dropped without sending a response, so that the client
44164/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44165impl std::ops::Drop for DatagramSocketGetPeerNameResponder {
44166    fn drop(&mut self) {
44167        self.control_handle.shutdown();
44168        // Safety: drops once, never accessed again
44169        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44170    }
44171}
44172
44173impl fidl::endpoints::Responder for DatagramSocketGetPeerNameResponder {
44174    type ControlHandle = DatagramSocketControlHandle;
44175
44176    fn control_handle(&self) -> &DatagramSocketControlHandle {
44177        &self.control_handle
44178    }
44179
44180    fn drop_without_shutdown(mut self) {
44181        // Safety: drops once, never accessed again due to mem::forget
44182        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44183        // Prevent Drop from running (which would shut down the channel)
44184        std::mem::forget(self);
44185    }
44186}
44187
44188impl DatagramSocketGetPeerNameResponder {
44189    /// Sends a response to the FIDL transaction.
44190    ///
44191    /// Sets the channel to shutdown if an error occurs.
44192    pub fn send(
44193        self,
44194        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44195    ) -> Result<(), fidl::Error> {
44196        let _result = self.send_raw(result);
44197        if _result.is_err() {
44198            self.control_handle.shutdown();
44199        }
44200        self.drop_without_shutdown();
44201        _result
44202    }
44203
44204    /// Similar to "send" but does not shutdown the channel if an error occurs.
44205    pub fn send_no_shutdown_on_err(
44206        self,
44207        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44208    ) -> Result<(), fidl::Error> {
44209        let _result = self.send_raw(result);
44210        self.drop_without_shutdown();
44211        _result
44212    }
44213
44214    fn send_raw(
44215        &self,
44216        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
44217    ) -> Result<(), fidl::Error> {
44218        self.control_handle.inner.send::<fidl::encoding::ResultType<
44219            BaseNetworkSocketGetPeerNameResponse,
44220            fidl_fuchsia_posix::Errno,
44221        >>(
44222            result.map(|addr| (addr,)),
44223            self.tx_id,
44224            0x1ffecf4bd5b6432e,
44225            fidl::encoding::DynamicFlags::empty(),
44226        )
44227    }
44228}
44229
44230#[must_use = "FIDL methods require a response to be sent"]
44231#[derive(Debug)]
44232pub struct DatagramSocketShutdownResponder {
44233    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44234    tx_id: u32,
44235}
44236
44237/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44238/// if the responder is dropped without sending a response, so that the client
44239/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44240impl std::ops::Drop for DatagramSocketShutdownResponder {
44241    fn drop(&mut self) {
44242        self.control_handle.shutdown();
44243        // Safety: drops once, never accessed again
44244        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44245    }
44246}
44247
44248impl fidl::endpoints::Responder for DatagramSocketShutdownResponder {
44249    type ControlHandle = DatagramSocketControlHandle;
44250
44251    fn control_handle(&self) -> &DatagramSocketControlHandle {
44252        &self.control_handle
44253    }
44254
44255    fn drop_without_shutdown(mut self) {
44256        // Safety: drops once, never accessed again due to mem::forget
44257        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44258        // Prevent Drop from running (which would shut down the channel)
44259        std::mem::forget(self);
44260    }
44261}
44262
44263impl DatagramSocketShutdownResponder {
44264    /// Sends a response to the FIDL transaction.
44265    ///
44266    /// Sets the channel to shutdown if an error occurs.
44267    pub fn send(
44268        self,
44269        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44270    ) -> Result<(), fidl::Error> {
44271        let _result = self.send_raw(result);
44272        if _result.is_err() {
44273            self.control_handle.shutdown();
44274        }
44275        self.drop_without_shutdown();
44276        _result
44277    }
44278
44279    /// Similar to "send" but does not shutdown the channel if an error occurs.
44280    pub fn send_no_shutdown_on_err(
44281        self,
44282        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44283    ) -> Result<(), fidl::Error> {
44284        let _result = self.send_raw(result);
44285        self.drop_without_shutdown();
44286        _result
44287    }
44288
44289    fn send_raw(
44290        &self,
44291        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44292    ) -> Result<(), fidl::Error> {
44293        self.control_handle.inner.send::<fidl::encoding::ResultType<
44294            fidl::encoding::EmptyStruct,
44295            fidl_fuchsia_posix::Errno,
44296        >>(
44297            result,
44298            self.tx_id,
44299            0x247f38b6db68c336,
44300            fidl::encoding::DynamicFlags::empty(),
44301        )
44302    }
44303}
44304
44305#[must_use = "FIDL methods require a response to be sent"]
44306#[derive(Debug)]
44307pub struct DatagramSocketSetIpTypeOfServiceResponder {
44308    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44309    tx_id: u32,
44310}
44311
44312/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44313/// if the responder is dropped without sending a response, so that the client
44314/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44315impl std::ops::Drop for DatagramSocketSetIpTypeOfServiceResponder {
44316    fn drop(&mut self) {
44317        self.control_handle.shutdown();
44318        // Safety: drops once, never accessed again
44319        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44320    }
44321}
44322
44323impl fidl::endpoints::Responder for DatagramSocketSetIpTypeOfServiceResponder {
44324    type ControlHandle = DatagramSocketControlHandle;
44325
44326    fn control_handle(&self) -> &DatagramSocketControlHandle {
44327        &self.control_handle
44328    }
44329
44330    fn drop_without_shutdown(mut self) {
44331        // Safety: drops once, never accessed again due to mem::forget
44332        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44333        // Prevent Drop from running (which would shut down the channel)
44334        std::mem::forget(self);
44335    }
44336}
44337
44338impl DatagramSocketSetIpTypeOfServiceResponder {
44339    /// Sends a response to the FIDL transaction.
44340    ///
44341    /// Sets the channel to shutdown if an error occurs.
44342    pub fn send(
44343        self,
44344        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44345    ) -> Result<(), fidl::Error> {
44346        let _result = self.send_raw(result);
44347        if _result.is_err() {
44348            self.control_handle.shutdown();
44349        }
44350        self.drop_without_shutdown();
44351        _result
44352    }
44353
44354    /// Similar to "send" but does not shutdown the channel if an error occurs.
44355    pub fn send_no_shutdown_on_err(
44356        self,
44357        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44358    ) -> Result<(), fidl::Error> {
44359        let _result = self.send_raw(result);
44360        self.drop_without_shutdown();
44361        _result
44362    }
44363
44364    fn send_raw(
44365        &self,
44366        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44367    ) -> Result<(), fidl::Error> {
44368        self.control_handle.inner.send::<fidl::encoding::ResultType<
44369            fidl::encoding::EmptyStruct,
44370            fidl_fuchsia_posix::Errno,
44371        >>(
44372            result,
44373            self.tx_id,
44374            0x995c600475b6d46,
44375            fidl::encoding::DynamicFlags::empty(),
44376        )
44377    }
44378}
44379
44380#[must_use = "FIDL methods require a response to be sent"]
44381#[derive(Debug)]
44382pub struct DatagramSocketGetIpTypeOfServiceResponder {
44383    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44384    tx_id: u32,
44385}
44386
44387/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44388/// if the responder is dropped without sending a response, so that the client
44389/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44390impl std::ops::Drop for DatagramSocketGetIpTypeOfServiceResponder {
44391    fn drop(&mut self) {
44392        self.control_handle.shutdown();
44393        // Safety: drops once, never accessed again
44394        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44395    }
44396}
44397
44398impl fidl::endpoints::Responder for DatagramSocketGetIpTypeOfServiceResponder {
44399    type ControlHandle = DatagramSocketControlHandle;
44400
44401    fn control_handle(&self) -> &DatagramSocketControlHandle {
44402        &self.control_handle
44403    }
44404
44405    fn drop_without_shutdown(mut self) {
44406        // Safety: drops once, never accessed again due to mem::forget
44407        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44408        // Prevent Drop from running (which would shut down the channel)
44409        std::mem::forget(self);
44410    }
44411}
44412
44413impl DatagramSocketGetIpTypeOfServiceResponder {
44414    /// Sends a response to the FIDL transaction.
44415    ///
44416    /// Sets the channel to shutdown if an error occurs.
44417    pub fn send(
44418        self,
44419        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44420    ) -> Result<(), fidl::Error> {
44421        let _result = self.send_raw(result);
44422        if _result.is_err() {
44423            self.control_handle.shutdown();
44424        }
44425        self.drop_without_shutdown();
44426        _result
44427    }
44428
44429    /// Similar to "send" but does not shutdown the channel if an error occurs.
44430    pub fn send_no_shutdown_on_err(
44431        self,
44432        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44433    ) -> Result<(), fidl::Error> {
44434        let _result = self.send_raw(result);
44435        self.drop_without_shutdown();
44436        _result
44437    }
44438
44439    fn send_raw(
44440        &self,
44441        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44442    ) -> Result<(), fidl::Error> {
44443        self.control_handle.inner.send::<fidl::encoding::ResultType<
44444            BaseNetworkSocketGetIpTypeOfServiceResponse,
44445            fidl_fuchsia_posix::Errno,
44446        >>(
44447            result.map(|value| (value,)),
44448            self.tx_id,
44449            0x3814a04259f75fcb,
44450            fidl::encoding::DynamicFlags::empty(),
44451        )
44452    }
44453}
44454
44455#[must_use = "FIDL methods require a response to be sent"]
44456#[derive(Debug)]
44457pub struct DatagramSocketSetIpTtlResponder {
44458    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44459    tx_id: u32,
44460}
44461
44462/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44463/// if the responder is dropped without sending a response, so that the client
44464/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44465impl std::ops::Drop for DatagramSocketSetIpTtlResponder {
44466    fn drop(&mut self) {
44467        self.control_handle.shutdown();
44468        // Safety: drops once, never accessed again
44469        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44470    }
44471}
44472
44473impl fidl::endpoints::Responder for DatagramSocketSetIpTtlResponder {
44474    type ControlHandle = DatagramSocketControlHandle;
44475
44476    fn control_handle(&self) -> &DatagramSocketControlHandle {
44477        &self.control_handle
44478    }
44479
44480    fn drop_without_shutdown(mut self) {
44481        // Safety: drops once, never accessed again due to mem::forget
44482        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44483        // Prevent Drop from running (which would shut down the channel)
44484        std::mem::forget(self);
44485    }
44486}
44487
44488impl DatagramSocketSetIpTtlResponder {
44489    /// Sends a response to the FIDL transaction.
44490    ///
44491    /// Sets the channel to shutdown if an error occurs.
44492    pub fn send(
44493        self,
44494        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44495    ) -> Result<(), fidl::Error> {
44496        let _result = self.send_raw(result);
44497        if _result.is_err() {
44498            self.control_handle.shutdown();
44499        }
44500        self.drop_without_shutdown();
44501        _result
44502    }
44503
44504    /// Similar to "send" but does not shutdown the channel if an error occurs.
44505    pub fn send_no_shutdown_on_err(
44506        self,
44507        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44508    ) -> Result<(), fidl::Error> {
44509        let _result = self.send_raw(result);
44510        self.drop_without_shutdown();
44511        _result
44512    }
44513
44514    fn send_raw(
44515        &self,
44516        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44517    ) -> Result<(), fidl::Error> {
44518        self.control_handle.inner.send::<fidl::encoding::ResultType<
44519            fidl::encoding::EmptyStruct,
44520            fidl_fuchsia_posix::Errno,
44521        >>(
44522            result,
44523            self.tx_id,
44524            0x29e2424b433ae1ef,
44525            fidl::encoding::DynamicFlags::empty(),
44526        )
44527    }
44528}
44529
44530#[must_use = "FIDL methods require a response to be sent"]
44531#[derive(Debug)]
44532pub struct DatagramSocketGetIpTtlResponder {
44533    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44534    tx_id: u32,
44535}
44536
44537/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44538/// if the responder is dropped without sending a response, so that the client
44539/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44540impl std::ops::Drop for DatagramSocketGetIpTtlResponder {
44541    fn drop(&mut self) {
44542        self.control_handle.shutdown();
44543        // Safety: drops once, never accessed again
44544        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44545    }
44546}
44547
44548impl fidl::endpoints::Responder for DatagramSocketGetIpTtlResponder {
44549    type ControlHandle = DatagramSocketControlHandle;
44550
44551    fn control_handle(&self) -> &DatagramSocketControlHandle {
44552        &self.control_handle
44553    }
44554
44555    fn drop_without_shutdown(mut self) {
44556        // Safety: drops once, never accessed again due to mem::forget
44557        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44558        // Prevent Drop from running (which would shut down the channel)
44559        std::mem::forget(self);
44560    }
44561}
44562
44563impl DatagramSocketGetIpTtlResponder {
44564    /// Sends a response to the FIDL transaction.
44565    ///
44566    /// Sets the channel to shutdown if an error occurs.
44567    pub fn send(
44568        self,
44569        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44570    ) -> Result<(), fidl::Error> {
44571        let _result = self.send_raw(result);
44572        if _result.is_err() {
44573            self.control_handle.shutdown();
44574        }
44575        self.drop_without_shutdown();
44576        _result
44577    }
44578
44579    /// Similar to "send" but does not shutdown the channel if an error occurs.
44580    pub fn send_no_shutdown_on_err(
44581        self,
44582        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44583    ) -> Result<(), fidl::Error> {
44584        let _result = self.send_raw(result);
44585        self.drop_without_shutdown();
44586        _result
44587    }
44588
44589    fn send_raw(
44590        &self,
44591        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
44592    ) -> Result<(), fidl::Error> {
44593        self.control_handle.inner.send::<fidl::encoding::ResultType<
44594            BaseNetworkSocketGetIpTtlResponse,
44595            fidl_fuchsia_posix::Errno,
44596        >>(
44597            result.map(|value| (value,)),
44598            self.tx_id,
44599            0x47e47fa1f24da471,
44600            fidl::encoding::DynamicFlags::empty(),
44601        )
44602    }
44603}
44604
44605#[must_use = "FIDL methods require a response to be sent"]
44606#[derive(Debug)]
44607pub struct DatagramSocketSetIpPacketInfoResponder {
44608    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44609    tx_id: u32,
44610}
44611
44612/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44613/// if the responder is dropped without sending a response, so that the client
44614/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44615impl std::ops::Drop for DatagramSocketSetIpPacketInfoResponder {
44616    fn drop(&mut self) {
44617        self.control_handle.shutdown();
44618        // Safety: drops once, never accessed again
44619        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44620    }
44621}
44622
44623impl fidl::endpoints::Responder for DatagramSocketSetIpPacketInfoResponder {
44624    type ControlHandle = DatagramSocketControlHandle;
44625
44626    fn control_handle(&self) -> &DatagramSocketControlHandle {
44627        &self.control_handle
44628    }
44629
44630    fn drop_without_shutdown(mut self) {
44631        // Safety: drops once, never accessed again due to mem::forget
44632        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44633        // Prevent Drop from running (which would shut down the channel)
44634        std::mem::forget(self);
44635    }
44636}
44637
44638impl DatagramSocketSetIpPacketInfoResponder {
44639    /// Sends a response to the FIDL transaction.
44640    ///
44641    /// Sets the channel to shutdown if an error occurs.
44642    pub fn send(
44643        self,
44644        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44645    ) -> Result<(), fidl::Error> {
44646        let _result = self.send_raw(result);
44647        if _result.is_err() {
44648            self.control_handle.shutdown();
44649        }
44650        self.drop_without_shutdown();
44651        _result
44652    }
44653
44654    /// Similar to "send" but does not shutdown the channel if an error occurs.
44655    pub fn send_no_shutdown_on_err(
44656        self,
44657        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44658    ) -> Result<(), fidl::Error> {
44659        let _result = self.send_raw(result);
44660        self.drop_without_shutdown();
44661        _result
44662    }
44663
44664    fn send_raw(
44665        &self,
44666        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44667    ) -> Result<(), fidl::Error> {
44668        self.control_handle.inner.send::<fidl::encoding::ResultType<
44669            fidl::encoding::EmptyStruct,
44670            fidl_fuchsia_posix::Errno,
44671        >>(
44672            result,
44673            self.tx_id,
44674            0x392d16bee20c0e16,
44675            fidl::encoding::DynamicFlags::empty(),
44676        )
44677    }
44678}
44679
44680#[must_use = "FIDL methods require a response to be sent"]
44681#[derive(Debug)]
44682pub struct DatagramSocketGetIpPacketInfoResponder {
44683    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44684    tx_id: u32,
44685}
44686
44687/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44688/// if the responder is dropped without sending a response, so that the client
44689/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44690impl std::ops::Drop for DatagramSocketGetIpPacketInfoResponder {
44691    fn drop(&mut self) {
44692        self.control_handle.shutdown();
44693        // Safety: drops once, never accessed again
44694        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44695    }
44696}
44697
44698impl fidl::endpoints::Responder for DatagramSocketGetIpPacketInfoResponder {
44699    type ControlHandle = DatagramSocketControlHandle;
44700
44701    fn control_handle(&self) -> &DatagramSocketControlHandle {
44702        &self.control_handle
44703    }
44704
44705    fn drop_without_shutdown(mut self) {
44706        // Safety: drops once, never accessed again due to mem::forget
44707        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44708        // Prevent Drop from running (which would shut down the channel)
44709        std::mem::forget(self);
44710    }
44711}
44712
44713impl DatagramSocketGetIpPacketInfoResponder {
44714    /// Sends a response to the FIDL transaction.
44715    ///
44716    /// Sets the channel to shutdown if an error occurs.
44717    pub fn send(
44718        self,
44719        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44720    ) -> Result<(), fidl::Error> {
44721        let _result = self.send_raw(result);
44722        if _result.is_err() {
44723            self.control_handle.shutdown();
44724        }
44725        self.drop_without_shutdown();
44726        _result
44727    }
44728
44729    /// Similar to "send" but does not shutdown the channel if an error occurs.
44730    pub fn send_no_shutdown_on_err(
44731        self,
44732        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44733    ) -> Result<(), fidl::Error> {
44734        let _result = self.send_raw(result);
44735        self.drop_without_shutdown();
44736        _result
44737    }
44738
44739    fn send_raw(
44740        &self,
44741        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44742    ) -> Result<(), fidl::Error> {
44743        self.control_handle.inner.send::<fidl::encoding::ResultType<
44744            BaseNetworkSocketGetIpPacketInfoResponse,
44745            fidl_fuchsia_posix::Errno,
44746        >>(
44747            result.map(|value| (value,)),
44748            self.tx_id,
44749            0x54b505f242280740,
44750            fidl::encoding::DynamicFlags::empty(),
44751        )
44752    }
44753}
44754
44755#[must_use = "FIDL methods require a response to be sent"]
44756#[derive(Debug)]
44757pub struct DatagramSocketSetIpReceiveTypeOfServiceResponder {
44758    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44759    tx_id: u32,
44760}
44761
44762/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44763/// if the responder is dropped without sending a response, so that the client
44764/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44765impl std::ops::Drop for DatagramSocketSetIpReceiveTypeOfServiceResponder {
44766    fn drop(&mut self) {
44767        self.control_handle.shutdown();
44768        // Safety: drops once, never accessed again
44769        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44770    }
44771}
44772
44773impl fidl::endpoints::Responder for DatagramSocketSetIpReceiveTypeOfServiceResponder {
44774    type ControlHandle = DatagramSocketControlHandle;
44775
44776    fn control_handle(&self) -> &DatagramSocketControlHandle {
44777        &self.control_handle
44778    }
44779
44780    fn drop_without_shutdown(mut self) {
44781        // Safety: drops once, never accessed again due to mem::forget
44782        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44783        // Prevent Drop from running (which would shut down the channel)
44784        std::mem::forget(self);
44785    }
44786}
44787
44788impl DatagramSocketSetIpReceiveTypeOfServiceResponder {
44789    /// Sends a response to the FIDL transaction.
44790    ///
44791    /// Sets the channel to shutdown if an error occurs.
44792    pub fn send(
44793        self,
44794        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44795    ) -> Result<(), fidl::Error> {
44796        let _result = self.send_raw(result);
44797        if _result.is_err() {
44798            self.control_handle.shutdown();
44799        }
44800        self.drop_without_shutdown();
44801        _result
44802    }
44803
44804    /// Similar to "send" but does not shutdown the channel if an error occurs.
44805    pub fn send_no_shutdown_on_err(
44806        self,
44807        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44808    ) -> Result<(), fidl::Error> {
44809        let _result = self.send_raw(result);
44810        self.drop_without_shutdown();
44811        _result
44812    }
44813
44814    fn send_raw(
44815        &self,
44816        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44817    ) -> Result<(), fidl::Error> {
44818        self.control_handle.inner.send::<fidl::encoding::ResultType<
44819            fidl::encoding::EmptyStruct,
44820            fidl_fuchsia_posix::Errno,
44821        >>(
44822            result,
44823            self.tx_id,
44824            0x6c4f6714995f84ef,
44825            fidl::encoding::DynamicFlags::empty(),
44826        )
44827    }
44828}
44829
44830#[must_use = "FIDL methods require a response to be sent"]
44831#[derive(Debug)]
44832pub struct DatagramSocketGetIpReceiveTypeOfServiceResponder {
44833    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44834    tx_id: u32,
44835}
44836
44837/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44838/// if the responder is dropped without sending a response, so that the client
44839/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44840impl std::ops::Drop for DatagramSocketGetIpReceiveTypeOfServiceResponder {
44841    fn drop(&mut self) {
44842        self.control_handle.shutdown();
44843        // Safety: drops once, never accessed again
44844        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44845    }
44846}
44847
44848impl fidl::endpoints::Responder for DatagramSocketGetIpReceiveTypeOfServiceResponder {
44849    type ControlHandle = DatagramSocketControlHandle;
44850
44851    fn control_handle(&self) -> &DatagramSocketControlHandle {
44852        &self.control_handle
44853    }
44854
44855    fn drop_without_shutdown(mut self) {
44856        // Safety: drops once, never accessed again due to mem::forget
44857        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44858        // Prevent Drop from running (which would shut down the channel)
44859        std::mem::forget(self);
44860    }
44861}
44862
44863impl DatagramSocketGetIpReceiveTypeOfServiceResponder {
44864    /// Sends a response to the FIDL transaction.
44865    ///
44866    /// Sets the channel to shutdown if an error occurs.
44867    pub fn send(
44868        self,
44869        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44870    ) -> Result<(), fidl::Error> {
44871        let _result = self.send_raw(result);
44872        if _result.is_err() {
44873            self.control_handle.shutdown();
44874        }
44875        self.drop_without_shutdown();
44876        _result
44877    }
44878
44879    /// Similar to "send" but does not shutdown the channel if an error occurs.
44880    pub fn send_no_shutdown_on_err(
44881        self,
44882        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44883    ) -> Result<(), fidl::Error> {
44884        let _result = self.send_raw(result);
44885        self.drop_without_shutdown();
44886        _result
44887    }
44888
44889    fn send_raw(
44890        &self,
44891        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
44892    ) -> Result<(), fidl::Error> {
44893        self.control_handle.inner.send::<fidl::encoding::ResultType<
44894            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
44895            fidl_fuchsia_posix::Errno,
44896        >>(
44897            result.map(|value| (value,)),
44898            self.tx_id,
44899            0x4158ba7dc2795960,
44900            fidl::encoding::DynamicFlags::empty(),
44901        )
44902    }
44903}
44904
44905#[must_use = "FIDL methods require a response to be sent"]
44906#[derive(Debug)]
44907pub struct DatagramSocketSetIpReceiveTtlResponder {
44908    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44909    tx_id: u32,
44910}
44911
44912/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44913/// if the responder is dropped without sending a response, so that the client
44914/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44915impl std::ops::Drop for DatagramSocketSetIpReceiveTtlResponder {
44916    fn drop(&mut self) {
44917        self.control_handle.shutdown();
44918        // Safety: drops once, never accessed again
44919        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44920    }
44921}
44922
44923impl fidl::endpoints::Responder for DatagramSocketSetIpReceiveTtlResponder {
44924    type ControlHandle = DatagramSocketControlHandle;
44925
44926    fn control_handle(&self) -> &DatagramSocketControlHandle {
44927        &self.control_handle
44928    }
44929
44930    fn drop_without_shutdown(mut self) {
44931        // Safety: drops once, never accessed again due to mem::forget
44932        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44933        // Prevent Drop from running (which would shut down the channel)
44934        std::mem::forget(self);
44935    }
44936}
44937
44938impl DatagramSocketSetIpReceiveTtlResponder {
44939    /// Sends a response to the FIDL transaction.
44940    ///
44941    /// Sets the channel to shutdown if an error occurs.
44942    pub fn send(
44943        self,
44944        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44945    ) -> Result<(), fidl::Error> {
44946        let _result = self.send_raw(result);
44947        if _result.is_err() {
44948            self.control_handle.shutdown();
44949        }
44950        self.drop_without_shutdown();
44951        _result
44952    }
44953
44954    /// Similar to "send" but does not shutdown the channel if an error occurs.
44955    pub fn send_no_shutdown_on_err(
44956        self,
44957        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44958    ) -> Result<(), fidl::Error> {
44959        let _result = self.send_raw(result);
44960        self.drop_without_shutdown();
44961        _result
44962    }
44963
44964    fn send_raw(
44965        &self,
44966        mut result: Result<(), fidl_fuchsia_posix::Errno>,
44967    ) -> Result<(), fidl::Error> {
44968        self.control_handle.inner.send::<fidl::encoding::ResultType<
44969            fidl::encoding::EmptyStruct,
44970            fidl_fuchsia_posix::Errno,
44971        >>(
44972            result,
44973            self.tx_id,
44974            0x46f15be0ce0ab82b,
44975            fidl::encoding::DynamicFlags::empty(),
44976        )
44977    }
44978}
44979
44980#[must_use = "FIDL methods require a response to be sent"]
44981#[derive(Debug)]
44982pub struct DatagramSocketGetIpReceiveTtlResponder {
44983    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
44984    tx_id: u32,
44985}
44986
44987/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
44988/// if the responder is dropped without sending a response, so that the client
44989/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
44990impl std::ops::Drop for DatagramSocketGetIpReceiveTtlResponder {
44991    fn drop(&mut self) {
44992        self.control_handle.shutdown();
44993        // Safety: drops once, never accessed again
44994        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
44995    }
44996}
44997
44998impl fidl::endpoints::Responder for DatagramSocketGetIpReceiveTtlResponder {
44999    type ControlHandle = DatagramSocketControlHandle;
45000
45001    fn control_handle(&self) -> &DatagramSocketControlHandle {
45002        &self.control_handle
45003    }
45004
45005    fn drop_without_shutdown(mut self) {
45006        // Safety: drops once, never accessed again due to mem::forget
45007        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45008        // Prevent Drop from running (which would shut down the channel)
45009        std::mem::forget(self);
45010    }
45011}
45012
45013impl DatagramSocketGetIpReceiveTtlResponder {
45014    /// Sends a response to the FIDL transaction.
45015    ///
45016    /// Sets the channel to shutdown if an error occurs.
45017    pub fn send(
45018        self,
45019        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45020    ) -> Result<(), fidl::Error> {
45021        let _result = self.send_raw(result);
45022        if _result.is_err() {
45023            self.control_handle.shutdown();
45024        }
45025        self.drop_without_shutdown();
45026        _result
45027    }
45028
45029    /// Similar to "send" but does not shutdown the channel if an error occurs.
45030    pub fn send_no_shutdown_on_err(
45031        self,
45032        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45033    ) -> Result<(), fidl::Error> {
45034        let _result = self.send_raw(result);
45035        self.drop_without_shutdown();
45036        _result
45037    }
45038
45039    fn send_raw(
45040        &self,
45041        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45042    ) -> Result<(), fidl::Error> {
45043        self.control_handle.inner.send::<fidl::encoding::ResultType<
45044            BaseNetworkSocketGetIpReceiveTtlResponse,
45045            fidl_fuchsia_posix::Errno,
45046        >>(
45047            result.map(|value| (value,)),
45048            self.tx_id,
45049            0x678ddd5a5dfa2eb5,
45050            fidl::encoding::DynamicFlags::empty(),
45051        )
45052    }
45053}
45054
45055#[must_use = "FIDL methods require a response to be sent"]
45056#[derive(Debug)]
45057pub struct DatagramSocketSetIpMulticastInterfaceResponder {
45058    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45059    tx_id: u32,
45060}
45061
45062/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45063/// if the responder is dropped without sending a response, so that the client
45064/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45065impl std::ops::Drop for DatagramSocketSetIpMulticastInterfaceResponder {
45066    fn drop(&mut self) {
45067        self.control_handle.shutdown();
45068        // Safety: drops once, never accessed again
45069        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45070    }
45071}
45072
45073impl fidl::endpoints::Responder for DatagramSocketSetIpMulticastInterfaceResponder {
45074    type ControlHandle = DatagramSocketControlHandle;
45075
45076    fn control_handle(&self) -> &DatagramSocketControlHandle {
45077        &self.control_handle
45078    }
45079
45080    fn drop_without_shutdown(mut self) {
45081        // Safety: drops once, never accessed again due to mem::forget
45082        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45083        // Prevent Drop from running (which would shut down the channel)
45084        std::mem::forget(self);
45085    }
45086}
45087
45088impl DatagramSocketSetIpMulticastInterfaceResponder {
45089    /// Sends a response to the FIDL transaction.
45090    ///
45091    /// Sets the channel to shutdown if an error occurs.
45092    pub fn send(
45093        self,
45094        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45095    ) -> Result<(), fidl::Error> {
45096        let _result = self.send_raw(result);
45097        if _result.is_err() {
45098            self.control_handle.shutdown();
45099        }
45100        self.drop_without_shutdown();
45101        _result
45102    }
45103
45104    /// Similar to "send" but does not shutdown the channel if an error occurs.
45105    pub fn send_no_shutdown_on_err(
45106        self,
45107        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45108    ) -> Result<(), fidl::Error> {
45109        let _result = self.send_raw(result);
45110        self.drop_without_shutdown();
45111        _result
45112    }
45113
45114    fn send_raw(
45115        &self,
45116        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45117    ) -> Result<(), fidl::Error> {
45118        self.control_handle.inner.send::<fidl::encoding::ResultType<
45119            fidl::encoding::EmptyStruct,
45120            fidl_fuchsia_posix::Errno,
45121        >>(
45122            result,
45123            self.tx_id,
45124            0x752fbfa9b12befe,
45125            fidl::encoding::DynamicFlags::empty(),
45126        )
45127    }
45128}
45129
45130#[must_use = "FIDL methods require a response to be sent"]
45131#[derive(Debug)]
45132pub struct DatagramSocketGetIpMulticastInterfaceResponder {
45133    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45134    tx_id: u32,
45135}
45136
45137/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45138/// if the responder is dropped without sending a response, so that the client
45139/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45140impl std::ops::Drop for DatagramSocketGetIpMulticastInterfaceResponder {
45141    fn drop(&mut self) {
45142        self.control_handle.shutdown();
45143        // Safety: drops once, never accessed again
45144        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45145    }
45146}
45147
45148impl fidl::endpoints::Responder for DatagramSocketGetIpMulticastInterfaceResponder {
45149    type ControlHandle = DatagramSocketControlHandle;
45150
45151    fn control_handle(&self) -> &DatagramSocketControlHandle {
45152        &self.control_handle
45153    }
45154
45155    fn drop_without_shutdown(mut self) {
45156        // Safety: drops once, never accessed again due to mem::forget
45157        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45158        // Prevent Drop from running (which would shut down the channel)
45159        std::mem::forget(self);
45160    }
45161}
45162
45163impl DatagramSocketGetIpMulticastInterfaceResponder {
45164    /// Sends a response to the FIDL transaction.
45165    ///
45166    /// Sets the channel to shutdown if an error occurs.
45167    pub fn send(
45168        self,
45169        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
45170    ) -> Result<(), fidl::Error> {
45171        let _result = self.send_raw(result);
45172        if _result.is_err() {
45173            self.control_handle.shutdown();
45174        }
45175        self.drop_without_shutdown();
45176        _result
45177    }
45178
45179    /// Similar to "send" but does not shutdown the channel if an error occurs.
45180    pub fn send_no_shutdown_on_err(
45181        self,
45182        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
45183    ) -> Result<(), fidl::Error> {
45184        let _result = self.send_raw(result);
45185        self.drop_without_shutdown();
45186        _result
45187    }
45188
45189    fn send_raw(
45190        &self,
45191        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
45192    ) -> Result<(), fidl::Error> {
45193        self.control_handle.inner.send::<fidl::encoding::ResultType<
45194            BaseNetworkSocketGetIpMulticastInterfaceResponse,
45195            fidl_fuchsia_posix::Errno,
45196        >>(
45197            result.map(|value| (value,)),
45198            self.tx_id,
45199            0x320bd14c4df046c4,
45200            fidl::encoding::DynamicFlags::empty(),
45201        )
45202    }
45203}
45204
45205#[must_use = "FIDL methods require a response to be sent"]
45206#[derive(Debug)]
45207pub struct DatagramSocketSetIpMulticastTtlResponder {
45208    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45209    tx_id: u32,
45210}
45211
45212/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45213/// if the responder is dropped without sending a response, so that the client
45214/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45215impl std::ops::Drop for DatagramSocketSetIpMulticastTtlResponder {
45216    fn drop(&mut self) {
45217        self.control_handle.shutdown();
45218        // Safety: drops once, never accessed again
45219        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45220    }
45221}
45222
45223impl fidl::endpoints::Responder for DatagramSocketSetIpMulticastTtlResponder {
45224    type ControlHandle = DatagramSocketControlHandle;
45225
45226    fn control_handle(&self) -> &DatagramSocketControlHandle {
45227        &self.control_handle
45228    }
45229
45230    fn drop_without_shutdown(mut self) {
45231        // Safety: drops once, never accessed again due to mem::forget
45232        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45233        // Prevent Drop from running (which would shut down the channel)
45234        std::mem::forget(self);
45235    }
45236}
45237
45238impl DatagramSocketSetIpMulticastTtlResponder {
45239    /// Sends a response to the FIDL transaction.
45240    ///
45241    /// Sets the channel to shutdown if an error occurs.
45242    pub fn send(
45243        self,
45244        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45245    ) -> Result<(), fidl::Error> {
45246        let _result = self.send_raw(result);
45247        if _result.is_err() {
45248            self.control_handle.shutdown();
45249        }
45250        self.drop_without_shutdown();
45251        _result
45252    }
45253
45254    /// Similar to "send" but does not shutdown the channel if an error occurs.
45255    pub fn send_no_shutdown_on_err(
45256        self,
45257        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45258    ) -> Result<(), fidl::Error> {
45259        let _result = self.send_raw(result);
45260        self.drop_without_shutdown();
45261        _result
45262    }
45263
45264    fn send_raw(
45265        &self,
45266        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45267    ) -> Result<(), fidl::Error> {
45268        self.control_handle.inner.send::<fidl::encoding::ResultType<
45269            fidl::encoding::EmptyStruct,
45270            fidl_fuchsia_posix::Errno,
45271        >>(
45272            result,
45273            self.tx_id,
45274            0x63134d53772916a1,
45275            fidl::encoding::DynamicFlags::empty(),
45276        )
45277    }
45278}
45279
45280#[must_use = "FIDL methods require a response to be sent"]
45281#[derive(Debug)]
45282pub struct DatagramSocketGetIpMulticastTtlResponder {
45283    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45284    tx_id: u32,
45285}
45286
45287/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45288/// if the responder is dropped without sending a response, so that the client
45289/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45290impl std::ops::Drop for DatagramSocketGetIpMulticastTtlResponder {
45291    fn drop(&mut self) {
45292        self.control_handle.shutdown();
45293        // Safety: drops once, never accessed again
45294        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45295    }
45296}
45297
45298impl fidl::endpoints::Responder for DatagramSocketGetIpMulticastTtlResponder {
45299    type ControlHandle = DatagramSocketControlHandle;
45300
45301    fn control_handle(&self) -> &DatagramSocketControlHandle {
45302        &self.control_handle
45303    }
45304
45305    fn drop_without_shutdown(mut self) {
45306        // Safety: drops once, never accessed again due to mem::forget
45307        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45308        // Prevent Drop from running (which would shut down the channel)
45309        std::mem::forget(self);
45310    }
45311}
45312
45313impl DatagramSocketGetIpMulticastTtlResponder {
45314    /// Sends a response to the FIDL transaction.
45315    ///
45316    /// Sets the channel to shutdown if an error occurs.
45317    pub fn send(
45318        self,
45319        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45320    ) -> Result<(), fidl::Error> {
45321        let _result = self.send_raw(result);
45322        if _result.is_err() {
45323            self.control_handle.shutdown();
45324        }
45325        self.drop_without_shutdown();
45326        _result
45327    }
45328
45329    /// Similar to "send" but does not shutdown the channel if an error occurs.
45330    pub fn send_no_shutdown_on_err(
45331        self,
45332        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45333    ) -> Result<(), fidl::Error> {
45334        let _result = self.send_raw(result);
45335        self.drop_without_shutdown();
45336        _result
45337    }
45338
45339    fn send_raw(
45340        &self,
45341        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
45342    ) -> Result<(), fidl::Error> {
45343        self.control_handle.inner.send::<fidl::encoding::ResultType<
45344            BaseNetworkSocketGetIpMulticastTtlResponse,
45345            fidl_fuchsia_posix::Errno,
45346        >>(
45347            result.map(|value| (value,)),
45348            self.tx_id,
45349            0x4665cd378f39e1a,
45350            fidl::encoding::DynamicFlags::empty(),
45351        )
45352    }
45353}
45354
45355#[must_use = "FIDL methods require a response to be sent"]
45356#[derive(Debug)]
45357pub struct DatagramSocketSetIpMulticastLoopbackResponder {
45358    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45359    tx_id: u32,
45360}
45361
45362/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45363/// if the responder is dropped without sending a response, so that the client
45364/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45365impl std::ops::Drop for DatagramSocketSetIpMulticastLoopbackResponder {
45366    fn drop(&mut self) {
45367        self.control_handle.shutdown();
45368        // Safety: drops once, never accessed again
45369        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45370    }
45371}
45372
45373impl fidl::endpoints::Responder for DatagramSocketSetIpMulticastLoopbackResponder {
45374    type ControlHandle = DatagramSocketControlHandle;
45375
45376    fn control_handle(&self) -> &DatagramSocketControlHandle {
45377        &self.control_handle
45378    }
45379
45380    fn drop_without_shutdown(mut self) {
45381        // Safety: drops once, never accessed again due to mem::forget
45382        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45383        // Prevent Drop from running (which would shut down the channel)
45384        std::mem::forget(self);
45385    }
45386}
45387
45388impl DatagramSocketSetIpMulticastLoopbackResponder {
45389    /// Sends a response to the FIDL transaction.
45390    ///
45391    /// Sets the channel to shutdown if an error occurs.
45392    pub fn send(
45393        self,
45394        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45395    ) -> Result<(), fidl::Error> {
45396        let _result = self.send_raw(result);
45397        if _result.is_err() {
45398            self.control_handle.shutdown();
45399        }
45400        self.drop_without_shutdown();
45401        _result
45402    }
45403
45404    /// Similar to "send" but does not shutdown the channel if an error occurs.
45405    pub fn send_no_shutdown_on_err(
45406        self,
45407        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45408    ) -> Result<(), fidl::Error> {
45409        let _result = self.send_raw(result);
45410        self.drop_without_shutdown();
45411        _result
45412    }
45413
45414    fn send_raw(
45415        &self,
45416        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45417    ) -> Result<(), fidl::Error> {
45418        self.control_handle.inner.send::<fidl::encoding::ResultType<
45419            fidl::encoding::EmptyStruct,
45420            fidl_fuchsia_posix::Errno,
45421        >>(
45422            result,
45423            self.tx_id,
45424            0x20c55c11f00943ea,
45425            fidl::encoding::DynamicFlags::empty(),
45426        )
45427    }
45428}
45429
45430#[must_use = "FIDL methods require a response to be sent"]
45431#[derive(Debug)]
45432pub struct DatagramSocketGetIpMulticastLoopbackResponder {
45433    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45434    tx_id: u32,
45435}
45436
45437/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45438/// if the responder is dropped without sending a response, so that the client
45439/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45440impl std::ops::Drop for DatagramSocketGetIpMulticastLoopbackResponder {
45441    fn drop(&mut self) {
45442        self.control_handle.shutdown();
45443        // Safety: drops once, never accessed again
45444        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45445    }
45446}
45447
45448impl fidl::endpoints::Responder for DatagramSocketGetIpMulticastLoopbackResponder {
45449    type ControlHandle = DatagramSocketControlHandle;
45450
45451    fn control_handle(&self) -> &DatagramSocketControlHandle {
45452        &self.control_handle
45453    }
45454
45455    fn drop_without_shutdown(mut self) {
45456        // Safety: drops once, never accessed again due to mem::forget
45457        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45458        // Prevent Drop from running (which would shut down the channel)
45459        std::mem::forget(self);
45460    }
45461}
45462
45463impl DatagramSocketGetIpMulticastLoopbackResponder {
45464    /// Sends a response to the FIDL transaction.
45465    ///
45466    /// Sets the channel to shutdown if an error occurs.
45467    pub fn send(
45468        self,
45469        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45470    ) -> Result<(), fidl::Error> {
45471        let _result = self.send_raw(result);
45472        if _result.is_err() {
45473            self.control_handle.shutdown();
45474        }
45475        self.drop_without_shutdown();
45476        _result
45477    }
45478
45479    /// Similar to "send" but does not shutdown the channel if an error occurs.
45480    pub fn send_no_shutdown_on_err(
45481        self,
45482        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45483    ) -> Result<(), fidl::Error> {
45484        let _result = self.send_raw(result);
45485        self.drop_without_shutdown();
45486        _result
45487    }
45488
45489    fn send_raw(
45490        &self,
45491        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45492    ) -> Result<(), fidl::Error> {
45493        self.control_handle.inner.send::<fidl::encoding::ResultType<
45494            BaseNetworkSocketGetIpMulticastLoopbackResponse,
45495            fidl_fuchsia_posix::Errno,
45496        >>(
45497            result.map(|value| (value,)),
45498            self.tx_id,
45499            0x3b6b26ff558298f2,
45500            fidl::encoding::DynamicFlags::empty(),
45501        )
45502    }
45503}
45504
45505#[must_use = "FIDL methods require a response to be sent"]
45506#[derive(Debug)]
45507pub struct DatagramSocketAddIpMembershipResponder {
45508    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45509    tx_id: u32,
45510}
45511
45512/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45513/// if the responder is dropped without sending a response, so that the client
45514/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45515impl std::ops::Drop for DatagramSocketAddIpMembershipResponder {
45516    fn drop(&mut self) {
45517        self.control_handle.shutdown();
45518        // Safety: drops once, never accessed again
45519        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45520    }
45521}
45522
45523impl fidl::endpoints::Responder for DatagramSocketAddIpMembershipResponder {
45524    type ControlHandle = DatagramSocketControlHandle;
45525
45526    fn control_handle(&self) -> &DatagramSocketControlHandle {
45527        &self.control_handle
45528    }
45529
45530    fn drop_without_shutdown(mut self) {
45531        // Safety: drops once, never accessed again due to mem::forget
45532        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45533        // Prevent Drop from running (which would shut down the channel)
45534        std::mem::forget(self);
45535    }
45536}
45537
45538impl DatagramSocketAddIpMembershipResponder {
45539    /// Sends a response to the FIDL transaction.
45540    ///
45541    /// Sets the channel to shutdown if an error occurs.
45542    pub fn send(
45543        self,
45544        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45545    ) -> Result<(), fidl::Error> {
45546        let _result = self.send_raw(result);
45547        if _result.is_err() {
45548            self.control_handle.shutdown();
45549        }
45550        self.drop_without_shutdown();
45551        _result
45552    }
45553
45554    /// Similar to "send" but does not shutdown the channel if an error occurs.
45555    pub fn send_no_shutdown_on_err(
45556        self,
45557        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45558    ) -> Result<(), fidl::Error> {
45559        let _result = self.send_raw(result);
45560        self.drop_without_shutdown();
45561        _result
45562    }
45563
45564    fn send_raw(
45565        &self,
45566        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45567    ) -> Result<(), fidl::Error> {
45568        self.control_handle.inner.send::<fidl::encoding::ResultType<
45569            fidl::encoding::EmptyStruct,
45570            fidl_fuchsia_posix::Errno,
45571        >>(
45572            result,
45573            self.tx_id,
45574            0x76bc7df115a3b4d0,
45575            fidl::encoding::DynamicFlags::empty(),
45576        )
45577    }
45578}
45579
45580#[must_use = "FIDL methods require a response to be sent"]
45581#[derive(Debug)]
45582pub struct DatagramSocketDropIpMembershipResponder {
45583    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45584    tx_id: u32,
45585}
45586
45587/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45588/// if the responder is dropped without sending a response, so that the client
45589/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45590impl std::ops::Drop for DatagramSocketDropIpMembershipResponder {
45591    fn drop(&mut self) {
45592        self.control_handle.shutdown();
45593        // Safety: drops once, never accessed again
45594        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45595    }
45596}
45597
45598impl fidl::endpoints::Responder for DatagramSocketDropIpMembershipResponder {
45599    type ControlHandle = DatagramSocketControlHandle;
45600
45601    fn control_handle(&self) -> &DatagramSocketControlHandle {
45602        &self.control_handle
45603    }
45604
45605    fn drop_without_shutdown(mut self) {
45606        // Safety: drops once, never accessed again due to mem::forget
45607        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45608        // Prevent Drop from running (which would shut down the channel)
45609        std::mem::forget(self);
45610    }
45611}
45612
45613impl DatagramSocketDropIpMembershipResponder {
45614    /// Sends a response to the FIDL transaction.
45615    ///
45616    /// Sets the channel to shutdown if an error occurs.
45617    pub fn send(
45618        self,
45619        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45620    ) -> Result<(), fidl::Error> {
45621        let _result = self.send_raw(result);
45622        if _result.is_err() {
45623            self.control_handle.shutdown();
45624        }
45625        self.drop_without_shutdown();
45626        _result
45627    }
45628
45629    /// Similar to "send" but does not shutdown the channel if an error occurs.
45630    pub fn send_no_shutdown_on_err(
45631        self,
45632        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45633    ) -> Result<(), fidl::Error> {
45634        let _result = self.send_raw(result);
45635        self.drop_without_shutdown();
45636        _result
45637    }
45638
45639    fn send_raw(
45640        &self,
45641        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45642    ) -> Result<(), fidl::Error> {
45643        self.control_handle.inner.send::<fidl::encoding::ResultType<
45644            fidl::encoding::EmptyStruct,
45645            fidl_fuchsia_posix::Errno,
45646        >>(
45647            result,
45648            self.tx_id,
45649            0x2888f3099188d03,
45650            fidl::encoding::DynamicFlags::empty(),
45651        )
45652    }
45653}
45654
45655#[must_use = "FIDL methods require a response to be sent"]
45656#[derive(Debug)]
45657pub struct DatagramSocketSetIpTransparentResponder {
45658    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45659    tx_id: u32,
45660}
45661
45662/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45663/// if the responder is dropped without sending a response, so that the client
45664/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45665impl std::ops::Drop for DatagramSocketSetIpTransparentResponder {
45666    fn drop(&mut self) {
45667        self.control_handle.shutdown();
45668        // Safety: drops once, never accessed again
45669        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45670    }
45671}
45672
45673impl fidl::endpoints::Responder for DatagramSocketSetIpTransparentResponder {
45674    type ControlHandle = DatagramSocketControlHandle;
45675
45676    fn control_handle(&self) -> &DatagramSocketControlHandle {
45677        &self.control_handle
45678    }
45679
45680    fn drop_without_shutdown(mut self) {
45681        // Safety: drops once, never accessed again due to mem::forget
45682        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45683        // Prevent Drop from running (which would shut down the channel)
45684        std::mem::forget(self);
45685    }
45686}
45687
45688impl DatagramSocketSetIpTransparentResponder {
45689    /// Sends a response to the FIDL transaction.
45690    ///
45691    /// Sets the channel to shutdown if an error occurs.
45692    pub fn send(
45693        self,
45694        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45695    ) -> Result<(), fidl::Error> {
45696        let _result = self.send_raw(result);
45697        if _result.is_err() {
45698            self.control_handle.shutdown();
45699        }
45700        self.drop_without_shutdown();
45701        _result
45702    }
45703
45704    /// Similar to "send" but does not shutdown the channel if an error occurs.
45705    pub fn send_no_shutdown_on_err(
45706        self,
45707        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45708    ) -> Result<(), fidl::Error> {
45709        let _result = self.send_raw(result);
45710        self.drop_without_shutdown();
45711        _result
45712    }
45713
45714    fn send_raw(
45715        &self,
45716        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45717    ) -> Result<(), fidl::Error> {
45718        self.control_handle.inner.send::<fidl::encoding::ResultType<
45719            fidl::encoding::EmptyStruct,
45720            fidl_fuchsia_posix::Errno,
45721        >>(
45722            result,
45723            self.tx_id,
45724            0x1ae532b0c066e3a0,
45725            fidl::encoding::DynamicFlags::empty(),
45726        )
45727    }
45728}
45729
45730#[must_use = "FIDL methods require a response to be sent"]
45731#[derive(Debug)]
45732pub struct DatagramSocketGetIpTransparentResponder {
45733    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45734    tx_id: u32,
45735}
45736
45737/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45738/// if the responder is dropped without sending a response, so that the client
45739/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45740impl std::ops::Drop for DatagramSocketGetIpTransparentResponder {
45741    fn drop(&mut self) {
45742        self.control_handle.shutdown();
45743        // Safety: drops once, never accessed again
45744        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45745    }
45746}
45747
45748impl fidl::endpoints::Responder for DatagramSocketGetIpTransparentResponder {
45749    type ControlHandle = DatagramSocketControlHandle;
45750
45751    fn control_handle(&self) -> &DatagramSocketControlHandle {
45752        &self.control_handle
45753    }
45754
45755    fn drop_without_shutdown(mut self) {
45756        // Safety: drops once, never accessed again due to mem::forget
45757        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45758        // Prevent Drop from running (which would shut down the channel)
45759        std::mem::forget(self);
45760    }
45761}
45762
45763impl DatagramSocketGetIpTransparentResponder {
45764    /// Sends a response to the FIDL transaction.
45765    ///
45766    /// Sets the channel to shutdown if an error occurs.
45767    pub fn send(
45768        self,
45769        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45770    ) -> Result<(), fidl::Error> {
45771        let _result = self.send_raw(result);
45772        if _result.is_err() {
45773            self.control_handle.shutdown();
45774        }
45775        self.drop_without_shutdown();
45776        _result
45777    }
45778
45779    /// Similar to "send" but does not shutdown the channel if an error occurs.
45780    pub fn send_no_shutdown_on_err(
45781        self,
45782        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45783    ) -> Result<(), fidl::Error> {
45784        let _result = self.send_raw(result);
45785        self.drop_without_shutdown();
45786        _result
45787    }
45788
45789    fn send_raw(
45790        &self,
45791        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45792    ) -> Result<(), fidl::Error> {
45793        self.control_handle.inner.send::<fidl::encoding::ResultType<
45794            BaseNetworkSocketGetIpTransparentResponse,
45795            fidl_fuchsia_posix::Errno,
45796        >>(
45797            result.map(|value| (value,)),
45798            self.tx_id,
45799            0x51d43695962ebfb5,
45800            fidl::encoding::DynamicFlags::empty(),
45801        )
45802    }
45803}
45804
45805#[must_use = "FIDL methods require a response to be sent"]
45806#[derive(Debug)]
45807pub struct DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
45808    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45809    tx_id: u32,
45810}
45811
45812/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45813/// if the responder is dropped without sending a response, so that the client
45814/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45815impl std::ops::Drop for DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
45816    fn drop(&mut self) {
45817        self.control_handle.shutdown();
45818        // Safety: drops once, never accessed again
45819        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45820    }
45821}
45822
45823impl fidl::endpoints::Responder for DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
45824    type ControlHandle = DatagramSocketControlHandle;
45825
45826    fn control_handle(&self) -> &DatagramSocketControlHandle {
45827        &self.control_handle
45828    }
45829
45830    fn drop_without_shutdown(mut self) {
45831        // Safety: drops once, never accessed again due to mem::forget
45832        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45833        // Prevent Drop from running (which would shut down the channel)
45834        std::mem::forget(self);
45835    }
45836}
45837
45838impl DatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
45839    /// Sends a response to the FIDL transaction.
45840    ///
45841    /// Sets the channel to shutdown if an error occurs.
45842    pub fn send(
45843        self,
45844        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45845    ) -> Result<(), fidl::Error> {
45846        let _result = self.send_raw(result);
45847        if _result.is_err() {
45848            self.control_handle.shutdown();
45849        }
45850        self.drop_without_shutdown();
45851        _result
45852    }
45853
45854    /// Similar to "send" but does not shutdown the channel if an error occurs.
45855    pub fn send_no_shutdown_on_err(
45856        self,
45857        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45858    ) -> Result<(), fidl::Error> {
45859        let _result = self.send_raw(result);
45860        self.drop_without_shutdown();
45861        _result
45862    }
45863
45864    fn send_raw(
45865        &self,
45866        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45867    ) -> Result<(), fidl::Error> {
45868        self.control_handle.inner.send::<fidl::encoding::ResultType<
45869            fidl::encoding::EmptyStruct,
45870            fidl_fuchsia_posix::Errno,
45871        >>(
45872            result,
45873            self.tx_id,
45874            0x4722b4ce52f7840,
45875            fidl::encoding::DynamicFlags::empty(),
45876        )
45877    }
45878}
45879
45880#[must_use = "FIDL methods require a response to be sent"]
45881#[derive(Debug)]
45882pub struct DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
45883    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45884    tx_id: u32,
45885}
45886
45887/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45888/// if the responder is dropped without sending a response, so that the client
45889/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45890impl std::ops::Drop for DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
45891    fn drop(&mut self) {
45892        self.control_handle.shutdown();
45893        // Safety: drops once, never accessed again
45894        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45895    }
45896}
45897
45898impl fidl::endpoints::Responder for DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
45899    type ControlHandle = DatagramSocketControlHandle;
45900
45901    fn control_handle(&self) -> &DatagramSocketControlHandle {
45902        &self.control_handle
45903    }
45904
45905    fn drop_without_shutdown(mut self) {
45906        // Safety: drops once, never accessed again due to mem::forget
45907        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45908        // Prevent Drop from running (which would shut down the channel)
45909        std::mem::forget(self);
45910    }
45911}
45912
45913impl DatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
45914    /// Sends a response to the FIDL transaction.
45915    ///
45916    /// Sets the channel to shutdown if an error occurs.
45917    pub fn send(
45918        self,
45919        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45920    ) -> Result<(), fidl::Error> {
45921        let _result = self.send_raw(result);
45922        if _result.is_err() {
45923            self.control_handle.shutdown();
45924        }
45925        self.drop_without_shutdown();
45926        _result
45927    }
45928
45929    /// Similar to "send" but does not shutdown the channel if an error occurs.
45930    pub fn send_no_shutdown_on_err(
45931        self,
45932        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45933    ) -> Result<(), fidl::Error> {
45934        let _result = self.send_raw(result);
45935        self.drop_without_shutdown();
45936        _result
45937    }
45938
45939    fn send_raw(
45940        &self,
45941        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
45942    ) -> Result<(), fidl::Error> {
45943        self.control_handle.inner.send::<fidl::encoding::ResultType<
45944            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
45945            fidl_fuchsia_posix::Errno,
45946        >>(
45947            result.map(|value| (value,)),
45948            self.tx_id,
45949            0x2a0e7dc5d6bfdfe9,
45950            fidl::encoding::DynamicFlags::empty(),
45951        )
45952    }
45953}
45954
45955#[must_use = "FIDL methods require a response to be sent"]
45956#[derive(Debug)]
45957pub struct DatagramSocketAddIpv6MembershipResponder {
45958    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
45959    tx_id: u32,
45960}
45961
45962/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
45963/// if the responder is dropped without sending a response, so that the client
45964/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
45965impl std::ops::Drop for DatagramSocketAddIpv6MembershipResponder {
45966    fn drop(&mut self) {
45967        self.control_handle.shutdown();
45968        // Safety: drops once, never accessed again
45969        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45970    }
45971}
45972
45973impl fidl::endpoints::Responder for DatagramSocketAddIpv6MembershipResponder {
45974    type ControlHandle = DatagramSocketControlHandle;
45975
45976    fn control_handle(&self) -> &DatagramSocketControlHandle {
45977        &self.control_handle
45978    }
45979
45980    fn drop_without_shutdown(mut self) {
45981        // Safety: drops once, never accessed again due to mem::forget
45982        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
45983        // Prevent Drop from running (which would shut down the channel)
45984        std::mem::forget(self);
45985    }
45986}
45987
45988impl DatagramSocketAddIpv6MembershipResponder {
45989    /// Sends a response to the FIDL transaction.
45990    ///
45991    /// Sets the channel to shutdown if an error occurs.
45992    pub fn send(
45993        self,
45994        mut result: Result<(), fidl_fuchsia_posix::Errno>,
45995    ) -> Result<(), fidl::Error> {
45996        let _result = self.send_raw(result);
45997        if _result.is_err() {
45998            self.control_handle.shutdown();
45999        }
46000        self.drop_without_shutdown();
46001        _result
46002    }
46003
46004    /// Similar to "send" but does not shutdown the channel if an error occurs.
46005    pub fn send_no_shutdown_on_err(
46006        self,
46007        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46008    ) -> Result<(), fidl::Error> {
46009        let _result = self.send_raw(result);
46010        self.drop_without_shutdown();
46011        _result
46012    }
46013
46014    fn send_raw(
46015        &self,
46016        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46017    ) -> Result<(), fidl::Error> {
46018        self.control_handle.inner.send::<fidl::encoding::ResultType<
46019            fidl::encoding::EmptyStruct,
46020            fidl_fuchsia_posix::Errno,
46021        >>(
46022            result,
46023            self.tx_id,
46024            0x7c94727acb4ea4b3,
46025            fidl::encoding::DynamicFlags::empty(),
46026        )
46027    }
46028}
46029
46030#[must_use = "FIDL methods require a response to be sent"]
46031#[derive(Debug)]
46032pub struct DatagramSocketDropIpv6MembershipResponder {
46033    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46034    tx_id: u32,
46035}
46036
46037/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46038/// if the responder is dropped without sending a response, so that the client
46039/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46040impl std::ops::Drop for DatagramSocketDropIpv6MembershipResponder {
46041    fn drop(&mut self) {
46042        self.control_handle.shutdown();
46043        // Safety: drops once, never accessed again
46044        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46045    }
46046}
46047
46048impl fidl::endpoints::Responder for DatagramSocketDropIpv6MembershipResponder {
46049    type ControlHandle = DatagramSocketControlHandle;
46050
46051    fn control_handle(&self) -> &DatagramSocketControlHandle {
46052        &self.control_handle
46053    }
46054
46055    fn drop_without_shutdown(mut self) {
46056        // Safety: drops once, never accessed again due to mem::forget
46057        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46058        // Prevent Drop from running (which would shut down the channel)
46059        std::mem::forget(self);
46060    }
46061}
46062
46063impl DatagramSocketDropIpv6MembershipResponder {
46064    /// Sends a response to the FIDL transaction.
46065    ///
46066    /// Sets the channel to shutdown if an error occurs.
46067    pub fn send(
46068        self,
46069        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46070    ) -> Result<(), fidl::Error> {
46071        let _result = self.send_raw(result);
46072        if _result.is_err() {
46073            self.control_handle.shutdown();
46074        }
46075        self.drop_without_shutdown();
46076        _result
46077    }
46078
46079    /// Similar to "send" but does not shutdown the channel if an error occurs.
46080    pub fn send_no_shutdown_on_err(
46081        self,
46082        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46083    ) -> Result<(), fidl::Error> {
46084        let _result = self.send_raw(result);
46085        self.drop_without_shutdown();
46086        _result
46087    }
46088
46089    fn send_raw(
46090        &self,
46091        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46092    ) -> Result<(), fidl::Error> {
46093        self.control_handle.inner.send::<fidl::encoding::ResultType<
46094            fidl::encoding::EmptyStruct,
46095            fidl_fuchsia_posix::Errno,
46096        >>(
46097            result,
46098            self.tx_id,
46099            0x42104c70ccaba304,
46100            fidl::encoding::DynamicFlags::empty(),
46101        )
46102    }
46103}
46104
46105#[must_use = "FIDL methods require a response to be sent"]
46106#[derive(Debug)]
46107pub struct DatagramSocketSetIpv6MulticastInterfaceResponder {
46108    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46109    tx_id: u32,
46110}
46111
46112/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46113/// if the responder is dropped without sending a response, so that the client
46114/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46115impl std::ops::Drop for DatagramSocketSetIpv6MulticastInterfaceResponder {
46116    fn drop(&mut self) {
46117        self.control_handle.shutdown();
46118        // Safety: drops once, never accessed again
46119        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46120    }
46121}
46122
46123impl fidl::endpoints::Responder for DatagramSocketSetIpv6MulticastInterfaceResponder {
46124    type ControlHandle = DatagramSocketControlHandle;
46125
46126    fn control_handle(&self) -> &DatagramSocketControlHandle {
46127        &self.control_handle
46128    }
46129
46130    fn drop_without_shutdown(mut self) {
46131        // Safety: drops once, never accessed again due to mem::forget
46132        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46133        // Prevent Drop from running (which would shut down the channel)
46134        std::mem::forget(self);
46135    }
46136}
46137
46138impl DatagramSocketSetIpv6MulticastInterfaceResponder {
46139    /// Sends a response to the FIDL transaction.
46140    ///
46141    /// Sets the channel to shutdown if an error occurs.
46142    pub fn send(
46143        self,
46144        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46145    ) -> Result<(), fidl::Error> {
46146        let _result = self.send_raw(result);
46147        if _result.is_err() {
46148            self.control_handle.shutdown();
46149        }
46150        self.drop_without_shutdown();
46151        _result
46152    }
46153
46154    /// Similar to "send" but does not shutdown the channel if an error occurs.
46155    pub fn send_no_shutdown_on_err(
46156        self,
46157        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46158    ) -> Result<(), fidl::Error> {
46159        let _result = self.send_raw(result);
46160        self.drop_without_shutdown();
46161        _result
46162    }
46163
46164    fn send_raw(
46165        &self,
46166        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46167    ) -> Result<(), fidl::Error> {
46168        self.control_handle.inner.send::<fidl::encoding::ResultType<
46169            fidl::encoding::EmptyStruct,
46170            fidl_fuchsia_posix::Errno,
46171        >>(
46172            result,
46173            self.tx_id,
46174            0x135f76db3774ab3b,
46175            fidl::encoding::DynamicFlags::empty(),
46176        )
46177    }
46178}
46179
46180#[must_use = "FIDL methods require a response to be sent"]
46181#[derive(Debug)]
46182pub struct DatagramSocketGetIpv6MulticastInterfaceResponder {
46183    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46184    tx_id: u32,
46185}
46186
46187/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46188/// if the responder is dropped without sending a response, so that the client
46189/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46190impl std::ops::Drop for DatagramSocketGetIpv6MulticastInterfaceResponder {
46191    fn drop(&mut self) {
46192        self.control_handle.shutdown();
46193        // Safety: drops once, never accessed again
46194        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46195    }
46196}
46197
46198impl fidl::endpoints::Responder for DatagramSocketGetIpv6MulticastInterfaceResponder {
46199    type ControlHandle = DatagramSocketControlHandle;
46200
46201    fn control_handle(&self) -> &DatagramSocketControlHandle {
46202        &self.control_handle
46203    }
46204
46205    fn drop_without_shutdown(mut self) {
46206        // Safety: drops once, never accessed again due to mem::forget
46207        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46208        // Prevent Drop from running (which would shut down the channel)
46209        std::mem::forget(self);
46210    }
46211}
46212
46213impl DatagramSocketGetIpv6MulticastInterfaceResponder {
46214    /// Sends a response to the FIDL transaction.
46215    ///
46216    /// Sets the channel to shutdown if an error occurs.
46217    pub fn send(
46218        self,
46219        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
46220    ) -> Result<(), fidl::Error> {
46221        let _result = self.send_raw(result);
46222        if _result.is_err() {
46223            self.control_handle.shutdown();
46224        }
46225        self.drop_without_shutdown();
46226        _result
46227    }
46228
46229    /// Similar to "send" but does not shutdown the channel if an error occurs.
46230    pub fn send_no_shutdown_on_err(
46231        self,
46232        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
46233    ) -> Result<(), fidl::Error> {
46234        let _result = self.send_raw(result);
46235        self.drop_without_shutdown();
46236        _result
46237    }
46238
46239    fn send_raw(
46240        &self,
46241        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
46242    ) -> Result<(), fidl::Error> {
46243        self.control_handle.inner.send::<fidl::encoding::ResultType<
46244            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
46245            fidl_fuchsia_posix::Errno,
46246        >>(
46247            result.map(|value| (value,)),
46248            self.tx_id,
46249            0x1f26fcdd348f1882,
46250            fidl::encoding::DynamicFlags::empty(),
46251        )
46252    }
46253}
46254
46255#[must_use = "FIDL methods require a response to be sent"]
46256#[derive(Debug)]
46257pub struct DatagramSocketSetIpv6UnicastHopsResponder {
46258    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46259    tx_id: u32,
46260}
46261
46262/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46263/// if the responder is dropped without sending a response, so that the client
46264/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46265impl std::ops::Drop for DatagramSocketSetIpv6UnicastHopsResponder {
46266    fn drop(&mut self) {
46267        self.control_handle.shutdown();
46268        // Safety: drops once, never accessed again
46269        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46270    }
46271}
46272
46273impl fidl::endpoints::Responder for DatagramSocketSetIpv6UnicastHopsResponder {
46274    type ControlHandle = DatagramSocketControlHandle;
46275
46276    fn control_handle(&self) -> &DatagramSocketControlHandle {
46277        &self.control_handle
46278    }
46279
46280    fn drop_without_shutdown(mut self) {
46281        // Safety: drops once, never accessed again due to mem::forget
46282        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46283        // Prevent Drop from running (which would shut down the channel)
46284        std::mem::forget(self);
46285    }
46286}
46287
46288impl DatagramSocketSetIpv6UnicastHopsResponder {
46289    /// Sends a response to the FIDL transaction.
46290    ///
46291    /// Sets the channel to shutdown if an error occurs.
46292    pub fn send(
46293        self,
46294        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46295    ) -> Result<(), fidl::Error> {
46296        let _result = self.send_raw(result);
46297        if _result.is_err() {
46298            self.control_handle.shutdown();
46299        }
46300        self.drop_without_shutdown();
46301        _result
46302    }
46303
46304    /// Similar to "send" but does not shutdown the channel if an error occurs.
46305    pub fn send_no_shutdown_on_err(
46306        self,
46307        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46308    ) -> Result<(), fidl::Error> {
46309        let _result = self.send_raw(result);
46310        self.drop_without_shutdown();
46311        _result
46312    }
46313
46314    fn send_raw(
46315        &self,
46316        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46317    ) -> Result<(), fidl::Error> {
46318        self.control_handle.inner.send::<fidl::encoding::ResultType<
46319            fidl::encoding::EmptyStruct,
46320            fidl_fuchsia_posix::Errno,
46321        >>(
46322            result,
46323            self.tx_id,
46324            0x157d51e98f462859,
46325            fidl::encoding::DynamicFlags::empty(),
46326        )
46327    }
46328}
46329
46330#[must_use = "FIDL methods require a response to be sent"]
46331#[derive(Debug)]
46332pub struct DatagramSocketGetIpv6UnicastHopsResponder {
46333    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46334    tx_id: u32,
46335}
46336
46337/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46338/// if the responder is dropped without sending a response, so that the client
46339/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46340impl std::ops::Drop for DatagramSocketGetIpv6UnicastHopsResponder {
46341    fn drop(&mut self) {
46342        self.control_handle.shutdown();
46343        // Safety: drops once, never accessed again
46344        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46345    }
46346}
46347
46348impl fidl::endpoints::Responder for DatagramSocketGetIpv6UnicastHopsResponder {
46349    type ControlHandle = DatagramSocketControlHandle;
46350
46351    fn control_handle(&self) -> &DatagramSocketControlHandle {
46352        &self.control_handle
46353    }
46354
46355    fn drop_without_shutdown(mut self) {
46356        // Safety: drops once, never accessed again due to mem::forget
46357        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46358        // Prevent Drop from running (which would shut down the channel)
46359        std::mem::forget(self);
46360    }
46361}
46362
46363impl DatagramSocketGetIpv6UnicastHopsResponder {
46364    /// Sends a response to the FIDL transaction.
46365    ///
46366    /// Sets the channel to shutdown if an error occurs.
46367    pub fn send(
46368        self,
46369        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46370    ) -> Result<(), fidl::Error> {
46371        let _result = self.send_raw(result);
46372        if _result.is_err() {
46373            self.control_handle.shutdown();
46374        }
46375        self.drop_without_shutdown();
46376        _result
46377    }
46378
46379    /// Similar to "send" but does not shutdown the channel if an error occurs.
46380    pub fn send_no_shutdown_on_err(
46381        self,
46382        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46383    ) -> Result<(), fidl::Error> {
46384        let _result = self.send_raw(result);
46385        self.drop_without_shutdown();
46386        _result
46387    }
46388
46389    fn send_raw(
46390        &self,
46391        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46392    ) -> Result<(), fidl::Error> {
46393        self.control_handle.inner.send::<fidl::encoding::ResultType<
46394            BaseNetworkSocketGetIpv6UnicastHopsResponse,
46395            fidl_fuchsia_posix::Errno,
46396        >>(
46397            result.map(|value| (value,)),
46398            self.tx_id,
46399            0x21f4641cad8bd8d2,
46400            fidl::encoding::DynamicFlags::empty(),
46401        )
46402    }
46403}
46404
46405#[must_use = "FIDL methods require a response to be sent"]
46406#[derive(Debug)]
46407pub struct DatagramSocketSetIpv6ReceiveHopLimitResponder {
46408    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46409    tx_id: u32,
46410}
46411
46412/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46413/// if the responder is dropped without sending a response, so that the client
46414/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46415impl std::ops::Drop for DatagramSocketSetIpv6ReceiveHopLimitResponder {
46416    fn drop(&mut self) {
46417        self.control_handle.shutdown();
46418        // Safety: drops once, never accessed again
46419        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46420    }
46421}
46422
46423impl fidl::endpoints::Responder for DatagramSocketSetIpv6ReceiveHopLimitResponder {
46424    type ControlHandle = DatagramSocketControlHandle;
46425
46426    fn control_handle(&self) -> &DatagramSocketControlHandle {
46427        &self.control_handle
46428    }
46429
46430    fn drop_without_shutdown(mut self) {
46431        // Safety: drops once, never accessed again due to mem::forget
46432        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46433        // Prevent Drop from running (which would shut down the channel)
46434        std::mem::forget(self);
46435    }
46436}
46437
46438impl DatagramSocketSetIpv6ReceiveHopLimitResponder {
46439    /// Sends a response to the FIDL transaction.
46440    ///
46441    /// Sets the channel to shutdown if an error occurs.
46442    pub fn send(
46443        self,
46444        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46445    ) -> Result<(), fidl::Error> {
46446        let _result = self.send_raw(result);
46447        if _result.is_err() {
46448            self.control_handle.shutdown();
46449        }
46450        self.drop_without_shutdown();
46451        _result
46452    }
46453
46454    /// Similar to "send" but does not shutdown the channel if an error occurs.
46455    pub fn send_no_shutdown_on_err(
46456        self,
46457        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46458    ) -> Result<(), fidl::Error> {
46459        let _result = self.send_raw(result);
46460        self.drop_without_shutdown();
46461        _result
46462    }
46463
46464    fn send_raw(
46465        &self,
46466        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46467    ) -> Result<(), fidl::Error> {
46468        self.control_handle.inner.send::<fidl::encoding::ResultType<
46469            fidl::encoding::EmptyStruct,
46470            fidl_fuchsia_posix::Errno,
46471        >>(
46472            result,
46473            self.tx_id,
46474            0x5c24808ed2e84a1e,
46475            fidl::encoding::DynamicFlags::empty(),
46476        )
46477    }
46478}
46479
46480#[must_use = "FIDL methods require a response to be sent"]
46481#[derive(Debug)]
46482pub struct DatagramSocketGetIpv6ReceiveHopLimitResponder {
46483    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46484    tx_id: u32,
46485}
46486
46487/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46488/// if the responder is dropped without sending a response, so that the client
46489/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46490impl std::ops::Drop for DatagramSocketGetIpv6ReceiveHopLimitResponder {
46491    fn drop(&mut self) {
46492        self.control_handle.shutdown();
46493        // Safety: drops once, never accessed again
46494        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46495    }
46496}
46497
46498impl fidl::endpoints::Responder for DatagramSocketGetIpv6ReceiveHopLimitResponder {
46499    type ControlHandle = DatagramSocketControlHandle;
46500
46501    fn control_handle(&self) -> &DatagramSocketControlHandle {
46502        &self.control_handle
46503    }
46504
46505    fn drop_without_shutdown(mut self) {
46506        // Safety: drops once, never accessed again due to mem::forget
46507        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46508        // Prevent Drop from running (which would shut down the channel)
46509        std::mem::forget(self);
46510    }
46511}
46512
46513impl DatagramSocketGetIpv6ReceiveHopLimitResponder {
46514    /// Sends a response to the FIDL transaction.
46515    ///
46516    /// Sets the channel to shutdown if an error occurs.
46517    pub fn send(
46518        self,
46519        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46520    ) -> Result<(), fidl::Error> {
46521        let _result = self.send_raw(result);
46522        if _result.is_err() {
46523            self.control_handle.shutdown();
46524        }
46525        self.drop_without_shutdown();
46526        _result
46527    }
46528
46529    /// Similar to "send" but does not shutdown the channel if an error occurs.
46530    pub fn send_no_shutdown_on_err(
46531        self,
46532        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46533    ) -> Result<(), fidl::Error> {
46534        let _result = self.send_raw(result);
46535        self.drop_without_shutdown();
46536        _result
46537    }
46538
46539    fn send_raw(
46540        &self,
46541        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46542    ) -> Result<(), fidl::Error> {
46543        self.control_handle.inner.send::<fidl::encoding::ResultType<
46544            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
46545            fidl_fuchsia_posix::Errno,
46546        >>(
46547            result.map(|value| (value,)),
46548            self.tx_id,
46549            0x341e06689885b4c0,
46550            fidl::encoding::DynamicFlags::empty(),
46551        )
46552    }
46553}
46554
46555#[must_use = "FIDL methods require a response to be sent"]
46556#[derive(Debug)]
46557pub struct DatagramSocketSetIpv6MulticastHopsResponder {
46558    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46559    tx_id: u32,
46560}
46561
46562/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46563/// if the responder is dropped without sending a response, so that the client
46564/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46565impl std::ops::Drop for DatagramSocketSetIpv6MulticastHopsResponder {
46566    fn drop(&mut self) {
46567        self.control_handle.shutdown();
46568        // Safety: drops once, never accessed again
46569        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46570    }
46571}
46572
46573impl fidl::endpoints::Responder for DatagramSocketSetIpv6MulticastHopsResponder {
46574    type ControlHandle = DatagramSocketControlHandle;
46575
46576    fn control_handle(&self) -> &DatagramSocketControlHandle {
46577        &self.control_handle
46578    }
46579
46580    fn drop_without_shutdown(mut self) {
46581        // Safety: drops once, never accessed again due to mem::forget
46582        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46583        // Prevent Drop from running (which would shut down the channel)
46584        std::mem::forget(self);
46585    }
46586}
46587
46588impl DatagramSocketSetIpv6MulticastHopsResponder {
46589    /// Sends a response to the FIDL transaction.
46590    ///
46591    /// Sets the channel to shutdown if an error occurs.
46592    pub fn send(
46593        self,
46594        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46595    ) -> Result<(), fidl::Error> {
46596        let _result = self.send_raw(result);
46597        if _result.is_err() {
46598            self.control_handle.shutdown();
46599        }
46600        self.drop_without_shutdown();
46601        _result
46602    }
46603
46604    /// Similar to "send" but does not shutdown the channel if an error occurs.
46605    pub fn send_no_shutdown_on_err(
46606        self,
46607        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46608    ) -> Result<(), fidl::Error> {
46609        let _result = self.send_raw(result);
46610        self.drop_without_shutdown();
46611        _result
46612    }
46613
46614    fn send_raw(
46615        &self,
46616        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46617    ) -> Result<(), fidl::Error> {
46618        self.control_handle.inner.send::<fidl::encoding::ResultType<
46619            fidl::encoding::EmptyStruct,
46620            fidl_fuchsia_posix::Errno,
46621        >>(
46622            result,
46623            self.tx_id,
46624            0x25b9cd4d181f82c1,
46625            fidl::encoding::DynamicFlags::empty(),
46626        )
46627    }
46628}
46629
46630#[must_use = "FIDL methods require a response to be sent"]
46631#[derive(Debug)]
46632pub struct DatagramSocketGetIpv6MulticastHopsResponder {
46633    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46634    tx_id: u32,
46635}
46636
46637/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46638/// if the responder is dropped without sending a response, so that the client
46639/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46640impl std::ops::Drop for DatagramSocketGetIpv6MulticastHopsResponder {
46641    fn drop(&mut self) {
46642        self.control_handle.shutdown();
46643        // Safety: drops once, never accessed again
46644        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46645    }
46646}
46647
46648impl fidl::endpoints::Responder for DatagramSocketGetIpv6MulticastHopsResponder {
46649    type ControlHandle = DatagramSocketControlHandle;
46650
46651    fn control_handle(&self) -> &DatagramSocketControlHandle {
46652        &self.control_handle
46653    }
46654
46655    fn drop_without_shutdown(mut self) {
46656        // Safety: drops once, never accessed again due to mem::forget
46657        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46658        // Prevent Drop from running (which would shut down the channel)
46659        std::mem::forget(self);
46660    }
46661}
46662
46663impl DatagramSocketGetIpv6MulticastHopsResponder {
46664    /// Sends a response to the FIDL transaction.
46665    ///
46666    /// Sets the channel to shutdown if an error occurs.
46667    pub fn send(
46668        self,
46669        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46670    ) -> Result<(), fidl::Error> {
46671        let _result = self.send_raw(result);
46672        if _result.is_err() {
46673            self.control_handle.shutdown();
46674        }
46675        self.drop_without_shutdown();
46676        _result
46677    }
46678
46679    /// Similar to "send" but does not shutdown the channel if an error occurs.
46680    pub fn send_no_shutdown_on_err(
46681        self,
46682        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46683    ) -> Result<(), fidl::Error> {
46684        let _result = self.send_raw(result);
46685        self.drop_without_shutdown();
46686        _result
46687    }
46688
46689    fn send_raw(
46690        &self,
46691        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
46692    ) -> Result<(), fidl::Error> {
46693        self.control_handle.inner.send::<fidl::encoding::ResultType<
46694            BaseNetworkSocketGetIpv6MulticastHopsResponse,
46695            fidl_fuchsia_posix::Errno,
46696        >>(
46697            result.map(|value| (value,)),
46698            self.tx_id,
46699            0x52916948a365012a,
46700            fidl::encoding::DynamicFlags::empty(),
46701        )
46702    }
46703}
46704
46705#[must_use = "FIDL methods require a response to be sent"]
46706#[derive(Debug)]
46707pub struct DatagramSocketSetIpv6MulticastLoopbackResponder {
46708    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46709    tx_id: u32,
46710}
46711
46712/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46713/// if the responder is dropped without sending a response, so that the client
46714/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46715impl std::ops::Drop for DatagramSocketSetIpv6MulticastLoopbackResponder {
46716    fn drop(&mut self) {
46717        self.control_handle.shutdown();
46718        // Safety: drops once, never accessed again
46719        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46720    }
46721}
46722
46723impl fidl::endpoints::Responder for DatagramSocketSetIpv6MulticastLoopbackResponder {
46724    type ControlHandle = DatagramSocketControlHandle;
46725
46726    fn control_handle(&self) -> &DatagramSocketControlHandle {
46727        &self.control_handle
46728    }
46729
46730    fn drop_without_shutdown(mut self) {
46731        // Safety: drops once, never accessed again due to mem::forget
46732        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46733        // Prevent Drop from running (which would shut down the channel)
46734        std::mem::forget(self);
46735    }
46736}
46737
46738impl DatagramSocketSetIpv6MulticastLoopbackResponder {
46739    /// Sends a response to the FIDL transaction.
46740    ///
46741    /// Sets the channel to shutdown if an error occurs.
46742    pub fn send(
46743        self,
46744        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46745    ) -> Result<(), fidl::Error> {
46746        let _result = self.send_raw(result);
46747        if _result.is_err() {
46748            self.control_handle.shutdown();
46749        }
46750        self.drop_without_shutdown();
46751        _result
46752    }
46753
46754    /// Similar to "send" but does not shutdown the channel if an error occurs.
46755    pub fn send_no_shutdown_on_err(
46756        self,
46757        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46758    ) -> Result<(), fidl::Error> {
46759        let _result = self.send_raw(result);
46760        self.drop_without_shutdown();
46761        _result
46762    }
46763
46764    fn send_raw(
46765        &self,
46766        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46767    ) -> Result<(), fidl::Error> {
46768        self.control_handle.inner.send::<fidl::encoding::ResultType<
46769            fidl::encoding::EmptyStruct,
46770            fidl_fuchsia_posix::Errno,
46771        >>(
46772            result,
46773            self.tx_id,
46774            0x55701c409ff41b40,
46775            fidl::encoding::DynamicFlags::empty(),
46776        )
46777    }
46778}
46779
46780#[must_use = "FIDL methods require a response to be sent"]
46781#[derive(Debug)]
46782pub struct DatagramSocketGetIpv6MulticastLoopbackResponder {
46783    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46784    tx_id: u32,
46785}
46786
46787/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46788/// if the responder is dropped without sending a response, so that the client
46789/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46790impl std::ops::Drop for DatagramSocketGetIpv6MulticastLoopbackResponder {
46791    fn drop(&mut self) {
46792        self.control_handle.shutdown();
46793        // Safety: drops once, never accessed again
46794        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46795    }
46796}
46797
46798impl fidl::endpoints::Responder for DatagramSocketGetIpv6MulticastLoopbackResponder {
46799    type ControlHandle = DatagramSocketControlHandle;
46800
46801    fn control_handle(&self) -> &DatagramSocketControlHandle {
46802        &self.control_handle
46803    }
46804
46805    fn drop_without_shutdown(mut self) {
46806        // Safety: drops once, never accessed again due to mem::forget
46807        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46808        // Prevent Drop from running (which would shut down the channel)
46809        std::mem::forget(self);
46810    }
46811}
46812
46813impl DatagramSocketGetIpv6MulticastLoopbackResponder {
46814    /// Sends a response to the FIDL transaction.
46815    ///
46816    /// Sets the channel to shutdown if an error occurs.
46817    pub fn send(
46818        self,
46819        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46820    ) -> Result<(), fidl::Error> {
46821        let _result = self.send_raw(result);
46822        if _result.is_err() {
46823            self.control_handle.shutdown();
46824        }
46825        self.drop_without_shutdown();
46826        _result
46827    }
46828
46829    /// Similar to "send" but does not shutdown the channel if an error occurs.
46830    pub fn send_no_shutdown_on_err(
46831        self,
46832        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46833    ) -> Result<(), fidl::Error> {
46834        let _result = self.send_raw(result);
46835        self.drop_without_shutdown();
46836        _result
46837    }
46838
46839    fn send_raw(
46840        &self,
46841        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46842    ) -> Result<(), fidl::Error> {
46843        self.control_handle.inner.send::<fidl::encoding::ResultType<
46844            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
46845            fidl_fuchsia_posix::Errno,
46846        >>(
46847            result.map(|value| (value,)),
46848            self.tx_id,
46849            0x4415b701fde319c3,
46850            fidl::encoding::DynamicFlags::empty(),
46851        )
46852    }
46853}
46854
46855#[must_use = "FIDL methods require a response to be sent"]
46856#[derive(Debug)]
46857pub struct DatagramSocketSetIpv6OnlyResponder {
46858    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46859    tx_id: u32,
46860}
46861
46862/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46863/// if the responder is dropped without sending a response, so that the client
46864/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46865impl std::ops::Drop for DatagramSocketSetIpv6OnlyResponder {
46866    fn drop(&mut self) {
46867        self.control_handle.shutdown();
46868        // Safety: drops once, never accessed again
46869        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46870    }
46871}
46872
46873impl fidl::endpoints::Responder for DatagramSocketSetIpv6OnlyResponder {
46874    type ControlHandle = DatagramSocketControlHandle;
46875
46876    fn control_handle(&self) -> &DatagramSocketControlHandle {
46877        &self.control_handle
46878    }
46879
46880    fn drop_without_shutdown(mut self) {
46881        // Safety: drops once, never accessed again due to mem::forget
46882        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46883        // Prevent Drop from running (which would shut down the channel)
46884        std::mem::forget(self);
46885    }
46886}
46887
46888impl DatagramSocketSetIpv6OnlyResponder {
46889    /// Sends a response to the FIDL transaction.
46890    ///
46891    /// Sets the channel to shutdown if an error occurs.
46892    pub fn send(
46893        self,
46894        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46895    ) -> Result<(), fidl::Error> {
46896        let _result = self.send_raw(result);
46897        if _result.is_err() {
46898            self.control_handle.shutdown();
46899        }
46900        self.drop_without_shutdown();
46901        _result
46902    }
46903
46904    /// Similar to "send" but does not shutdown the channel if an error occurs.
46905    pub fn send_no_shutdown_on_err(
46906        self,
46907        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46908    ) -> Result<(), fidl::Error> {
46909        let _result = self.send_raw(result);
46910        self.drop_without_shutdown();
46911        _result
46912    }
46913
46914    fn send_raw(
46915        &self,
46916        mut result: Result<(), fidl_fuchsia_posix::Errno>,
46917    ) -> Result<(), fidl::Error> {
46918        self.control_handle.inner.send::<fidl::encoding::ResultType<
46919            fidl::encoding::EmptyStruct,
46920            fidl_fuchsia_posix::Errno,
46921        >>(
46922            result,
46923            self.tx_id,
46924            0x4873f1364758cbba,
46925            fidl::encoding::DynamicFlags::empty(),
46926        )
46927    }
46928}
46929
46930#[must_use = "FIDL methods require a response to be sent"]
46931#[derive(Debug)]
46932pub struct DatagramSocketGetIpv6OnlyResponder {
46933    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
46934    tx_id: u32,
46935}
46936
46937/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
46938/// if the responder is dropped without sending a response, so that the client
46939/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
46940impl std::ops::Drop for DatagramSocketGetIpv6OnlyResponder {
46941    fn drop(&mut self) {
46942        self.control_handle.shutdown();
46943        // Safety: drops once, never accessed again
46944        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46945    }
46946}
46947
46948impl fidl::endpoints::Responder for DatagramSocketGetIpv6OnlyResponder {
46949    type ControlHandle = DatagramSocketControlHandle;
46950
46951    fn control_handle(&self) -> &DatagramSocketControlHandle {
46952        &self.control_handle
46953    }
46954
46955    fn drop_without_shutdown(mut self) {
46956        // Safety: drops once, never accessed again due to mem::forget
46957        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
46958        // Prevent Drop from running (which would shut down the channel)
46959        std::mem::forget(self);
46960    }
46961}
46962
46963impl DatagramSocketGetIpv6OnlyResponder {
46964    /// Sends a response to the FIDL transaction.
46965    ///
46966    /// Sets the channel to shutdown if an error occurs.
46967    pub fn send(
46968        self,
46969        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46970    ) -> Result<(), fidl::Error> {
46971        let _result = self.send_raw(result);
46972        if _result.is_err() {
46973            self.control_handle.shutdown();
46974        }
46975        self.drop_without_shutdown();
46976        _result
46977    }
46978
46979    /// Similar to "send" but does not shutdown the channel if an error occurs.
46980    pub fn send_no_shutdown_on_err(
46981        self,
46982        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46983    ) -> Result<(), fidl::Error> {
46984        let _result = self.send_raw(result);
46985        self.drop_without_shutdown();
46986        _result
46987    }
46988
46989    fn send_raw(
46990        &self,
46991        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
46992    ) -> Result<(), fidl::Error> {
46993        self.control_handle.inner.send::<fidl::encoding::ResultType<
46994            BaseNetworkSocketGetIpv6OnlyResponse,
46995            fidl_fuchsia_posix::Errno,
46996        >>(
46997            result.map(|value| (value,)),
46998            self.tx_id,
46999            0x4aa3340a1a26b89c,
47000            fidl::encoding::DynamicFlags::empty(),
47001        )
47002    }
47003}
47004
47005#[must_use = "FIDL methods require a response to be sent"]
47006#[derive(Debug)]
47007pub struct DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47008    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47009    tx_id: u32,
47010}
47011
47012/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47013/// if the responder is dropped without sending a response, so that the client
47014/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47015impl std::ops::Drop for DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47016    fn drop(&mut self) {
47017        self.control_handle.shutdown();
47018        // Safety: drops once, never accessed again
47019        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47020    }
47021}
47022
47023impl fidl::endpoints::Responder for DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47024    type ControlHandle = DatagramSocketControlHandle;
47025
47026    fn control_handle(&self) -> &DatagramSocketControlHandle {
47027        &self.control_handle
47028    }
47029
47030    fn drop_without_shutdown(mut self) {
47031        // Safety: drops once, never accessed again due to mem::forget
47032        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47033        // Prevent Drop from running (which would shut down the channel)
47034        std::mem::forget(self);
47035    }
47036}
47037
47038impl DatagramSocketSetIpv6ReceiveTrafficClassResponder {
47039    /// Sends a response to the FIDL transaction.
47040    ///
47041    /// Sets the channel to shutdown if an error occurs.
47042    pub fn send(
47043        self,
47044        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47045    ) -> Result<(), fidl::Error> {
47046        let _result = self.send_raw(result);
47047        if _result.is_err() {
47048            self.control_handle.shutdown();
47049        }
47050        self.drop_without_shutdown();
47051        _result
47052    }
47053
47054    /// Similar to "send" but does not shutdown the channel if an error occurs.
47055    pub fn send_no_shutdown_on_err(
47056        self,
47057        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47058    ) -> Result<(), fidl::Error> {
47059        let _result = self.send_raw(result);
47060        self.drop_without_shutdown();
47061        _result
47062    }
47063
47064    fn send_raw(
47065        &self,
47066        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47067    ) -> Result<(), fidl::Error> {
47068        self.control_handle.inner.send::<fidl::encoding::ResultType<
47069            fidl::encoding::EmptyStruct,
47070            fidl_fuchsia_posix::Errno,
47071        >>(
47072            result,
47073            self.tx_id,
47074            0x58f07c8788d099a0,
47075            fidl::encoding::DynamicFlags::empty(),
47076        )
47077    }
47078}
47079
47080#[must_use = "FIDL methods require a response to be sent"]
47081#[derive(Debug)]
47082pub struct DatagramSocketGetIpv6ReceiveTrafficClassResponder {
47083    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47084    tx_id: u32,
47085}
47086
47087/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47088/// if the responder is dropped without sending a response, so that the client
47089/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47090impl std::ops::Drop for DatagramSocketGetIpv6ReceiveTrafficClassResponder {
47091    fn drop(&mut self) {
47092        self.control_handle.shutdown();
47093        // Safety: drops once, never accessed again
47094        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47095    }
47096}
47097
47098impl fidl::endpoints::Responder for DatagramSocketGetIpv6ReceiveTrafficClassResponder {
47099    type ControlHandle = DatagramSocketControlHandle;
47100
47101    fn control_handle(&self) -> &DatagramSocketControlHandle {
47102        &self.control_handle
47103    }
47104
47105    fn drop_without_shutdown(mut self) {
47106        // Safety: drops once, never accessed again due to mem::forget
47107        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47108        // Prevent Drop from running (which would shut down the channel)
47109        std::mem::forget(self);
47110    }
47111}
47112
47113impl DatagramSocketGetIpv6ReceiveTrafficClassResponder {
47114    /// Sends a response to the FIDL transaction.
47115    ///
47116    /// Sets the channel to shutdown if an error occurs.
47117    pub fn send(
47118        self,
47119        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47120    ) -> Result<(), fidl::Error> {
47121        let _result = self.send_raw(result);
47122        if _result.is_err() {
47123            self.control_handle.shutdown();
47124        }
47125        self.drop_without_shutdown();
47126        _result
47127    }
47128
47129    /// Similar to "send" but does not shutdown the channel if an error occurs.
47130    pub fn send_no_shutdown_on_err(
47131        self,
47132        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47133    ) -> Result<(), fidl::Error> {
47134        let _result = self.send_raw(result);
47135        self.drop_without_shutdown();
47136        _result
47137    }
47138
47139    fn send_raw(
47140        &self,
47141        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47142    ) -> Result<(), fidl::Error> {
47143        self.control_handle.inner.send::<fidl::encoding::ResultType<
47144            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
47145            fidl_fuchsia_posix::Errno,
47146        >>(
47147            result.map(|value| (value,)),
47148            self.tx_id,
47149            0x2e334df1da553ffa,
47150            fidl::encoding::DynamicFlags::empty(),
47151        )
47152    }
47153}
47154
47155#[must_use = "FIDL methods require a response to be sent"]
47156#[derive(Debug)]
47157pub struct DatagramSocketSetIpv6TrafficClassResponder {
47158    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47159    tx_id: u32,
47160}
47161
47162/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47163/// if the responder is dropped without sending a response, so that the client
47164/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47165impl std::ops::Drop for DatagramSocketSetIpv6TrafficClassResponder {
47166    fn drop(&mut self) {
47167        self.control_handle.shutdown();
47168        // Safety: drops once, never accessed again
47169        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47170    }
47171}
47172
47173impl fidl::endpoints::Responder for DatagramSocketSetIpv6TrafficClassResponder {
47174    type ControlHandle = DatagramSocketControlHandle;
47175
47176    fn control_handle(&self) -> &DatagramSocketControlHandle {
47177        &self.control_handle
47178    }
47179
47180    fn drop_without_shutdown(mut self) {
47181        // Safety: drops once, never accessed again due to mem::forget
47182        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47183        // Prevent Drop from running (which would shut down the channel)
47184        std::mem::forget(self);
47185    }
47186}
47187
47188impl DatagramSocketSetIpv6TrafficClassResponder {
47189    /// Sends a response to the FIDL transaction.
47190    ///
47191    /// Sets the channel to shutdown if an error occurs.
47192    pub fn send(
47193        self,
47194        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47195    ) -> Result<(), fidl::Error> {
47196        let _result = self.send_raw(result);
47197        if _result.is_err() {
47198            self.control_handle.shutdown();
47199        }
47200        self.drop_without_shutdown();
47201        _result
47202    }
47203
47204    /// Similar to "send" but does not shutdown the channel if an error occurs.
47205    pub fn send_no_shutdown_on_err(
47206        self,
47207        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47208    ) -> Result<(), fidl::Error> {
47209        let _result = self.send_raw(result);
47210        self.drop_without_shutdown();
47211        _result
47212    }
47213
47214    fn send_raw(
47215        &self,
47216        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47217    ) -> Result<(), fidl::Error> {
47218        self.control_handle.inner.send::<fidl::encoding::ResultType<
47219            fidl::encoding::EmptyStruct,
47220            fidl_fuchsia_posix::Errno,
47221        >>(
47222            result,
47223            self.tx_id,
47224            0x6af077800c5a0b4f,
47225            fidl::encoding::DynamicFlags::empty(),
47226        )
47227    }
47228}
47229
47230#[must_use = "FIDL methods require a response to be sent"]
47231#[derive(Debug)]
47232pub struct DatagramSocketGetIpv6TrafficClassResponder {
47233    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47234    tx_id: u32,
47235}
47236
47237/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47238/// if the responder is dropped without sending a response, so that the client
47239/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47240impl std::ops::Drop for DatagramSocketGetIpv6TrafficClassResponder {
47241    fn drop(&mut self) {
47242        self.control_handle.shutdown();
47243        // Safety: drops once, never accessed again
47244        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47245    }
47246}
47247
47248impl fidl::endpoints::Responder for DatagramSocketGetIpv6TrafficClassResponder {
47249    type ControlHandle = DatagramSocketControlHandle;
47250
47251    fn control_handle(&self) -> &DatagramSocketControlHandle {
47252        &self.control_handle
47253    }
47254
47255    fn drop_without_shutdown(mut self) {
47256        // Safety: drops once, never accessed again due to mem::forget
47257        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47258        // Prevent Drop from running (which would shut down the channel)
47259        std::mem::forget(self);
47260    }
47261}
47262
47263impl DatagramSocketGetIpv6TrafficClassResponder {
47264    /// Sends a response to the FIDL transaction.
47265    ///
47266    /// Sets the channel to shutdown if an error occurs.
47267    pub fn send(
47268        self,
47269        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47270    ) -> Result<(), fidl::Error> {
47271        let _result = self.send_raw(result);
47272        if _result.is_err() {
47273            self.control_handle.shutdown();
47274        }
47275        self.drop_without_shutdown();
47276        _result
47277    }
47278
47279    /// Similar to "send" but does not shutdown the channel if an error occurs.
47280    pub fn send_no_shutdown_on_err(
47281        self,
47282        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47283    ) -> Result<(), fidl::Error> {
47284        let _result = self.send_raw(result);
47285        self.drop_without_shutdown();
47286        _result
47287    }
47288
47289    fn send_raw(
47290        &self,
47291        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
47292    ) -> Result<(), fidl::Error> {
47293        self.control_handle.inner.send::<fidl::encoding::ResultType<
47294            BaseNetworkSocketGetIpv6TrafficClassResponse,
47295            fidl_fuchsia_posix::Errno,
47296        >>(
47297            result.map(|value| (value,)),
47298            self.tx_id,
47299            0x6baf6eed8fc2f04,
47300            fidl::encoding::DynamicFlags::empty(),
47301        )
47302    }
47303}
47304
47305#[must_use = "FIDL methods require a response to be sent"]
47306#[derive(Debug)]
47307pub struct DatagramSocketSetIpv6ReceivePacketInfoResponder {
47308    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47309    tx_id: u32,
47310}
47311
47312/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47313/// if the responder is dropped without sending a response, so that the client
47314/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47315impl std::ops::Drop for DatagramSocketSetIpv6ReceivePacketInfoResponder {
47316    fn drop(&mut self) {
47317        self.control_handle.shutdown();
47318        // Safety: drops once, never accessed again
47319        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47320    }
47321}
47322
47323impl fidl::endpoints::Responder for DatagramSocketSetIpv6ReceivePacketInfoResponder {
47324    type ControlHandle = DatagramSocketControlHandle;
47325
47326    fn control_handle(&self) -> &DatagramSocketControlHandle {
47327        &self.control_handle
47328    }
47329
47330    fn drop_without_shutdown(mut self) {
47331        // Safety: drops once, never accessed again due to mem::forget
47332        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47333        // Prevent Drop from running (which would shut down the channel)
47334        std::mem::forget(self);
47335    }
47336}
47337
47338impl DatagramSocketSetIpv6ReceivePacketInfoResponder {
47339    /// Sends a response to the FIDL transaction.
47340    ///
47341    /// Sets the channel to shutdown if an error occurs.
47342    pub fn send(
47343        self,
47344        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47345    ) -> Result<(), fidl::Error> {
47346        let _result = self.send_raw(result);
47347        if _result.is_err() {
47348            self.control_handle.shutdown();
47349        }
47350        self.drop_without_shutdown();
47351        _result
47352    }
47353
47354    /// Similar to "send" but does not shutdown the channel if an error occurs.
47355    pub fn send_no_shutdown_on_err(
47356        self,
47357        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47358    ) -> Result<(), fidl::Error> {
47359        let _result = self.send_raw(result);
47360        self.drop_without_shutdown();
47361        _result
47362    }
47363
47364    fn send_raw(
47365        &self,
47366        mut result: Result<(), fidl_fuchsia_posix::Errno>,
47367    ) -> Result<(), fidl::Error> {
47368        self.control_handle.inner.send::<fidl::encoding::ResultType<
47369            fidl::encoding::EmptyStruct,
47370            fidl_fuchsia_posix::Errno,
47371        >>(
47372            result,
47373            self.tx_id,
47374            0x19259775b1a92768,
47375            fidl::encoding::DynamicFlags::empty(),
47376        )
47377    }
47378}
47379
47380#[must_use = "FIDL methods require a response to be sent"]
47381#[derive(Debug)]
47382pub struct DatagramSocketGetIpv6ReceivePacketInfoResponder {
47383    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47384    tx_id: u32,
47385}
47386
47387/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47388/// if the responder is dropped without sending a response, so that the client
47389/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47390impl std::ops::Drop for DatagramSocketGetIpv6ReceivePacketInfoResponder {
47391    fn drop(&mut self) {
47392        self.control_handle.shutdown();
47393        // Safety: drops once, never accessed again
47394        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47395    }
47396}
47397
47398impl fidl::endpoints::Responder for DatagramSocketGetIpv6ReceivePacketInfoResponder {
47399    type ControlHandle = DatagramSocketControlHandle;
47400
47401    fn control_handle(&self) -> &DatagramSocketControlHandle {
47402        &self.control_handle
47403    }
47404
47405    fn drop_without_shutdown(mut self) {
47406        // Safety: drops once, never accessed again due to mem::forget
47407        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47408        // Prevent Drop from running (which would shut down the channel)
47409        std::mem::forget(self);
47410    }
47411}
47412
47413impl DatagramSocketGetIpv6ReceivePacketInfoResponder {
47414    /// Sends a response to the FIDL transaction.
47415    ///
47416    /// Sets the channel to shutdown if an error occurs.
47417    pub fn send(
47418        self,
47419        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47420    ) -> Result<(), fidl::Error> {
47421        let _result = self.send_raw(result);
47422        if _result.is_err() {
47423            self.control_handle.shutdown();
47424        }
47425        self.drop_without_shutdown();
47426        _result
47427    }
47428
47429    /// Similar to "send" but does not shutdown the channel if an error occurs.
47430    pub fn send_no_shutdown_on_err(
47431        self,
47432        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47433    ) -> Result<(), fidl::Error> {
47434        let _result = self.send_raw(result);
47435        self.drop_without_shutdown();
47436        _result
47437    }
47438
47439    fn send_raw(
47440        &self,
47441        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
47442    ) -> Result<(), fidl::Error> {
47443        self.control_handle.inner.send::<fidl::encoding::ResultType<
47444            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
47445            fidl_fuchsia_posix::Errno,
47446        >>(
47447            result.map(|value| (value,)),
47448            self.tx_id,
47449            0x7acd4a2775baec75,
47450            fidl::encoding::DynamicFlags::empty(),
47451        )
47452    }
47453}
47454
47455#[must_use = "FIDL methods require a response to be sent"]
47456#[derive(Debug)]
47457pub struct DatagramSocketGetOriginalDestinationResponder {
47458    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47459    tx_id: u32,
47460}
47461
47462/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47463/// if the responder is dropped without sending a response, so that the client
47464/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47465impl std::ops::Drop for DatagramSocketGetOriginalDestinationResponder {
47466    fn drop(&mut self) {
47467        self.control_handle.shutdown();
47468        // Safety: drops once, never accessed again
47469        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47470    }
47471}
47472
47473impl fidl::endpoints::Responder for DatagramSocketGetOriginalDestinationResponder {
47474    type ControlHandle = DatagramSocketControlHandle;
47475
47476    fn control_handle(&self) -> &DatagramSocketControlHandle {
47477        &self.control_handle
47478    }
47479
47480    fn drop_without_shutdown(mut self) {
47481        // Safety: drops once, never accessed again due to mem::forget
47482        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47483        // Prevent Drop from running (which would shut down the channel)
47484        std::mem::forget(self);
47485    }
47486}
47487
47488impl DatagramSocketGetOriginalDestinationResponder {
47489    /// Sends a response to the FIDL transaction.
47490    ///
47491    /// Sets the channel to shutdown if an error occurs.
47492    pub fn send(
47493        self,
47494        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
47495    ) -> Result<(), fidl::Error> {
47496        let _result = self.send_raw(result);
47497        if _result.is_err() {
47498            self.control_handle.shutdown();
47499        }
47500        self.drop_without_shutdown();
47501        _result
47502    }
47503
47504    /// Similar to "send" but does not shutdown the channel if an error occurs.
47505    pub fn send_no_shutdown_on_err(
47506        self,
47507        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
47508    ) -> Result<(), fidl::Error> {
47509        let _result = self.send_raw(result);
47510        self.drop_without_shutdown();
47511        _result
47512    }
47513
47514    fn send_raw(
47515        &self,
47516        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
47517    ) -> Result<(), fidl::Error> {
47518        self.control_handle.inner.send::<fidl::encoding::ResultType<
47519            BaseNetworkSocketGetOriginalDestinationResponse,
47520            fidl_fuchsia_posix::Errno,
47521        >>(
47522            result.map(|value| (value,)),
47523            self.tx_id,
47524            0x38bf28f0dafdbac0,
47525            fidl::encoding::DynamicFlags::empty(),
47526        )
47527    }
47528}
47529
47530#[must_use = "FIDL methods require a response to be sent"]
47531#[derive(Debug)]
47532pub struct DatagramSocketGetInfoResponder {
47533    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47534    tx_id: u32,
47535}
47536
47537/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47538/// if the responder is dropped without sending a response, so that the client
47539/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47540impl std::ops::Drop for DatagramSocketGetInfoResponder {
47541    fn drop(&mut self) {
47542        self.control_handle.shutdown();
47543        // Safety: drops once, never accessed again
47544        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47545    }
47546}
47547
47548impl fidl::endpoints::Responder for DatagramSocketGetInfoResponder {
47549    type ControlHandle = DatagramSocketControlHandle;
47550
47551    fn control_handle(&self) -> &DatagramSocketControlHandle {
47552        &self.control_handle
47553    }
47554
47555    fn drop_without_shutdown(mut self) {
47556        // Safety: drops once, never accessed again due to mem::forget
47557        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47558        // Prevent Drop from running (which would shut down the channel)
47559        std::mem::forget(self);
47560    }
47561}
47562
47563impl DatagramSocketGetInfoResponder {
47564    /// Sends a response to the FIDL transaction.
47565    ///
47566    /// Sets the channel to shutdown if an error occurs.
47567    pub fn send(
47568        self,
47569        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
47570    ) -> Result<(), fidl::Error> {
47571        let _result = self.send_raw(result);
47572        if _result.is_err() {
47573            self.control_handle.shutdown();
47574        }
47575        self.drop_without_shutdown();
47576        _result
47577    }
47578
47579    /// Similar to "send" but does not shutdown the channel if an error occurs.
47580    pub fn send_no_shutdown_on_err(
47581        self,
47582        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
47583    ) -> Result<(), fidl::Error> {
47584        let _result = self.send_raw(result);
47585        self.drop_without_shutdown();
47586        _result
47587    }
47588
47589    fn send_raw(
47590        &self,
47591        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
47592    ) -> Result<(), fidl::Error> {
47593        self.control_handle.inner.send::<fidl::encoding::ResultType<
47594            BaseDatagramSocketGetInfoResponse,
47595            fidl_fuchsia_posix::Errno,
47596        >>(
47597            result,
47598            self.tx_id,
47599            0x48aa0a1f6a32d2ed,
47600            fidl::encoding::DynamicFlags::empty(),
47601        )
47602    }
47603}
47604
47605#[must_use = "FIDL methods require a response to be sent"]
47606#[derive(Debug)]
47607pub struct DatagramSocketDescribeResponder {
47608    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47609    tx_id: u32,
47610}
47611
47612/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47613/// if the responder is dropped without sending a response, so that the client
47614/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47615impl std::ops::Drop for DatagramSocketDescribeResponder {
47616    fn drop(&mut self) {
47617        self.control_handle.shutdown();
47618        // Safety: drops once, never accessed again
47619        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47620    }
47621}
47622
47623impl fidl::endpoints::Responder for DatagramSocketDescribeResponder {
47624    type ControlHandle = DatagramSocketControlHandle;
47625
47626    fn control_handle(&self) -> &DatagramSocketControlHandle {
47627        &self.control_handle
47628    }
47629
47630    fn drop_without_shutdown(mut self) {
47631        // Safety: drops once, never accessed again due to mem::forget
47632        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47633        // Prevent Drop from running (which would shut down the channel)
47634        std::mem::forget(self);
47635    }
47636}
47637
47638impl DatagramSocketDescribeResponder {
47639    /// Sends a response to the FIDL transaction.
47640    ///
47641    /// Sets the channel to shutdown if an error occurs.
47642    pub fn send(self, mut payload: DatagramSocketDescribeResponse) -> Result<(), fidl::Error> {
47643        let _result = self.send_raw(payload);
47644        if _result.is_err() {
47645            self.control_handle.shutdown();
47646        }
47647        self.drop_without_shutdown();
47648        _result
47649    }
47650
47651    /// Similar to "send" but does not shutdown the channel if an error occurs.
47652    pub fn send_no_shutdown_on_err(
47653        self,
47654        mut payload: DatagramSocketDescribeResponse,
47655    ) -> Result<(), fidl::Error> {
47656        let _result = self.send_raw(payload);
47657        self.drop_without_shutdown();
47658        _result
47659    }
47660
47661    fn send_raw(&self, mut payload: DatagramSocketDescribeResponse) -> Result<(), fidl::Error> {
47662        self.control_handle.inner.send::<DatagramSocketDescribeResponse>(
47663            &mut payload,
47664            self.tx_id,
47665            0xbf1e2f0a86601f3,
47666            fidl::encoding::DynamicFlags::empty(),
47667        )
47668    }
47669}
47670
47671#[must_use = "FIDL methods require a response to be sent"]
47672#[derive(Debug)]
47673pub struct DatagramSocketSendMsgPreflightResponder {
47674    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47675    tx_id: u32,
47676}
47677
47678/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47679/// if the responder is dropped without sending a response, so that the client
47680/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47681impl std::ops::Drop for DatagramSocketSendMsgPreflightResponder {
47682    fn drop(&mut self) {
47683        self.control_handle.shutdown();
47684        // Safety: drops once, never accessed again
47685        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47686    }
47687}
47688
47689impl fidl::endpoints::Responder for DatagramSocketSendMsgPreflightResponder {
47690    type ControlHandle = DatagramSocketControlHandle;
47691
47692    fn control_handle(&self) -> &DatagramSocketControlHandle {
47693        &self.control_handle
47694    }
47695
47696    fn drop_without_shutdown(mut self) {
47697        // Safety: drops once, never accessed again due to mem::forget
47698        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47699        // Prevent Drop from running (which would shut down the channel)
47700        std::mem::forget(self);
47701    }
47702}
47703
47704impl DatagramSocketSendMsgPreflightResponder {
47705    /// Sends a response to the FIDL transaction.
47706    ///
47707    /// Sets the channel to shutdown if an error occurs.
47708    pub fn send(
47709        self,
47710        mut result: Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>,
47711    ) -> Result<(), fidl::Error> {
47712        let _result = self.send_raw(result);
47713        if _result.is_err() {
47714            self.control_handle.shutdown();
47715        }
47716        self.drop_without_shutdown();
47717        _result
47718    }
47719
47720    /// Similar to "send" but does not shutdown the channel if an error occurs.
47721    pub fn send_no_shutdown_on_err(
47722        self,
47723        mut result: Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>,
47724    ) -> Result<(), fidl::Error> {
47725        let _result = self.send_raw(result);
47726        self.drop_without_shutdown();
47727        _result
47728    }
47729
47730    fn send_raw(
47731        &self,
47732        mut result: Result<DatagramSocketSendMsgPreflightResponse, fidl_fuchsia_posix::Errno>,
47733    ) -> Result<(), fidl::Error> {
47734        self.control_handle.inner.send::<fidl::encoding::ResultType<
47735            DatagramSocketSendMsgPreflightResponse,
47736            fidl_fuchsia_posix::Errno,
47737        >>(
47738            result.as_mut().map_err(|e| *e),
47739            self.tx_id,
47740            0x5362e668e777248a,
47741            fidl::encoding::DynamicFlags::empty(),
47742        )
47743    }
47744}
47745
47746#[must_use = "FIDL methods require a response to be sent"]
47747#[derive(Debug)]
47748pub struct DatagramSocketRecvMsgPostflightResponder {
47749    control_handle: std::mem::ManuallyDrop<DatagramSocketControlHandle>,
47750    tx_id: u32,
47751}
47752
47753/// Set the the channel to be shutdown (see [`DatagramSocketControlHandle::shutdown`])
47754/// if the responder is dropped without sending a response, so that the client
47755/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
47756impl std::ops::Drop for DatagramSocketRecvMsgPostflightResponder {
47757    fn drop(&mut self) {
47758        self.control_handle.shutdown();
47759        // Safety: drops once, never accessed again
47760        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47761    }
47762}
47763
47764impl fidl::endpoints::Responder for DatagramSocketRecvMsgPostflightResponder {
47765    type ControlHandle = DatagramSocketControlHandle;
47766
47767    fn control_handle(&self) -> &DatagramSocketControlHandle {
47768        &self.control_handle
47769    }
47770
47771    fn drop_without_shutdown(mut self) {
47772        // Safety: drops once, never accessed again due to mem::forget
47773        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
47774        // Prevent Drop from running (which would shut down the channel)
47775        std::mem::forget(self);
47776    }
47777}
47778
47779impl DatagramSocketRecvMsgPostflightResponder {
47780    /// Sends a response to the FIDL transaction.
47781    ///
47782    /// Sets the channel to shutdown if an error occurs.
47783    pub fn send(
47784        self,
47785        mut result: Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>,
47786    ) -> Result<(), fidl::Error> {
47787        let _result = self.send_raw(result);
47788        if _result.is_err() {
47789            self.control_handle.shutdown();
47790        }
47791        self.drop_without_shutdown();
47792        _result
47793    }
47794
47795    /// Similar to "send" but does not shutdown the channel if an error occurs.
47796    pub fn send_no_shutdown_on_err(
47797        self,
47798        mut result: Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>,
47799    ) -> Result<(), fidl::Error> {
47800        let _result = self.send_raw(result);
47801        self.drop_without_shutdown();
47802        _result
47803    }
47804
47805    fn send_raw(
47806        &self,
47807        mut result: Result<DatagramSocketRecvMsgPostflightResponse, fidl_fuchsia_posix::Errno>,
47808    ) -> Result<(), fidl::Error> {
47809        self.control_handle.inner.send::<fidl::encoding::ResultType<
47810            DatagramSocketRecvMsgPostflightResponse,
47811            fidl_fuchsia_posix::Errno,
47812        >>(
47813            result.as_mut().map_err(|e| *e),
47814            self.tx_id,
47815            0x1a7cdeca5f3eb8e2,
47816            fidl::encoding::DynamicFlags::empty(),
47817        )
47818    }
47819}
47820
47821#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
47822pub struct ProviderMarker;
47823
47824impl fidl::endpoints::ProtocolMarker for ProviderMarker {
47825    type Proxy = ProviderProxy;
47826    type RequestStream = ProviderRequestStream;
47827    #[cfg(target_os = "fuchsia")]
47828    type SynchronousProxy = ProviderSynchronousProxy;
47829
47830    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.Provider";
47831}
47832impl fidl::endpoints::DiscoverableProtocolMarker for ProviderMarker {}
47833pub type ProviderStreamSocketWithOptionsResult =
47834    Result<fidl::endpoints::ClientEnd<StreamSocketMarker>, fidl_fuchsia_posix::Errno>;
47835pub type ProviderStreamSocketResult =
47836    Result<fidl::endpoints::ClientEnd<StreamSocketMarker>, fidl_fuchsia_posix::Errno>;
47837pub type ProviderDatagramSocketDeprecatedResult =
47838    Result<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>, fidl_fuchsia_posix::Errno>;
47839pub type ProviderDatagramSocketResult =
47840    Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>;
47841pub type ProviderDatagramSocketWithOptionsResult =
47842    Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>;
47843pub type ProviderInterfaceIndexToNameResult = Result<String, i32>;
47844pub type ProviderInterfaceNameToIndexResult = Result<u64, i32>;
47845pub type ProviderInterfaceNameToFlagsResult = Result<InterfaceFlags, i32>;
47846
47847pub trait ProviderProxyInterface: Send + Sync {
47848    type StreamSocketWithOptionsResponseFut: std::future::Future<Output = Result<ProviderStreamSocketWithOptionsResult, fidl::Error>>
47849        + Send;
47850    fn r#stream_socket_with_options(
47851        &self,
47852        domain: Domain,
47853        proto: StreamSocketProtocol,
47854        opts: SocketCreationOptions,
47855    ) -> Self::StreamSocketWithOptionsResponseFut;
47856    type StreamSocketResponseFut: std::future::Future<Output = Result<ProviderStreamSocketResult, fidl::Error>>
47857        + Send;
47858    fn r#stream_socket(
47859        &self,
47860        domain: Domain,
47861        proto: StreamSocketProtocol,
47862    ) -> Self::StreamSocketResponseFut;
47863    type DatagramSocketDeprecatedResponseFut: std::future::Future<Output = Result<ProviderDatagramSocketDeprecatedResult, fidl::Error>>
47864        + Send;
47865    fn r#datagram_socket_deprecated(
47866        &self,
47867        domain: Domain,
47868        proto: DatagramSocketProtocol,
47869    ) -> Self::DatagramSocketDeprecatedResponseFut;
47870    type DatagramSocketResponseFut: std::future::Future<Output = Result<ProviderDatagramSocketResult, fidl::Error>>
47871        + Send;
47872    fn r#datagram_socket(
47873        &self,
47874        domain: Domain,
47875        proto: DatagramSocketProtocol,
47876    ) -> Self::DatagramSocketResponseFut;
47877    type DatagramSocketWithOptionsResponseFut: std::future::Future<Output = Result<ProviderDatagramSocketWithOptionsResult, fidl::Error>>
47878        + Send;
47879    fn r#datagram_socket_with_options(
47880        &self,
47881        domain: Domain,
47882        proto: DatagramSocketProtocol,
47883        opts: SocketCreationOptions,
47884    ) -> Self::DatagramSocketWithOptionsResponseFut;
47885    type InterfaceIndexToNameResponseFut: std::future::Future<Output = Result<ProviderInterfaceIndexToNameResult, fidl::Error>>
47886        + Send;
47887    fn r#interface_index_to_name(&self, index: u64) -> Self::InterfaceIndexToNameResponseFut;
47888    type InterfaceNameToIndexResponseFut: std::future::Future<Output = Result<ProviderInterfaceNameToIndexResult, fidl::Error>>
47889        + Send;
47890    fn r#interface_name_to_index(&self, name: &str) -> Self::InterfaceNameToIndexResponseFut;
47891    type InterfaceNameToFlagsResponseFut: std::future::Future<Output = Result<ProviderInterfaceNameToFlagsResult, fidl::Error>>
47892        + Send;
47893    fn r#interface_name_to_flags(&self, name: &str) -> Self::InterfaceNameToFlagsResponseFut;
47894    type GetInterfaceAddressesResponseFut: std::future::Future<Output = Result<Vec<InterfaceAddresses>, fidl::Error>>
47895        + Send;
47896    fn r#get_interface_addresses(&self) -> Self::GetInterfaceAddressesResponseFut;
47897}
47898#[derive(Debug)]
47899#[cfg(target_os = "fuchsia")]
47900pub struct ProviderSynchronousProxy {
47901    client: fidl::client::sync::Client,
47902}
47903
47904#[cfg(target_os = "fuchsia")]
47905impl fidl::endpoints::SynchronousProxy for ProviderSynchronousProxy {
47906    type Proxy = ProviderProxy;
47907    type Protocol = ProviderMarker;
47908
47909    fn from_channel(inner: fidl::Channel) -> Self {
47910        Self::new(inner)
47911    }
47912
47913    fn into_channel(self) -> fidl::Channel {
47914        self.client.into_channel()
47915    }
47916
47917    fn as_channel(&self) -> &fidl::Channel {
47918        self.client.as_channel()
47919    }
47920}
47921
47922#[cfg(target_os = "fuchsia")]
47923impl ProviderSynchronousProxy {
47924    pub fn new(channel: fidl::Channel) -> Self {
47925        let protocol_name = <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
47926        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
47927    }
47928
47929    pub fn into_channel(self) -> fidl::Channel {
47930        self.client.into_channel()
47931    }
47932
47933    /// Waits until an event arrives and returns it. It is safe for other
47934    /// threads to make concurrent requests while waiting for an event.
47935    pub fn wait_for_event(
47936        &self,
47937        deadline: zx::MonotonicInstant,
47938    ) -> Result<ProviderEvent, fidl::Error> {
47939        ProviderEvent::decode(self.client.wait_for_event(deadline)?)
47940    }
47941
47942    /// Requests a stream socket with the specified parameters and the creation
47943    /// options.
47944    pub fn r#stream_socket_with_options(
47945        &self,
47946        mut domain: Domain,
47947        mut proto: StreamSocketProtocol,
47948        mut opts: SocketCreationOptions,
47949        ___deadline: zx::MonotonicInstant,
47950    ) -> Result<ProviderStreamSocketWithOptionsResult, fidl::Error> {
47951        let _response = self
47952            .client
47953            .send_query::<ProviderStreamSocketWithOptionsRequest, fidl::encoding::ResultType<
47954                ProviderStreamSocketWithOptionsResponse,
47955                fidl_fuchsia_posix::Errno,
47956            >>(
47957                (domain, proto, &mut opts),
47958                0x3969bf7eb78386e0,
47959                fidl::encoding::DynamicFlags::empty(),
47960                ___deadline,
47961            )?;
47962        Ok(_response.map(|x| x.s))
47963    }
47964
47965    /// Requests a stream socket with the specified parameters.
47966    pub fn r#stream_socket(
47967        &self,
47968        mut domain: Domain,
47969        mut proto: StreamSocketProtocol,
47970        ___deadline: zx::MonotonicInstant,
47971    ) -> Result<ProviderStreamSocketResult, fidl::Error> {
47972        let _response =
47973            self.client.send_query::<ProviderStreamSocketRequest, fidl::encoding::ResultType<
47974                ProviderStreamSocketResponse,
47975                fidl_fuchsia_posix::Errno,
47976            >>(
47977                (domain, proto),
47978                0x27c3581da2155545,
47979                fidl::encoding::DynamicFlags::empty(),
47980                ___deadline,
47981            )?;
47982        Ok(_response.map(|x| x.s))
47983    }
47984
47985    /// Requests a datagram socket with the specified parameters.
47986    /// TODO(https://fxbug.dev/42165881): Remove this method once no more callers rely on it.
47987    pub fn r#datagram_socket_deprecated(
47988        &self,
47989        mut domain: Domain,
47990        mut proto: DatagramSocketProtocol,
47991        ___deadline: zx::MonotonicInstant,
47992    ) -> Result<ProviderDatagramSocketDeprecatedResult, fidl::Error> {
47993        let _response = self
47994            .client
47995            .send_query::<ProviderDatagramSocketDeprecatedRequest, fidl::encoding::ResultType<
47996                ProviderDatagramSocketDeprecatedResponse,
47997                fidl_fuchsia_posix::Errno,
47998            >>(
47999                (domain, proto),
48000                0x38876c87cf031cb1,
48001                fidl::encoding::DynamicFlags::empty(),
48002                ___deadline,
48003            )?;
48004        Ok(_response.map(|x| x.s))
48005    }
48006
48007    /// Requests a datagram socket with the specified parameters.
48008    pub fn r#datagram_socket(
48009        &self,
48010        mut domain: Domain,
48011        mut proto: DatagramSocketProtocol,
48012        ___deadline: zx::MonotonicInstant,
48013    ) -> Result<ProviderDatagramSocketResult, fidl::Error> {
48014        let _response =
48015            self.client.send_query::<ProviderDatagramSocketRequest, fidl::encoding::ResultType<
48016                ProviderDatagramSocketResponse,
48017                fidl_fuchsia_posix::Errno,
48018            >>(
48019                (domain, proto),
48020                0x4021b4fa1b6452f2,
48021                fidl::encoding::DynamicFlags::empty(),
48022                ___deadline,
48023            )?;
48024        Ok(_response.map(|x| x))
48025    }
48026
48027    /// Requests a datagram socket with the specified parameters and the creation
48028    /// options.
48029    pub fn r#datagram_socket_with_options(
48030        &self,
48031        mut domain: Domain,
48032        mut proto: DatagramSocketProtocol,
48033        mut opts: SocketCreationOptions,
48034        ___deadline: zx::MonotonicInstant,
48035    ) -> Result<ProviderDatagramSocketWithOptionsResult, fidl::Error> {
48036        let _response = self
48037            .client
48038            .send_query::<ProviderDatagramSocketWithOptionsRequest, fidl::encoding::ResultType<
48039                ProviderDatagramSocketWithOptionsResponse,
48040                fidl_fuchsia_posix::Errno,
48041            >>(
48042                (domain, proto, &mut opts),
48043                0x4cd0cffbffa39eb1,
48044                fidl::encoding::DynamicFlags::empty(),
48045                ___deadline,
48046            )?;
48047        Ok(_response.map(|x| x))
48048    }
48049
48050    /// Looks up an interface by its index and returns its name. Returns
48051    /// `ZX_ERR_NOT_FOUND` if the specified index doesn't exist.
48052    pub fn r#interface_index_to_name(
48053        &self,
48054        mut index: u64,
48055        ___deadline: zx::MonotonicInstant,
48056    ) -> Result<ProviderInterfaceIndexToNameResult, fidl::Error> {
48057        let _response = self.client.send_query::<
48058            ProviderInterfaceIndexToNameRequest,
48059            fidl::encoding::ResultType<ProviderInterfaceIndexToNameResponse, i32>,
48060        >(
48061            (index,),
48062            0x4d59a64fce98272f,
48063            fidl::encoding::DynamicFlags::empty(),
48064            ___deadline,
48065        )?;
48066        Ok(_response.map(|x| x.name))
48067    }
48068
48069    /// Looks up an interface by its name and returns its index. Returns
48070    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48071    pub fn r#interface_name_to_index(
48072        &self,
48073        mut name: &str,
48074        ___deadline: zx::MonotonicInstant,
48075    ) -> Result<ProviderInterfaceNameToIndexResult, fidl::Error> {
48076        let _response = self.client.send_query::<
48077            ProviderInterfaceNameToIndexRequest,
48078            fidl::encoding::ResultType<ProviderInterfaceNameToIndexResponse, i32>,
48079        >(
48080            (name,),
48081            0x690cd8d2f2d650f8,
48082            fidl::encoding::DynamicFlags::empty(),
48083            ___deadline,
48084        )?;
48085        Ok(_response.map(|x| x.index))
48086    }
48087
48088    /// Looks up an interface by its name and returns its flags. Returns
48089    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48090    pub fn r#interface_name_to_flags(
48091        &self,
48092        mut name: &str,
48093        ___deadline: zx::MonotonicInstant,
48094    ) -> Result<ProviderInterfaceNameToFlagsResult, fidl::Error> {
48095        let _response = self.client.send_query::<
48096            ProviderInterfaceNameToFlagsRequest,
48097            fidl::encoding::ResultType<ProviderInterfaceNameToFlagsResponse, i32>,
48098        >(
48099            (name,),
48100            0x25d0efcdb6671a0b,
48101            fidl::encoding::DynamicFlags::empty(),
48102            ___deadline,
48103        )?;
48104        Ok(_response.map(|x| x.flags))
48105    }
48106
48107    /// Requests a list of [`fuchsia.posix.socket.InterfaceAddresses`]
48108    /// describing the network interfaces on the system.
48109    pub fn r#get_interface_addresses(
48110        &self,
48111        ___deadline: zx::MonotonicInstant,
48112    ) -> Result<Vec<InterfaceAddresses>, fidl::Error> {
48113        let _response = self
48114            .client
48115            .send_query::<fidl::encoding::EmptyPayload, ProviderGetInterfaceAddressesResponse>(
48116                (),
48117                0x2e7b9aaf327c870,
48118                fidl::encoding::DynamicFlags::empty(),
48119                ___deadline,
48120            )?;
48121        Ok(_response.interfaces)
48122    }
48123}
48124
48125#[cfg(target_os = "fuchsia")]
48126impl From<ProviderSynchronousProxy> for zx::Handle {
48127    fn from(value: ProviderSynchronousProxy) -> Self {
48128        value.into_channel().into()
48129    }
48130}
48131
48132#[cfg(target_os = "fuchsia")]
48133impl From<fidl::Channel> for ProviderSynchronousProxy {
48134    fn from(value: fidl::Channel) -> Self {
48135        Self::new(value)
48136    }
48137}
48138
48139#[cfg(target_os = "fuchsia")]
48140impl fidl::endpoints::FromClient for ProviderSynchronousProxy {
48141    type Protocol = ProviderMarker;
48142
48143    fn from_client(value: fidl::endpoints::ClientEnd<ProviderMarker>) -> Self {
48144        Self::new(value.into_channel())
48145    }
48146}
48147
48148#[derive(Debug, Clone)]
48149pub struct ProviderProxy {
48150    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
48151}
48152
48153impl fidl::endpoints::Proxy for ProviderProxy {
48154    type Protocol = ProviderMarker;
48155
48156    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
48157        Self::new(inner)
48158    }
48159
48160    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
48161        self.client.into_channel().map_err(|client| Self { client })
48162    }
48163
48164    fn as_channel(&self) -> &::fidl::AsyncChannel {
48165        self.client.as_channel()
48166    }
48167}
48168
48169impl ProviderProxy {
48170    /// Create a new Proxy for fuchsia.posix.socket/Provider.
48171    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
48172        let protocol_name = <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
48173        Self { client: fidl::client::Client::new(channel, protocol_name) }
48174    }
48175
48176    /// Get a Stream of events from the remote end of the protocol.
48177    ///
48178    /// # Panics
48179    ///
48180    /// Panics if the event stream was already taken.
48181    pub fn take_event_stream(&self) -> ProviderEventStream {
48182        ProviderEventStream { event_receiver: self.client.take_event_receiver() }
48183    }
48184
48185    /// Requests a stream socket with the specified parameters and the creation
48186    /// options.
48187    pub fn r#stream_socket_with_options(
48188        &self,
48189        mut domain: Domain,
48190        mut proto: StreamSocketProtocol,
48191        mut opts: SocketCreationOptions,
48192    ) -> fidl::client::QueryResponseFut<
48193        ProviderStreamSocketWithOptionsResult,
48194        fidl::encoding::DefaultFuchsiaResourceDialect,
48195    > {
48196        ProviderProxyInterface::r#stream_socket_with_options(self, domain, proto, opts)
48197    }
48198
48199    /// Requests a stream socket with the specified parameters.
48200    pub fn r#stream_socket(
48201        &self,
48202        mut domain: Domain,
48203        mut proto: StreamSocketProtocol,
48204    ) -> fidl::client::QueryResponseFut<
48205        ProviderStreamSocketResult,
48206        fidl::encoding::DefaultFuchsiaResourceDialect,
48207    > {
48208        ProviderProxyInterface::r#stream_socket(self, domain, proto)
48209    }
48210
48211    /// Requests a datagram socket with the specified parameters.
48212    /// TODO(https://fxbug.dev/42165881): Remove this method once no more callers rely on it.
48213    pub fn r#datagram_socket_deprecated(
48214        &self,
48215        mut domain: Domain,
48216        mut proto: DatagramSocketProtocol,
48217    ) -> fidl::client::QueryResponseFut<
48218        ProviderDatagramSocketDeprecatedResult,
48219        fidl::encoding::DefaultFuchsiaResourceDialect,
48220    > {
48221        ProviderProxyInterface::r#datagram_socket_deprecated(self, domain, proto)
48222    }
48223
48224    /// Requests a datagram socket with the specified parameters.
48225    pub fn r#datagram_socket(
48226        &self,
48227        mut domain: Domain,
48228        mut proto: DatagramSocketProtocol,
48229    ) -> fidl::client::QueryResponseFut<
48230        ProviderDatagramSocketResult,
48231        fidl::encoding::DefaultFuchsiaResourceDialect,
48232    > {
48233        ProviderProxyInterface::r#datagram_socket(self, domain, proto)
48234    }
48235
48236    /// Requests a datagram socket with the specified parameters and the creation
48237    /// options.
48238    pub fn r#datagram_socket_with_options(
48239        &self,
48240        mut domain: Domain,
48241        mut proto: DatagramSocketProtocol,
48242        mut opts: SocketCreationOptions,
48243    ) -> fidl::client::QueryResponseFut<
48244        ProviderDatagramSocketWithOptionsResult,
48245        fidl::encoding::DefaultFuchsiaResourceDialect,
48246    > {
48247        ProviderProxyInterface::r#datagram_socket_with_options(self, domain, proto, opts)
48248    }
48249
48250    /// Looks up an interface by its index and returns its name. Returns
48251    /// `ZX_ERR_NOT_FOUND` if the specified index doesn't exist.
48252    pub fn r#interface_index_to_name(
48253        &self,
48254        mut index: u64,
48255    ) -> fidl::client::QueryResponseFut<
48256        ProviderInterfaceIndexToNameResult,
48257        fidl::encoding::DefaultFuchsiaResourceDialect,
48258    > {
48259        ProviderProxyInterface::r#interface_index_to_name(self, index)
48260    }
48261
48262    /// Looks up an interface by its name and returns its index. Returns
48263    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48264    pub fn r#interface_name_to_index(
48265        &self,
48266        mut name: &str,
48267    ) -> fidl::client::QueryResponseFut<
48268        ProviderInterfaceNameToIndexResult,
48269        fidl::encoding::DefaultFuchsiaResourceDialect,
48270    > {
48271        ProviderProxyInterface::r#interface_name_to_index(self, name)
48272    }
48273
48274    /// Looks up an interface by its name and returns its flags. Returns
48275    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48276    pub fn r#interface_name_to_flags(
48277        &self,
48278        mut name: &str,
48279    ) -> fidl::client::QueryResponseFut<
48280        ProviderInterfaceNameToFlagsResult,
48281        fidl::encoding::DefaultFuchsiaResourceDialect,
48282    > {
48283        ProviderProxyInterface::r#interface_name_to_flags(self, name)
48284    }
48285
48286    /// Requests a list of [`fuchsia.posix.socket.InterfaceAddresses`]
48287    /// describing the network interfaces on the system.
48288    pub fn r#get_interface_addresses(
48289        &self,
48290    ) -> fidl::client::QueryResponseFut<
48291        Vec<InterfaceAddresses>,
48292        fidl::encoding::DefaultFuchsiaResourceDialect,
48293    > {
48294        ProviderProxyInterface::r#get_interface_addresses(self)
48295    }
48296}
48297
48298impl ProviderProxyInterface for ProviderProxy {
48299    type StreamSocketWithOptionsResponseFut = fidl::client::QueryResponseFut<
48300        ProviderStreamSocketWithOptionsResult,
48301        fidl::encoding::DefaultFuchsiaResourceDialect,
48302    >;
48303    fn r#stream_socket_with_options(
48304        &self,
48305        mut domain: Domain,
48306        mut proto: StreamSocketProtocol,
48307        mut opts: SocketCreationOptions,
48308    ) -> Self::StreamSocketWithOptionsResponseFut {
48309        fn _decode(
48310            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48311        ) -> Result<ProviderStreamSocketWithOptionsResult, fidl::Error> {
48312            let _response = fidl::client::decode_transaction_body::<
48313                fidl::encoding::ResultType<
48314                    ProviderStreamSocketWithOptionsResponse,
48315                    fidl_fuchsia_posix::Errno,
48316                >,
48317                fidl::encoding::DefaultFuchsiaResourceDialect,
48318                0x3969bf7eb78386e0,
48319            >(_buf?)?;
48320            Ok(_response.map(|x| x.s))
48321        }
48322        self.client.send_query_and_decode::<
48323            ProviderStreamSocketWithOptionsRequest,
48324            ProviderStreamSocketWithOptionsResult,
48325        >(
48326            (domain, proto, &mut opts,),
48327            0x3969bf7eb78386e0,
48328            fidl::encoding::DynamicFlags::empty(),
48329            _decode,
48330        )
48331    }
48332
48333    type StreamSocketResponseFut = fidl::client::QueryResponseFut<
48334        ProviderStreamSocketResult,
48335        fidl::encoding::DefaultFuchsiaResourceDialect,
48336    >;
48337    fn r#stream_socket(
48338        &self,
48339        mut domain: Domain,
48340        mut proto: StreamSocketProtocol,
48341    ) -> Self::StreamSocketResponseFut {
48342        fn _decode(
48343            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48344        ) -> Result<ProviderStreamSocketResult, fidl::Error> {
48345            let _response = fidl::client::decode_transaction_body::<
48346                fidl::encoding::ResultType<ProviderStreamSocketResponse, fidl_fuchsia_posix::Errno>,
48347                fidl::encoding::DefaultFuchsiaResourceDialect,
48348                0x27c3581da2155545,
48349            >(_buf?)?;
48350            Ok(_response.map(|x| x.s))
48351        }
48352        self.client
48353            .send_query_and_decode::<ProviderStreamSocketRequest, ProviderStreamSocketResult>(
48354                (domain, proto),
48355                0x27c3581da2155545,
48356                fidl::encoding::DynamicFlags::empty(),
48357                _decode,
48358            )
48359    }
48360
48361    type DatagramSocketDeprecatedResponseFut = fidl::client::QueryResponseFut<
48362        ProviderDatagramSocketDeprecatedResult,
48363        fidl::encoding::DefaultFuchsiaResourceDialect,
48364    >;
48365    fn r#datagram_socket_deprecated(
48366        &self,
48367        mut domain: Domain,
48368        mut proto: DatagramSocketProtocol,
48369    ) -> Self::DatagramSocketDeprecatedResponseFut {
48370        fn _decode(
48371            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48372        ) -> Result<ProviderDatagramSocketDeprecatedResult, fidl::Error> {
48373            let _response = fidl::client::decode_transaction_body::<
48374                fidl::encoding::ResultType<
48375                    ProviderDatagramSocketDeprecatedResponse,
48376                    fidl_fuchsia_posix::Errno,
48377                >,
48378                fidl::encoding::DefaultFuchsiaResourceDialect,
48379                0x38876c87cf031cb1,
48380            >(_buf?)?;
48381            Ok(_response.map(|x| x.s))
48382        }
48383        self.client.send_query_and_decode::<
48384            ProviderDatagramSocketDeprecatedRequest,
48385            ProviderDatagramSocketDeprecatedResult,
48386        >(
48387            (domain, proto,),
48388            0x38876c87cf031cb1,
48389            fidl::encoding::DynamicFlags::empty(),
48390            _decode,
48391        )
48392    }
48393
48394    type DatagramSocketResponseFut = fidl::client::QueryResponseFut<
48395        ProviderDatagramSocketResult,
48396        fidl::encoding::DefaultFuchsiaResourceDialect,
48397    >;
48398    fn r#datagram_socket(
48399        &self,
48400        mut domain: Domain,
48401        mut proto: DatagramSocketProtocol,
48402    ) -> Self::DatagramSocketResponseFut {
48403        fn _decode(
48404            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48405        ) -> Result<ProviderDatagramSocketResult, fidl::Error> {
48406            let _response = fidl::client::decode_transaction_body::<
48407                fidl::encoding::ResultType<
48408                    ProviderDatagramSocketResponse,
48409                    fidl_fuchsia_posix::Errno,
48410                >,
48411                fidl::encoding::DefaultFuchsiaResourceDialect,
48412                0x4021b4fa1b6452f2,
48413            >(_buf?)?;
48414            Ok(_response.map(|x| x))
48415        }
48416        self.client
48417            .send_query_and_decode::<ProviderDatagramSocketRequest, ProviderDatagramSocketResult>(
48418                (domain, proto),
48419                0x4021b4fa1b6452f2,
48420                fidl::encoding::DynamicFlags::empty(),
48421                _decode,
48422            )
48423    }
48424
48425    type DatagramSocketWithOptionsResponseFut = fidl::client::QueryResponseFut<
48426        ProviderDatagramSocketWithOptionsResult,
48427        fidl::encoding::DefaultFuchsiaResourceDialect,
48428    >;
48429    fn r#datagram_socket_with_options(
48430        &self,
48431        mut domain: Domain,
48432        mut proto: DatagramSocketProtocol,
48433        mut opts: SocketCreationOptions,
48434    ) -> Self::DatagramSocketWithOptionsResponseFut {
48435        fn _decode(
48436            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48437        ) -> Result<ProviderDatagramSocketWithOptionsResult, fidl::Error> {
48438            let _response = fidl::client::decode_transaction_body::<
48439                fidl::encoding::ResultType<
48440                    ProviderDatagramSocketWithOptionsResponse,
48441                    fidl_fuchsia_posix::Errno,
48442                >,
48443                fidl::encoding::DefaultFuchsiaResourceDialect,
48444                0x4cd0cffbffa39eb1,
48445            >(_buf?)?;
48446            Ok(_response.map(|x| x))
48447        }
48448        self.client.send_query_and_decode::<
48449            ProviderDatagramSocketWithOptionsRequest,
48450            ProviderDatagramSocketWithOptionsResult,
48451        >(
48452            (domain, proto, &mut opts,),
48453            0x4cd0cffbffa39eb1,
48454            fidl::encoding::DynamicFlags::empty(),
48455            _decode,
48456        )
48457    }
48458
48459    type InterfaceIndexToNameResponseFut = fidl::client::QueryResponseFut<
48460        ProviderInterfaceIndexToNameResult,
48461        fidl::encoding::DefaultFuchsiaResourceDialect,
48462    >;
48463    fn r#interface_index_to_name(&self, mut index: u64) -> Self::InterfaceIndexToNameResponseFut {
48464        fn _decode(
48465            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48466        ) -> Result<ProviderInterfaceIndexToNameResult, fidl::Error> {
48467            let _response = fidl::client::decode_transaction_body::<
48468                fidl::encoding::ResultType<ProviderInterfaceIndexToNameResponse, i32>,
48469                fidl::encoding::DefaultFuchsiaResourceDialect,
48470                0x4d59a64fce98272f,
48471            >(_buf?)?;
48472            Ok(_response.map(|x| x.name))
48473        }
48474        self.client.send_query_and_decode::<
48475            ProviderInterfaceIndexToNameRequest,
48476            ProviderInterfaceIndexToNameResult,
48477        >(
48478            (index,),
48479            0x4d59a64fce98272f,
48480            fidl::encoding::DynamicFlags::empty(),
48481            _decode,
48482        )
48483    }
48484
48485    type InterfaceNameToIndexResponseFut = fidl::client::QueryResponseFut<
48486        ProviderInterfaceNameToIndexResult,
48487        fidl::encoding::DefaultFuchsiaResourceDialect,
48488    >;
48489    fn r#interface_name_to_index(&self, mut name: &str) -> Self::InterfaceNameToIndexResponseFut {
48490        fn _decode(
48491            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48492        ) -> Result<ProviderInterfaceNameToIndexResult, fidl::Error> {
48493            let _response = fidl::client::decode_transaction_body::<
48494                fidl::encoding::ResultType<ProviderInterfaceNameToIndexResponse, i32>,
48495                fidl::encoding::DefaultFuchsiaResourceDialect,
48496                0x690cd8d2f2d650f8,
48497            >(_buf?)?;
48498            Ok(_response.map(|x| x.index))
48499        }
48500        self.client.send_query_and_decode::<
48501            ProviderInterfaceNameToIndexRequest,
48502            ProviderInterfaceNameToIndexResult,
48503        >(
48504            (name,),
48505            0x690cd8d2f2d650f8,
48506            fidl::encoding::DynamicFlags::empty(),
48507            _decode,
48508        )
48509    }
48510
48511    type InterfaceNameToFlagsResponseFut = fidl::client::QueryResponseFut<
48512        ProviderInterfaceNameToFlagsResult,
48513        fidl::encoding::DefaultFuchsiaResourceDialect,
48514    >;
48515    fn r#interface_name_to_flags(&self, mut name: &str) -> Self::InterfaceNameToFlagsResponseFut {
48516        fn _decode(
48517            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48518        ) -> Result<ProviderInterfaceNameToFlagsResult, fidl::Error> {
48519            let _response = fidl::client::decode_transaction_body::<
48520                fidl::encoding::ResultType<ProviderInterfaceNameToFlagsResponse, i32>,
48521                fidl::encoding::DefaultFuchsiaResourceDialect,
48522                0x25d0efcdb6671a0b,
48523            >(_buf?)?;
48524            Ok(_response.map(|x| x.flags))
48525        }
48526        self.client.send_query_and_decode::<
48527            ProviderInterfaceNameToFlagsRequest,
48528            ProviderInterfaceNameToFlagsResult,
48529        >(
48530            (name,),
48531            0x25d0efcdb6671a0b,
48532            fidl::encoding::DynamicFlags::empty(),
48533            _decode,
48534        )
48535    }
48536
48537    type GetInterfaceAddressesResponseFut = fidl::client::QueryResponseFut<
48538        Vec<InterfaceAddresses>,
48539        fidl::encoding::DefaultFuchsiaResourceDialect,
48540    >;
48541    fn r#get_interface_addresses(&self) -> Self::GetInterfaceAddressesResponseFut {
48542        fn _decode(
48543            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
48544        ) -> Result<Vec<InterfaceAddresses>, fidl::Error> {
48545            let _response = fidl::client::decode_transaction_body::<
48546                ProviderGetInterfaceAddressesResponse,
48547                fidl::encoding::DefaultFuchsiaResourceDialect,
48548                0x2e7b9aaf327c870,
48549            >(_buf?)?;
48550            Ok(_response.interfaces)
48551        }
48552        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<InterfaceAddresses>>(
48553            (),
48554            0x2e7b9aaf327c870,
48555            fidl::encoding::DynamicFlags::empty(),
48556            _decode,
48557        )
48558    }
48559}
48560
48561pub struct ProviderEventStream {
48562    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
48563}
48564
48565impl std::marker::Unpin for ProviderEventStream {}
48566
48567impl futures::stream::FusedStream for ProviderEventStream {
48568    fn is_terminated(&self) -> bool {
48569        self.event_receiver.is_terminated()
48570    }
48571}
48572
48573impl futures::Stream for ProviderEventStream {
48574    type Item = Result<ProviderEvent, fidl::Error>;
48575
48576    fn poll_next(
48577        mut self: std::pin::Pin<&mut Self>,
48578        cx: &mut std::task::Context<'_>,
48579    ) -> std::task::Poll<Option<Self::Item>> {
48580        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
48581            &mut self.event_receiver,
48582            cx
48583        )?) {
48584            Some(buf) => std::task::Poll::Ready(Some(ProviderEvent::decode(buf))),
48585            None => std::task::Poll::Ready(None),
48586        }
48587    }
48588}
48589
48590#[derive(Debug)]
48591pub enum ProviderEvent {}
48592
48593impl ProviderEvent {
48594    /// Decodes a message buffer as a [`ProviderEvent`].
48595    fn decode(
48596        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
48597    ) -> Result<ProviderEvent, fidl::Error> {
48598        let (bytes, _handles) = buf.split_mut();
48599        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
48600        debug_assert_eq!(tx_header.tx_id, 0);
48601        match tx_header.ordinal {
48602            _ => Err(fidl::Error::UnknownOrdinal {
48603                ordinal: tx_header.ordinal,
48604                protocol_name: <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
48605            }),
48606        }
48607    }
48608}
48609
48610/// A Stream of incoming requests for fuchsia.posix.socket/Provider.
48611pub struct ProviderRequestStream {
48612    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
48613    is_terminated: bool,
48614}
48615
48616impl std::marker::Unpin for ProviderRequestStream {}
48617
48618impl futures::stream::FusedStream for ProviderRequestStream {
48619    fn is_terminated(&self) -> bool {
48620        self.is_terminated
48621    }
48622}
48623
48624impl fidl::endpoints::RequestStream for ProviderRequestStream {
48625    type Protocol = ProviderMarker;
48626    type ControlHandle = ProviderControlHandle;
48627
48628    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
48629        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
48630    }
48631
48632    fn control_handle(&self) -> Self::ControlHandle {
48633        ProviderControlHandle { inner: self.inner.clone() }
48634    }
48635
48636    fn into_inner(
48637        self,
48638    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
48639    {
48640        (self.inner, self.is_terminated)
48641    }
48642
48643    fn from_inner(
48644        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
48645        is_terminated: bool,
48646    ) -> Self {
48647        Self { inner, is_terminated }
48648    }
48649}
48650
48651impl futures::Stream for ProviderRequestStream {
48652    type Item = Result<ProviderRequest, fidl::Error>;
48653
48654    fn poll_next(
48655        mut self: std::pin::Pin<&mut Self>,
48656        cx: &mut std::task::Context<'_>,
48657    ) -> std::task::Poll<Option<Self::Item>> {
48658        let this = &mut *self;
48659        if this.inner.check_shutdown(cx) {
48660            this.is_terminated = true;
48661            return std::task::Poll::Ready(None);
48662        }
48663        if this.is_terminated {
48664            panic!("polled ProviderRequestStream after completion");
48665        }
48666        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
48667            |bytes, handles| {
48668                match this.inner.channel().read_etc(cx, bytes, handles) {
48669                    std::task::Poll::Ready(Ok(())) => {}
48670                    std::task::Poll::Pending => return std::task::Poll::Pending,
48671                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
48672                        this.is_terminated = true;
48673                        return std::task::Poll::Ready(None);
48674                    }
48675                    std::task::Poll::Ready(Err(e)) => {
48676                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
48677                            e.into(),
48678                        ))));
48679                    }
48680                }
48681
48682                // A message has been received from the channel
48683                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
48684
48685                std::task::Poll::Ready(Some(match header.ordinal {
48686                    0x3969bf7eb78386e0 => {
48687                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48688                        let mut req = fidl::new_empty!(
48689                            ProviderStreamSocketWithOptionsRequest,
48690                            fidl::encoding::DefaultFuchsiaResourceDialect
48691                        );
48692                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderStreamSocketWithOptionsRequest>(&header, _body_bytes, handles, &mut req)?;
48693                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48694                        Ok(ProviderRequest::StreamSocketWithOptions {
48695                            domain: req.domain,
48696                            proto: req.proto,
48697                            opts: req.opts,
48698
48699                            responder: ProviderStreamSocketWithOptionsResponder {
48700                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48701                                tx_id: header.tx_id,
48702                            },
48703                        })
48704                    }
48705                    0x27c3581da2155545 => {
48706                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48707                        let mut req = fidl::new_empty!(
48708                            ProviderStreamSocketRequest,
48709                            fidl::encoding::DefaultFuchsiaResourceDialect
48710                        );
48711                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderStreamSocketRequest>(&header, _body_bytes, handles, &mut req)?;
48712                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48713                        Ok(ProviderRequest::StreamSocket {
48714                            domain: req.domain,
48715                            proto: req.proto,
48716
48717                            responder: ProviderStreamSocketResponder {
48718                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48719                                tx_id: header.tx_id,
48720                            },
48721                        })
48722                    }
48723                    0x38876c87cf031cb1 => {
48724                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48725                        let mut req = fidl::new_empty!(
48726                            ProviderDatagramSocketDeprecatedRequest,
48727                            fidl::encoding::DefaultFuchsiaResourceDialect
48728                        );
48729                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderDatagramSocketDeprecatedRequest>(&header, _body_bytes, handles, &mut req)?;
48730                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48731                        Ok(ProviderRequest::DatagramSocketDeprecated {
48732                            domain: req.domain,
48733                            proto: req.proto,
48734
48735                            responder: ProviderDatagramSocketDeprecatedResponder {
48736                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48737                                tx_id: header.tx_id,
48738                            },
48739                        })
48740                    }
48741                    0x4021b4fa1b6452f2 => {
48742                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48743                        let mut req = fidl::new_empty!(
48744                            ProviderDatagramSocketRequest,
48745                            fidl::encoding::DefaultFuchsiaResourceDialect
48746                        );
48747                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderDatagramSocketRequest>(&header, _body_bytes, handles, &mut req)?;
48748                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48749                        Ok(ProviderRequest::DatagramSocket {
48750                            domain: req.domain,
48751                            proto: req.proto,
48752
48753                            responder: ProviderDatagramSocketResponder {
48754                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48755                                tx_id: header.tx_id,
48756                            },
48757                        })
48758                    }
48759                    0x4cd0cffbffa39eb1 => {
48760                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48761                        let mut req = fidl::new_empty!(
48762                            ProviderDatagramSocketWithOptionsRequest,
48763                            fidl::encoding::DefaultFuchsiaResourceDialect
48764                        );
48765                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderDatagramSocketWithOptionsRequest>(&header, _body_bytes, handles, &mut req)?;
48766                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48767                        Ok(ProviderRequest::DatagramSocketWithOptions {
48768                            domain: req.domain,
48769                            proto: req.proto,
48770                            opts: req.opts,
48771
48772                            responder: ProviderDatagramSocketWithOptionsResponder {
48773                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48774                                tx_id: header.tx_id,
48775                            },
48776                        })
48777                    }
48778                    0x4d59a64fce98272f => {
48779                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48780                        let mut req = fidl::new_empty!(
48781                            ProviderInterfaceIndexToNameRequest,
48782                            fidl::encoding::DefaultFuchsiaResourceDialect
48783                        );
48784                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderInterfaceIndexToNameRequest>(&header, _body_bytes, handles, &mut req)?;
48785                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48786                        Ok(ProviderRequest::InterfaceIndexToName {
48787                            index: req.index,
48788
48789                            responder: ProviderInterfaceIndexToNameResponder {
48790                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48791                                tx_id: header.tx_id,
48792                            },
48793                        })
48794                    }
48795                    0x690cd8d2f2d650f8 => {
48796                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48797                        let mut req = fidl::new_empty!(
48798                            ProviderInterfaceNameToIndexRequest,
48799                            fidl::encoding::DefaultFuchsiaResourceDialect
48800                        );
48801                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderInterfaceNameToIndexRequest>(&header, _body_bytes, handles, &mut req)?;
48802                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48803                        Ok(ProviderRequest::InterfaceNameToIndex {
48804                            name: req.name,
48805
48806                            responder: ProviderInterfaceNameToIndexResponder {
48807                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48808                                tx_id: header.tx_id,
48809                            },
48810                        })
48811                    }
48812                    0x25d0efcdb6671a0b => {
48813                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48814                        let mut req = fidl::new_empty!(
48815                            ProviderInterfaceNameToFlagsRequest,
48816                            fidl::encoding::DefaultFuchsiaResourceDialect
48817                        );
48818                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderInterfaceNameToFlagsRequest>(&header, _body_bytes, handles, &mut req)?;
48819                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48820                        Ok(ProviderRequest::InterfaceNameToFlags {
48821                            name: req.name,
48822
48823                            responder: ProviderInterfaceNameToFlagsResponder {
48824                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48825                                tx_id: header.tx_id,
48826                            },
48827                        })
48828                    }
48829                    0x2e7b9aaf327c870 => {
48830                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
48831                        let mut req = fidl::new_empty!(
48832                            fidl::encoding::EmptyPayload,
48833                            fidl::encoding::DefaultFuchsiaResourceDialect
48834                        );
48835                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
48836                        let control_handle = ProviderControlHandle { inner: this.inner.clone() };
48837                        Ok(ProviderRequest::GetInterfaceAddresses {
48838                            responder: ProviderGetInterfaceAddressesResponder {
48839                                control_handle: std::mem::ManuallyDrop::new(control_handle),
48840                                tx_id: header.tx_id,
48841                            },
48842                        })
48843                    }
48844                    _ => Err(fidl::Error::UnknownOrdinal {
48845                        ordinal: header.ordinal,
48846                        protocol_name:
48847                            <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
48848                    }),
48849                }))
48850            },
48851        )
48852    }
48853}
48854
48855/// Provider implements the POSIX sockets API.
48856///
48857/// *Warning:* This protocol is not yet ready for direct use by clients.
48858/// Instead, clients should use the BSD sockets API to interact with sockets.
48859/// We plan to change this protocol substantially and clients that couple
48860/// directly to this protocol will make those changes more difficult.
48861#[derive(Debug)]
48862pub enum ProviderRequest {
48863    /// Requests a stream socket with the specified parameters and the creation
48864    /// options.
48865    StreamSocketWithOptions {
48866        domain: Domain,
48867        proto: StreamSocketProtocol,
48868        opts: SocketCreationOptions,
48869        responder: ProviderStreamSocketWithOptionsResponder,
48870    },
48871    /// Requests a stream socket with the specified parameters.
48872    StreamSocket {
48873        domain: Domain,
48874        proto: StreamSocketProtocol,
48875        responder: ProviderStreamSocketResponder,
48876    },
48877    /// Requests a datagram socket with the specified parameters.
48878    /// TODO(https://fxbug.dev/42165881): Remove this method once no more callers rely on it.
48879    DatagramSocketDeprecated {
48880        domain: Domain,
48881        proto: DatagramSocketProtocol,
48882        responder: ProviderDatagramSocketDeprecatedResponder,
48883    },
48884    /// Requests a datagram socket with the specified parameters.
48885    DatagramSocket {
48886        domain: Domain,
48887        proto: DatagramSocketProtocol,
48888        responder: ProviderDatagramSocketResponder,
48889    },
48890    /// Requests a datagram socket with the specified parameters and the creation
48891    /// options.
48892    DatagramSocketWithOptions {
48893        domain: Domain,
48894        proto: DatagramSocketProtocol,
48895        opts: SocketCreationOptions,
48896        responder: ProviderDatagramSocketWithOptionsResponder,
48897    },
48898    /// Looks up an interface by its index and returns its name. Returns
48899    /// `ZX_ERR_NOT_FOUND` if the specified index doesn't exist.
48900    InterfaceIndexToName { index: u64, responder: ProviderInterfaceIndexToNameResponder },
48901    /// Looks up an interface by its name and returns its index. Returns
48902    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48903    InterfaceNameToIndex { name: String, responder: ProviderInterfaceNameToIndexResponder },
48904    /// Looks up an interface by its name and returns its flags. Returns
48905    /// `ZX_ERR_NOT_FOUND` if the specified name doesn't exist.
48906    InterfaceNameToFlags { name: String, responder: ProviderInterfaceNameToFlagsResponder },
48907    /// Requests a list of [`fuchsia.posix.socket.InterfaceAddresses`]
48908    /// describing the network interfaces on the system.
48909    GetInterfaceAddresses { responder: ProviderGetInterfaceAddressesResponder },
48910}
48911
48912impl ProviderRequest {
48913    #[allow(irrefutable_let_patterns)]
48914    pub fn into_stream_socket_with_options(
48915        self,
48916    ) -> Option<(
48917        Domain,
48918        StreamSocketProtocol,
48919        SocketCreationOptions,
48920        ProviderStreamSocketWithOptionsResponder,
48921    )> {
48922        if let ProviderRequest::StreamSocketWithOptions { domain, proto, opts, responder } = self {
48923            Some((domain, proto, opts, responder))
48924        } else {
48925            None
48926        }
48927    }
48928
48929    #[allow(irrefutable_let_patterns)]
48930    pub fn into_stream_socket(
48931        self,
48932    ) -> Option<(Domain, StreamSocketProtocol, ProviderStreamSocketResponder)> {
48933        if let ProviderRequest::StreamSocket { domain, proto, responder } = self {
48934            Some((domain, proto, responder))
48935        } else {
48936            None
48937        }
48938    }
48939
48940    #[allow(irrefutable_let_patterns)]
48941    pub fn into_datagram_socket_deprecated(
48942        self,
48943    ) -> Option<(Domain, DatagramSocketProtocol, ProviderDatagramSocketDeprecatedResponder)> {
48944        if let ProviderRequest::DatagramSocketDeprecated { domain, proto, responder } = self {
48945            Some((domain, proto, responder))
48946        } else {
48947            None
48948        }
48949    }
48950
48951    #[allow(irrefutable_let_patterns)]
48952    pub fn into_datagram_socket(
48953        self,
48954    ) -> Option<(Domain, DatagramSocketProtocol, ProviderDatagramSocketResponder)> {
48955        if let ProviderRequest::DatagramSocket { domain, proto, responder } = self {
48956            Some((domain, proto, responder))
48957        } else {
48958            None
48959        }
48960    }
48961
48962    #[allow(irrefutable_let_patterns)]
48963    pub fn into_datagram_socket_with_options(
48964        self,
48965    ) -> Option<(
48966        Domain,
48967        DatagramSocketProtocol,
48968        SocketCreationOptions,
48969        ProviderDatagramSocketWithOptionsResponder,
48970    )> {
48971        if let ProviderRequest::DatagramSocketWithOptions { domain, proto, opts, responder } = self
48972        {
48973            Some((domain, proto, opts, responder))
48974        } else {
48975            None
48976        }
48977    }
48978
48979    #[allow(irrefutable_let_patterns)]
48980    pub fn into_interface_index_to_name(
48981        self,
48982    ) -> Option<(u64, ProviderInterfaceIndexToNameResponder)> {
48983        if let ProviderRequest::InterfaceIndexToName { index, responder } = self {
48984            Some((index, responder))
48985        } else {
48986            None
48987        }
48988    }
48989
48990    #[allow(irrefutable_let_patterns)]
48991    pub fn into_interface_name_to_index(
48992        self,
48993    ) -> Option<(String, ProviderInterfaceNameToIndexResponder)> {
48994        if let ProviderRequest::InterfaceNameToIndex { name, responder } = self {
48995            Some((name, responder))
48996        } else {
48997            None
48998        }
48999    }
49000
49001    #[allow(irrefutable_let_patterns)]
49002    pub fn into_interface_name_to_flags(
49003        self,
49004    ) -> Option<(String, ProviderInterfaceNameToFlagsResponder)> {
49005        if let ProviderRequest::InterfaceNameToFlags { name, responder } = self {
49006            Some((name, responder))
49007        } else {
49008            None
49009        }
49010    }
49011
49012    #[allow(irrefutable_let_patterns)]
49013    pub fn into_get_interface_addresses(self) -> Option<(ProviderGetInterfaceAddressesResponder)> {
49014        if let ProviderRequest::GetInterfaceAddresses { responder } = self {
49015            Some((responder))
49016        } else {
49017            None
49018        }
49019    }
49020
49021    /// Name of the method defined in FIDL
49022    pub fn method_name(&self) -> &'static str {
49023        match *self {
49024            ProviderRequest::StreamSocketWithOptions { .. } => "stream_socket_with_options",
49025            ProviderRequest::StreamSocket { .. } => "stream_socket",
49026            ProviderRequest::DatagramSocketDeprecated { .. } => "datagram_socket_deprecated",
49027            ProviderRequest::DatagramSocket { .. } => "datagram_socket",
49028            ProviderRequest::DatagramSocketWithOptions { .. } => "datagram_socket_with_options",
49029            ProviderRequest::InterfaceIndexToName { .. } => "interface_index_to_name",
49030            ProviderRequest::InterfaceNameToIndex { .. } => "interface_name_to_index",
49031            ProviderRequest::InterfaceNameToFlags { .. } => "interface_name_to_flags",
49032            ProviderRequest::GetInterfaceAddresses { .. } => "get_interface_addresses",
49033        }
49034    }
49035}
49036
49037#[derive(Debug, Clone)]
49038pub struct ProviderControlHandle {
49039    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
49040}
49041
49042impl fidl::endpoints::ControlHandle for ProviderControlHandle {
49043    fn shutdown(&self) {
49044        self.inner.shutdown()
49045    }
49046    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
49047        self.inner.shutdown_with_epitaph(status)
49048    }
49049
49050    fn is_closed(&self) -> bool {
49051        self.inner.channel().is_closed()
49052    }
49053    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
49054        self.inner.channel().on_closed()
49055    }
49056
49057    #[cfg(target_os = "fuchsia")]
49058    fn signal_peer(
49059        &self,
49060        clear_mask: zx::Signals,
49061        set_mask: zx::Signals,
49062    ) -> Result<(), zx_status::Status> {
49063        use fidl::Peered;
49064        self.inner.channel().signal_peer(clear_mask, set_mask)
49065    }
49066}
49067
49068impl ProviderControlHandle {}
49069
49070#[must_use = "FIDL methods require a response to be sent"]
49071#[derive(Debug)]
49072pub struct ProviderStreamSocketWithOptionsResponder {
49073    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49074    tx_id: u32,
49075}
49076
49077/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49078/// if the responder is dropped without sending a response, so that the client
49079/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49080impl std::ops::Drop for ProviderStreamSocketWithOptionsResponder {
49081    fn drop(&mut self) {
49082        self.control_handle.shutdown();
49083        // Safety: drops once, never accessed again
49084        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49085    }
49086}
49087
49088impl fidl::endpoints::Responder for ProviderStreamSocketWithOptionsResponder {
49089    type ControlHandle = ProviderControlHandle;
49090
49091    fn control_handle(&self) -> &ProviderControlHandle {
49092        &self.control_handle
49093    }
49094
49095    fn drop_without_shutdown(mut self) {
49096        // Safety: drops once, never accessed again due to mem::forget
49097        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49098        // Prevent Drop from running (which would shut down the channel)
49099        std::mem::forget(self);
49100    }
49101}
49102
49103impl ProviderStreamSocketWithOptionsResponder {
49104    /// Sends a response to the FIDL transaction.
49105    ///
49106    /// Sets the channel to shutdown if an error occurs.
49107    pub fn send(
49108        self,
49109        mut result: Result<
49110            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49111            fidl_fuchsia_posix::Errno,
49112        >,
49113    ) -> Result<(), fidl::Error> {
49114        let _result = self.send_raw(result);
49115        if _result.is_err() {
49116            self.control_handle.shutdown();
49117        }
49118        self.drop_without_shutdown();
49119        _result
49120    }
49121
49122    /// Similar to "send" but does not shutdown the channel if an error occurs.
49123    pub fn send_no_shutdown_on_err(
49124        self,
49125        mut result: Result<
49126            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49127            fidl_fuchsia_posix::Errno,
49128        >,
49129    ) -> Result<(), fidl::Error> {
49130        let _result = self.send_raw(result);
49131        self.drop_without_shutdown();
49132        _result
49133    }
49134
49135    fn send_raw(
49136        &self,
49137        mut result: Result<
49138            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49139            fidl_fuchsia_posix::Errno,
49140        >,
49141    ) -> Result<(), fidl::Error> {
49142        self.control_handle.inner.send::<fidl::encoding::ResultType<
49143            ProviderStreamSocketWithOptionsResponse,
49144            fidl_fuchsia_posix::Errno,
49145        >>(
49146            result.map(|s| (s,)),
49147            self.tx_id,
49148            0x3969bf7eb78386e0,
49149            fidl::encoding::DynamicFlags::empty(),
49150        )
49151    }
49152}
49153
49154#[must_use = "FIDL methods require a response to be sent"]
49155#[derive(Debug)]
49156pub struct ProviderStreamSocketResponder {
49157    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49158    tx_id: u32,
49159}
49160
49161/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49162/// if the responder is dropped without sending a response, so that the client
49163/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49164impl std::ops::Drop for ProviderStreamSocketResponder {
49165    fn drop(&mut self) {
49166        self.control_handle.shutdown();
49167        // Safety: drops once, never accessed again
49168        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49169    }
49170}
49171
49172impl fidl::endpoints::Responder for ProviderStreamSocketResponder {
49173    type ControlHandle = ProviderControlHandle;
49174
49175    fn control_handle(&self) -> &ProviderControlHandle {
49176        &self.control_handle
49177    }
49178
49179    fn drop_without_shutdown(mut self) {
49180        // Safety: drops once, never accessed again due to mem::forget
49181        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49182        // Prevent Drop from running (which would shut down the channel)
49183        std::mem::forget(self);
49184    }
49185}
49186
49187impl ProviderStreamSocketResponder {
49188    /// Sends a response to the FIDL transaction.
49189    ///
49190    /// Sets the channel to shutdown if an error occurs.
49191    pub fn send(
49192        self,
49193        mut result: Result<
49194            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49195            fidl_fuchsia_posix::Errno,
49196        >,
49197    ) -> Result<(), fidl::Error> {
49198        let _result = self.send_raw(result);
49199        if _result.is_err() {
49200            self.control_handle.shutdown();
49201        }
49202        self.drop_without_shutdown();
49203        _result
49204    }
49205
49206    /// Similar to "send" but does not shutdown the channel if an error occurs.
49207    pub fn send_no_shutdown_on_err(
49208        self,
49209        mut result: Result<
49210            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49211            fidl_fuchsia_posix::Errno,
49212        >,
49213    ) -> Result<(), fidl::Error> {
49214        let _result = self.send_raw(result);
49215        self.drop_without_shutdown();
49216        _result
49217    }
49218
49219    fn send_raw(
49220        &self,
49221        mut result: Result<
49222            fidl::endpoints::ClientEnd<StreamSocketMarker>,
49223            fidl_fuchsia_posix::Errno,
49224        >,
49225    ) -> Result<(), fidl::Error> {
49226        self.control_handle.inner.send::<fidl::encoding::ResultType<
49227            ProviderStreamSocketResponse,
49228            fidl_fuchsia_posix::Errno,
49229        >>(
49230            result.map(|s| (s,)),
49231            self.tx_id,
49232            0x27c3581da2155545,
49233            fidl::encoding::DynamicFlags::empty(),
49234        )
49235    }
49236}
49237
49238#[must_use = "FIDL methods require a response to be sent"]
49239#[derive(Debug)]
49240pub struct ProviderDatagramSocketDeprecatedResponder {
49241    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49242    tx_id: u32,
49243}
49244
49245/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49246/// if the responder is dropped without sending a response, so that the client
49247/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49248impl std::ops::Drop for ProviderDatagramSocketDeprecatedResponder {
49249    fn drop(&mut self) {
49250        self.control_handle.shutdown();
49251        // Safety: drops once, never accessed again
49252        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49253    }
49254}
49255
49256impl fidl::endpoints::Responder for ProviderDatagramSocketDeprecatedResponder {
49257    type ControlHandle = ProviderControlHandle;
49258
49259    fn control_handle(&self) -> &ProviderControlHandle {
49260        &self.control_handle
49261    }
49262
49263    fn drop_without_shutdown(mut self) {
49264        // Safety: drops once, never accessed again due to mem::forget
49265        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49266        // Prevent Drop from running (which would shut down the channel)
49267        std::mem::forget(self);
49268    }
49269}
49270
49271impl ProviderDatagramSocketDeprecatedResponder {
49272    /// Sends a response to the FIDL transaction.
49273    ///
49274    /// Sets the channel to shutdown if an error occurs.
49275    pub fn send(
49276        self,
49277        mut result: Result<
49278            fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
49279            fidl_fuchsia_posix::Errno,
49280        >,
49281    ) -> Result<(), fidl::Error> {
49282        let _result = self.send_raw(result);
49283        if _result.is_err() {
49284            self.control_handle.shutdown();
49285        }
49286        self.drop_without_shutdown();
49287        _result
49288    }
49289
49290    /// Similar to "send" but does not shutdown the channel if an error occurs.
49291    pub fn send_no_shutdown_on_err(
49292        self,
49293        mut result: Result<
49294            fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
49295            fidl_fuchsia_posix::Errno,
49296        >,
49297    ) -> Result<(), fidl::Error> {
49298        let _result = self.send_raw(result);
49299        self.drop_without_shutdown();
49300        _result
49301    }
49302
49303    fn send_raw(
49304        &self,
49305        mut result: Result<
49306            fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
49307            fidl_fuchsia_posix::Errno,
49308        >,
49309    ) -> Result<(), fidl::Error> {
49310        self.control_handle.inner.send::<fidl::encoding::ResultType<
49311            ProviderDatagramSocketDeprecatedResponse,
49312            fidl_fuchsia_posix::Errno,
49313        >>(
49314            result.map(|s| (s,)),
49315            self.tx_id,
49316            0x38876c87cf031cb1,
49317            fidl::encoding::DynamicFlags::empty(),
49318        )
49319    }
49320}
49321
49322#[must_use = "FIDL methods require a response to be sent"]
49323#[derive(Debug)]
49324pub struct ProviderDatagramSocketResponder {
49325    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49326    tx_id: u32,
49327}
49328
49329/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49330/// if the responder is dropped without sending a response, so that the client
49331/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49332impl std::ops::Drop for ProviderDatagramSocketResponder {
49333    fn drop(&mut self) {
49334        self.control_handle.shutdown();
49335        // Safety: drops once, never accessed again
49336        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49337    }
49338}
49339
49340impl fidl::endpoints::Responder for ProviderDatagramSocketResponder {
49341    type ControlHandle = ProviderControlHandle;
49342
49343    fn control_handle(&self) -> &ProviderControlHandle {
49344        &self.control_handle
49345    }
49346
49347    fn drop_without_shutdown(mut self) {
49348        // Safety: drops once, never accessed again due to mem::forget
49349        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49350        // Prevent Drop from running (which would shut down the channel)
49351        std::mem::forget(self);
49352    }
49353}
49354
49355impl ProviderDatagramSocketResponder {
49356    /// Sends a response to the FIDL transaction.
49357    ///
49358    /// Sets the channel to shutdown if an error occurs.
49359    pub fn send(
49360        self,
49361        mut result: Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>,
49362    ) -> Result<(), fidl::Error> {
49363        let _result = self.send_raw(result);
49364        if _result.is_err() {
49365            self.control_handle.shutdown();
49366        }
49367        self.drop_without_shutdown();
49368        _result
49369    }
49370
49371    /// Similar to "send" but does not shutdown the channel if an error occurs.
49372    pub fn send_no_shutdown_on_err(
49373        self,
49374        mut result: Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>,
49375    ) -> Result<(), fidl::Error> {
49376        let _result = self.send_raw(result);
49377        self.drop_without_shutdown();
49378        _result
49379    }
49380
49381    fn send_raw(
49382        &self,
49383        mut result: Result<ProviderDatagramSocketResponse, fidl_fuchsia_posix::Errno>,
49384    ) -> Result<(), fidl::Error> {
49385        self.control_handle.inner.send::<fidl::encoding::ResultType<
49386            ProviderDatagramSocketResponse,
49387            fidl_fuchsia_posix::Errno,
49388        >>(
49389            result.as_mut().map_err(|e| *e),
49390            self.tx_id,
49391            0x4021b4fa1b6452f2,
49392            fidl::encoding::DynamicFlags::empty(),
49393        )
49394    }
49395}
49396
49397#[must_use = "FIDL methods require a response to be sent"]
49398#[derive(Debug)]
49399pub struct ProviderDatagramSocketWithOptionsResponder {
49400    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49401    tx_id: u32,
49402}
49403
49404/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49405/// if the responder is dropped without sending a response, so that the client
49406/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49407impl std::ops::Drop for ProviderDatagramSocketWithOptionsResponder {
49408    fn drop(&mut self) {
49409        self.control_handle.shutdown();
49410        // Safety: drops once, never accessed again
49411        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49412    }
49413}
49414
49415impl fidl::endpoints::Responder for ProviderDatagramSocketWithOptionsResponder {
49416    type ControlHandle = ProviderControlHandle;
49417
49418    fn control_handle(&self) -> &ProviderControlHandle {
49419        &self.control_handle
49420    }
49421
49422    fn drop_without_shutdown(mut self) {
49423        // Safety: drops once, never accessed again due to mem::forget
49424        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49425        // Prevent Drop from running (which would shut down the channel)
49426        std::mem::forget(self);
49427    }
49428}
49429
49430impl ProviderDatagramSocketWithOptionsResponder {
49431    /// Sends a response to the FIDL transaction.
49432    ///
49433    /// Sets the channel to shutdown if an error occurs.
49434    pub fn send(
49435        self,
49436        mut result: Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>,
49437    ) -> Result<(), fidl::Error> {
49438        let _result = self.send_raw(result);
49439        if _result.is_err() {
49440            self.control_handle.shutdown();
49441        }
49442        self.drop_without_shutdown();
49443        _result
49444    }
49445
49446    /// Similar to "send" but does not shutdown the channel if an error occurs.
49447    pub fn send_no_shutdown_on_err(
49448        self,
49449        mut result: Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>,
49450    ) -> Result<(), fidl::Error> {
49451        let _result = self.send_raw(result);
49452        self.drop_without_shutdown();
49453        _result
49454    }
49455
49456    fn send_raw(
49457        &self,
49458        mut result: Result<ProviderDatagramSocketWithOptionsResponse, fidl_fuchsia_posix::Errno>,
49459    ) -> Result<(), fidl::Error> {
49460        self.control_handle.inner.send::<fidl::encoding::ResultType<
49461            ProviderDatagramSocketWithOptionsResponse,
49462            fidl_fuchsia_posix::Errno,
49463        >>(
49464            result.as_mut().map_err(|e| *e),
49465            self.tx_id,
49466            0x4cd0cffbffa39eb1,
49467            fidl::encoding::DynamicFlags::empty(),
49468        )
49469    }
49470}
49471
49472#[must_use = "FIDL methods require a response to be sent"]
49473#[derive(Debug)]
49474pub struct ProviderInterfaceIndexToNameResponder {
49475    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49476    tx_id: u32,
49477}
49478
49479/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49480/// if the responder is dropped without sending a response, so that the client
49481/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49482impl std::ops::Drop for ProviderInterfaceIndexToNameResponder {
49483    fn drop(&mut self) {
49484        self.control_handle.shutdown();
49485        // Safety: drops once, never accessed again
49486        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49487    }
49488}
49489
49490impl fidl::endpoints::Responder for ProviderInterfaceIndexToNameResponder {
49491    type ControlHandle = ProviderControlHandle;
49492
49493    fn control_handle(&self) -> &ProviderControlHandle {
49494        &self.control_handle
49495    }
49496
49497    fn drop_without_shutdown(mut self) {
49498        // Safety: drops once, never accessed again due to mem::forget
49499        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49500        // Prevent Drop from running (which would shut down the channel)
49501        std::mem::forget(self);
49502    }
49503}
49504
49505impl ProviderInterfaceIndexToNameResponder {
49506    /// Sends a response to the FIDL transaction.
49507    ///
49508    /// Sets the channel to shutdown if an error occurs.
49509    pub fn send(self, mut result: Result<&str, i32>) -> Result<(), fidl::Error> {
49510        let _result = self.send_raw(result);
49511        if _result.is_err() {
49512            self.control_handle.shutdown();
49513        }
49514        self.drop_without_shutdown();
49515        _result
49516    }
49517
49518    /// Similar to "send" but does not shutdown the channel if an error occurs.
49519    pub fn send_no_shutdown_on_err(self, mut result: Result<&str, i32>) -> Result<(), fidl::Error> {
49520        let _result = self.send_raw(result);
49521        self.drop_without_shutdown();
49522        _result
49523    }
49524
49525    fn send_raw(&self, mut result: Result<&str, i32>) -> Result<(), fidl::Error> {
49526        self.control_handle.inner.send::<fidl::encoding::ResultType<
49527            ProviderInterfaceIndexToNameResponse,
49528            i32,
49529        >>(
49530            result.map(|name| (name,)),
49531            self.tx_id,
49532            0x4d59a64fce98272f,
49533            fidl::encoding::DynamicFlags::empty(),
49534        )
49535    }
49536}
49537
49538#[must_use = "FIDL methods require a response to be sent"]
49539#[derive(Debug)]
49540pub struct ProviderInterfaceNameToIndexResponder {
49541    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49542    tx_id: u32,
49543}
49544
49545/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49546/// if the responder is dropped without sending a response, so that the client
49547/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49548impl std::ops::Drop for ProviderInterfaceNameToIndexResponder {
49549    fn drop(&mut self) {
49550        self.control_handle.shutdown();
49551        // Safety: drops once, never accessed again
49552        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49553    }
49554}
49555
49556impl fidl::endpoints::Responder for ProviderInterfaceNameToIndexResponder {
49557    type ControlHandle = ProviderControlHandle;
49558
49559    fn control_handle(&self) -> &ProviderControlHandle {
49560        &self.control_handle
49561    }
49562
49563    fn drop_without_shutdown(mut self) {
49564        // Safety: drops once, never accessed again due to mem::forget
49565        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49566        // Prevent Drop from running (which would shut down the channel)
49567        std::mem::forget(self);
49568    }
49569}
49570
49571impl ProviderInterfaceNameToIndexResponder {
49572    /// Sends a response to the FIDL transaction.
49573    ///
49574    /// Sets the channel to shutdown if an error occurs.
49575    pub fn send(self, mut result: Result<u64, i32>) -> Result<(), fidl::Error> {
49576        let _result = self.send_raw(result);
49577        if _result.is_err() {
49578            self.control_handle.shutdown();
49579        }
49580        self.drop_without_shutdown();
49581        _result
49582    }
49583
49584    /// Similar to "send" but does not shutdown the channel if an error occurs.
49585    pub fn send_no_shutdown_on_err(self, mut result: Result<u64, i32>) -> Result<(), fidl::Error> {
49586        let _result = self.send_raw(result);
49587        self.drop_without_shutdown();
49588        _result
49589    }
49590
49591    fn send_raw(&self, mut result: Result<u64, i32>) -> Result<(), fidl::Error> {
49592        self.control_handle.inner.send::<fidl::encoding::ResultType<
49593            ProviderInterfaceNameToIndexResponse,
49594            i32,
49595        >>(
49596            result.map(|index| (index,)),
49597            self.tx_id,
49598            0x690cd8d2f2d650f8,
49599            fidl::encoding::DynamicFlags::empty(),
49600        )
49601    }
49602}
49603
49604#[must_use = "FIDL methods require a response to be sent"]
49605#[derive(Debug)]
49606pub struct ProviderInterfaceNameToFlagsResponder {
49607    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49608    tx_id: u32,
49609}
49610
49611/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49612/// if the responder is dropped without sending a response, so that the client
49613/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49614impl std::ops::Drop for ProviderInterfaceNameToFlagsResponder {
49615    fn drop(&mut self) {
49616        self.control_handle.shutdown();
49617        // Safety: drops once, never accessed again
49618        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49619    }
49620}
49621
49622impl fidl::endpoints::Responder for ProviderInterfaceNameToFlagsResponder {
49623    type ControlHandle = ProviderControlHandle;
49624
49625    fn control_handle(&self) -> &ProviderControlHandle {
49626        &self.control_handle
49627    }
49628
49629    fn drop_without_shutdown(mut self) {
49630        // Safety: drops once, never accessed again due to mem::forget
49631        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49632        // Prevent Drop from running (which would shut down the channel)
49633        std::mem::forget(self);
49634    }
49635}
49636
49637impl ProviderInterfaceNameToFlagsResponder {
49638    /// Sends a response to the FIDL transaction.
49639    ///
49640    /// Sets the channel to shutdown if an error occurs.
49641    pub fn send(self, mut result: Result<InterfaceFlags, i32>) -> Result<(), fidl::Error> {
49642        let _result = self.send_raw(result);
49643        if _result.is_err() {
49644            self.control_handle.shutdown();
49645        }
49646        self.drop_without_shutdown();
49647        _result
49648    }
49649
49650    /// Similar to "send" but does not shutdown the channel if an error occurs.
49651    pub fn send_no_shutdown_on_err(
49652        self,
49653        mut result: Result<InterfaceFlags, i32>,
49654    ) -> Result<(), fidl::Error> {
49655        let _result = self.send_raw(result);
49656        self.drop_without_shutdown();
49657        _result
49658    }
49659
49660    fn send_raw(&self, mut result: Result<InterfaceFlags, i32>) -> Result<(), fidl::Error> {
49661        self.control_handle.inner.send::<fidl::encoding::ResultType<
49662            ProviderInterfaceNameToFlagsResponse,
49663            i32,
49664        >>(
49665            result.map(|flags| (flags,)),
49666            self.tx_id,
49667            0x25d0efcdb6671a0b,
49668            fidl::encoding::DynamicFlags::empty(),
49669        )
49670    }
49671}
49672
49673#[must_use = "FIDL methods require a response to be sent"]
49674#[derive(Debug)]
49675pub struct ProviderGetInterfaceAddressesResponder {
49676    control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
49677    tx_id: u32,
49678}
49679
49680/// Set the the channel to be shutdown (see [`ProviderControlHandle::shutdown`])
49681/// if the responder is dropped without sending a response, so that the client
49682/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
49683impl std::ops::Drop for ProviderGetInterfaceAddressesResponder {
49684    fn drop(&mut self) {
49685        self.control_handle.shutdown();
49686        // Safety: drops once, never accessed again
49687        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49688    }
49689}
49690
49691impl fidl::endpoints::Responder for ProviderGetInterfaceAddressesResponder {
49692    type ControlHandle = ProviderControlHandle;
49693
49694    fn control_handle(&self) -> &ProviderControlHandle {
49695        &self.control_handle
49696    }
49697
49698    fn drop_without_shutdown(mut self) {
49699        // Safety: drops once, never accessed again due to mem::forget
49700        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
49701        // Prevent Drop from running (which would shut down the channel)
49702        std::mem::forget(self);
49703    }
49704}
49705
49706impl ProviderGetInterfaceAddressesResponder {
49707    /// Sends a response to the FIDL transaction.
49708    ///
49709    /// Sets the channel to shutdown if an error occurs.
49710    pub fn send(self, mut interfaces: &[InterfaceAddresses]) -> Result<(), fidl::Error> {
49711        let _result = self.send_raw(interfaces);
49712        if _result.is_err() {
49713            self.control_handle.shutdown();
49714        }
49715        self.drop_without_shutdown();
49716        _result
49717    }
49718
49719    /// Similar to "send" but does not shutdown the channel if an error occurs.
49720    pub fn send_no_shutdown_on_err(
49721        self,
49722        mut interfaces: &[InterfaceAddresses],
49723    ) -> Result<(), fidl::Error> {
49724        let _result = self.send_raw(interfaces);
49725        self.drop_without_shutdown();
49726        _result
49727    }
49728
49729    fn send_raw(&self, mut interfaces: &[InterfaceAddresses]) -> Result<(), fidl::Error> {
49730        self.control_handle.inner.send::<ProviderGetInterfaceAddressesResponse>(
49731            (interfaces,),
49732            self.tx_id,
49733            0x2e7b9aaf327c870,
49734            fidl::encoding::DynamicFlags::empty(),
49735        )
49736    }
49737}
49738
49739#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
49740pub struct StreamSocketMarker;
49741
49742impl fidl::endpoints::ProtocolMarker for StreamSocketMarker {
49743    type Proxy = StreamSocketProxy;
49744    type RequestStream = StreamSocketRequestStream;
49745    #[cfg(target_os = "fuchsia")]
49746    type SynchronousProxy = StreamSocketSynchronousProxy;
49747
49748    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.StreamSocket";
49749}
49750impl fidl::endpoints::DiscoverableProtocolMarker for StreamSocketMarker {}
49751pub type StreamSocketListenResult = Result<(), fidl_fuchsia_posix::Errno>;
49752pub type StreamSocketAcceptResult = Result<
49753    (Option<Box<fidl_fuchsia_net::SocketAddress>>, fidl::endpoints::ClientEnd<StreamSocketMarker>),
49754    fidl_fuchsia_posix::Errno,
49755>;
49756pub type StreamSocketGetInfoResult =
49757    Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>;
49758pub type StreamSocketSetTcpNoDelayResult = Result<(), fidl_fuchsia_posix::Errno>;
49759pub type StreamSocketGetTcpNoDelayResult = Result<bool, fidl_fuchsia_posix::Errno>;
49760pub type StreamSocketSetTcpMaxSegmentResult = Result<(), fidl_fuchsia_posix::Errno>;
49761pub type StreamSocketGetTcpMaxSegmentResult = Result<u32, fidl_fuchsia_posix::Errno>;
49762pub type StreamSocketSetTcpCorkResult = Result<(), fidl_fuchsia_posix::Errno>;
49763pub type StreamSocketGetTcpCorkResult = Result<bool, fidl_fuchsia_posix::Errno>;
49764pub type StreamSocketSetTcpKeepAliveIdleResult = Result<(), fidl_fuchsia_posix::Errno>;
49765pub type StreamSocketGetTcpKeepAliveIdleResult = Result<u32, fidl_fuchsia_posix::Errno>;
49766pub type StreamSocketSetTcpKeepAliveIntervalResult = Result<(), fidl_fuchsia_posix::Errno>;
49767pub type StreamSocketGetTcpKeepAliveIntervalResult = Result<u32, fidl_fuchsia_posix::Errno>;
49768pub type StreamSocketSetTcpKeepAliveCountResult = Result<(), fidl_fuchsia_posix::Errno>;
49769pub type StreamSocketGetTcpKeepAliveCountResult = Result<u32, fidl_fuchsia_posix::Errno>;
49770pub type StreamSocketSetTcpSynCountResult = Result<(), fidl_fuchsia_posix::Errno>;
49771pub type StreamSocketGetTcpSynCountResult = Result<u32, fidl_fuchsia_posix::Errno>;
49772pub type StreamSocketSetTcpLingerResult = Result<(), fidl_fuchsia_posix::Errno>;
49773pub type StreamSocketGetTcpLingerResult = Result<OptionalUint32, fidl_fuchsia_posix::Errno>;
49774pub type StreamSocketSetTcpDeferAcceptResult = Result<(), fidl_fuchsia_posix::Errno>;
49775pub type StreamSocketGetTcpDeferAcceptResult = Result<u32, fidl_fuchsia_posix::Errno>;
49776pub type StreamSocketSetTcpWindowClampResult = Result<(), fidl_fuchsia_posix::Errno>;
49777pub type StreamSocketGetTcpWindowClampResult = Result<u32, fidl_fuchsia_posix::Errno>;
49778pub type StreamSocketGetTcpInfoResult = Result<TcpInfo, fidl_fuchsia_posix::Errno>;
49779pub type StreamSocketSetTcpQuickAckResult = Result<(), fidl_fuchsia_posix::Errno>;
49780pub type StreamSocketGetTcpQuickAckResult = Result<bool, fidl_fuchsia_posix::Errno>;
49781pub type StreamSocketSetTcpCongestionResult = Result<(), fidl_fuchsia_posix::Errno>;
49782pub type StreamSocketGetTcpCongestionResult =
49783    Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>;
49784pub type StreamSocketSetTcpUserTimeoutResult = Result<(), fidl_fuchsia_posix::Errno>;
49785pub type StreamSocketGetTcpUserTimeoutResult = Result<u32, fidl_fuchsia_posix::Errno>;
49786
49787pub trait StreamSocketProxyInterface: Send + Sync {
49788    fn r#clone(
49789        &self,
49790        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
49791    ) -> Result<(), fidl::Error>;
49792    type CloseResponseFut: std::future::Future<
49793            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
49794        > + Send;
49795    fn r#close(&self) -> Self::CloseResponseFut;
49796    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
49797    fn r#query(&self) -> Self::QueryResponseFut;
49798    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
49799        + Send;
49800    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
49801    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
49802        + Send;
49803    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
49804    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
49805        + Send;
49806    fn r#get_error(&self) -> Self::GetErrorResponseFut;
49807    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
49808        + Send;
49809    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
49810    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
49811        + Send;
49812    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
49813    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
49814        + Send;
49815    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
49816    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
49817        + Send;
49818    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
49819    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
49820        + Send;
49821    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
49822    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
49823        + Send;
49824    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
49825    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
49826        + Send;
49827    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
49828    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
49829        + Send;
49830    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
49831    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
49832        + Send;
49833    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
49834    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
49835        + Send;
49836    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
49837    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
49838        + Send;
49839    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
49840    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
49841        + Send;
49842    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
49843    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
49844        + Send;
49845    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
49846    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
49847        + Send;
49848    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
49849    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
49850        + Send;
49851    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
49852    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
49853        + Send;
49854    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
49855    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
49856        + Send;
49857    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
49858    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
49859        + Send;
49860    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
49861    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
49862        + Send;
49863    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
49864    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
49865        + Send;
49866    fn r#set_bind_to_interface_index(&self, value: u64)
49867    -> Self::SetBindToInterfaceIndexResponseFut;
49868    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
49869        + Send;
49870    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
49871    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
49872        + Send;
49873    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
49874    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
49875        + Send;
49876    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
49877    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
49878        + Send;
49879    fn r#set_mark(
49880        &self,
49881        domain: fidl_fuchsia_net::MarkDomain,
49882        mark: &OptionalUint32,
49883    ) -> Self::SetMarkResponseFut;
49884    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
49885        + Send;
49886    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
49887    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
49888        + Send;
49889    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
49890    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
49891        + Send;
49892    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
49893    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
49894        + Send;
49895    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
49896    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
49897        + Send;
49898    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
49899    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
49900        + Send;
49901    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
49902    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
49903        + Send;
49904    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
49905    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
49906        + Send;
49907    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
49908    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
49909        + Send;
49910    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
49911    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
49912        + Send;
49913    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
49914    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
49915        + Send;
49916    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
49917    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
49918        + Send;
49919    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
49920    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
49921        + Send;
49922    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
49923    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
49924        + Send;
49925    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
49926    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
49927            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
49928        > + Send;
49929    fn r#set_ip_receive_type_of_service(
49930        &self,
49931        value: bool,
49932    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
49933    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
49934            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
49935        > + Send;
49936    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
49937    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
49938        + Send;
49939    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
49940    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
49941        + Send;
49942    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
49943    type SetIpMulticastInterfaceResponseFut: std::future::Future<
49944            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
49945        > + Send;
49946    fn r#set_ip_multicast_interface(
49947        &self,
49948        iface: u64,
49949        address: &fidl_fuchsia_net::Ipv4Address,
49950    ) -> Self::SetIpMulticastInterfaceResponseFut;
49951    type GetIpMulticastInterfaceResponseFut: std::future::Future<
49952            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
49953        > + Send;
49954    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
49955    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
49956        + Send;
49957    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
49958    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
49959        + Send;
49960    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
49961    type SetIpMulticastLoopbackResponseFut: std::future::Future<
49962            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
49963        > + Send;
49964    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
49965    type GetIpMulticastLoopbackResponseFut: std::future::Future<
49966            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
49967        > + Send;
49968    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
49969    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
49970        + Send;
49971    fn r#add_ip_membership(
49972        &self,
49973        membership: &IpMulticastMembership,
49974    ) -> Self::AddIpMembershipResponseFut;
49975    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
49976        + Send;
49977    fn r#drop_ip_membership(
49978        &self,
49979        membership: &IpMulticastMembership,
49980    ) -> Self::DropIpMembershipResponseFut;
49981    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
49982        + Send;
49983    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
49984    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
49985        + Send;
49986    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
49987    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
49988            Output = Result<
49989                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
49990                fidl::Error,
49991            >,
49992        > + Send;
49993    fn r#set_ip_receive_original_destination_address(
49994        &self,
49995        value: bool,
49996    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
49997    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
49998            Output = Result<
49999                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
50000                fidl::Error,
50001            >,
50002        > + Send;
50003    fn r#get_ip_receive_original_destination_address(
50004        &self,
50005    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
50006    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
50007        + Send;
50008    fn r#add_ipv6_membership(
50009        &self,
50010        membership: &Ipv6MulticastMembership,
50011    ) -> Self::AddIpv6MembershipResponseFut;
50012    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
50013        + Send;
50014    fn r#drop_ipv6_membership(
50015        &self,
50016        membership: &Ipv6MulticastMembership,
50017    ) -> Self::DropIpv6MembershipResponseFut;
50018    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
50019            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
50020        > + Send;
50021    fn r#set_ipv6_multicast_interface(
50022        &self,
50023        value: u64,
50024    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
50025    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
50026            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
50027        > + Send;
50028    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
50029    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
50030        + Send;
50031    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
50032    -> Self::SetIpv6UnicastHopsResponseFut;
50033    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
50034        + Send;
50035    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
50036    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
50037            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
50038        > + Send;
50039    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
50040    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
50041            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
50042        > + Send;
50043    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
50044    type SetIpv6MulticastHopsResponseFut: std::future::Future<
50045            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
50046        > + Send;
50047    fn r#set_ipv6_multicast_hops(
50048        &self,
50049        value: &OptionalUint8,
50050    ) -> Self::SetIpv6MulticastHopsResponseFut;
50051    type GetIpv6MulticastHopsResponseFut: std::future::Future<
50052            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
50053        > + Send;
50054    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
50055    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
50056            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
50057        > + Send;
50058    fn r#set_ipv6_multicast_loopback(
50059        &self,
50060        value: bool,
50061    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
50062    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
50063            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
50064        > + Send;
50065    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
50066    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
50067        + Send;
50068    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
50069    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
50070        + Send;
50071    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
50072    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
50073            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
50074        > + Send;
50075    fn r#set_ipv6_receive_traffic_class(
50076        &self,
50077        value: bool,
50078    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
50079    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
50080            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
50081        > + Send;
50082    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
50083    type SetIpv6TrafficClassResponseFut: std::future::Future<
50084            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
50085        > + Send;
50086    fn r#set_ipv6_traffic_class(
50087        &self,
50088        value: &OptionalUint8,
50089    ) -> Self::SetIpv6TrafficClassResponseFut;
50090    type GetIpv6TrafficClassResponseFut: std::future::Future<
50091            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
50092        > + Send;
50093    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
50094    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
50095            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
50096        > + Send;
50097    fn r#set_ipv6_receive_packet_info(
50098        &self,
50099        value: bool,
50100    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
50101    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
50102            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
50103        > + Send;
50104    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
50105    type GetOriginalDestinationResponseFut: std::future::Future<
50106            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
50107        > + Send;
50108    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
50109    type DescribeResponseFut: std::future::Future<Output = Result<StreamSocketDescribeResponse, fidl::Error>>
50110        + Send;
50111    fn r#describe(&self) -> Self::DescribeResponseFut;
50112    type ListenResponseFut: std::future::Future<Output = Result<StreamSocketListenResult, fidl::Error>>
50113        + Send;
50114    fn r#listen(&self, backlog: i16) -> Self::ListenResponseFut;
50115    type AcceptResponseFut: std::future::Future<Output = Result<StreamSocketAcceptResult, fidl::Error>>
50116        + Send;
50117    fn r#accept(&self, want_addr: bool) -> Self::AcceptResponseFut;
50118    type GetInfoResponseFut: std::future::Future<Output = Result<StreamSocketGetInfoResult, fidl::Error>>
50119        + Send;
50120    fn r#get_info(&self) -> Self::GetInfoResponseFut;
50121    type SetTcpNoDelayResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpNoDelayResult, fidl::Error>>
50122        + Send;
50123    fn r#set_tcp_no_delay(&self, value: bool) -> Self::SetTcpNoDelayResponseFut;
50124    type GetTcpNoDelayResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpNoDelayResult, fidl::Error>>
50125        + Send;
50126    fn r#get_tcp_no_delay(&self) -> Self::GetTcpNoDelayResponseFut;
50127    type SetTcpMaxSegmentResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpMaxSegmentResult, fidl::Error>>
50128        + Send;
50129    fn r#set_tcp_max_segment(&self, value_bytes: u32) -> Self::SetTcpMaxSegmentResponseFut;
50130    type GetTcpMaxSegmentResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpMaxSegmentResult, fidl::Error>>
50131        + Send;
50132    fn r#get_tcp_max_segment(&self) -> Self::GetTcpMaxSegmentResponseFut;
50133    type SetTcpCorkResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpCorkResult, fidl::Error>>
50134        + Send;
50135    fn r#set_tcp_cork(&self, value: bool) -> Self::SetTcpCorkResponseFut;
50136    type GetTcpCorkResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpCorkResult, fidl::Error>>
50137        + Send;
50138    fn r#get_tcp_cork(&self) -> Self::GetTcpCorkResponseFut;
50139    type SetTcpKeepAliveIdleResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpKeepAliveIdleResult, fidl::Error>>
50140        + Send;
50141    fn r#set_tcp_keep_alive_idle(&self, value_secs: u32) -> Self::SetTcpKeepAliveIdleResponseFut;
50142    type GetTcpKeepAliveIdleResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpKeepAliveIdleResult, fidl::Error>>
50143        + Send;
50144    fn r#get_tcp_keep_alive_idle(&self) -> Self::GetTcpKeepAliveIdleResponseFut;
50145    type SetTcpKeepAliveIntervalResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpKeepAliveIntervalResult, fidl::Error>>
50146        + Send;
50147    fn r#set_tcp_keep_alive_interval(
50148        &self,
50149        value_secs: u32,
50150    ) -> Self::SetTcpKeepAliveIntervalResponseFut;
50151    type GetTcpKeepAliveIntervalResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpKeepAliveIntervalResult, fidl::Error>>
50152        + Send;
50153    fn r#get_tcp_keep_alive_interval(&self) -> Self::GetTcpKeepAliveIntervalResponseFut;
50154    type SetTcpKeepAliveCountResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpKeepAliveCountResult, fidl::Error>>
50155        + Send;
50156    fn r#set_tcp_keep_alive_count(&self, value: u32) -> Self::SetTcpKeepAliveCountResponseFut;
50157    type GetTcpKeepAliveCountResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpKeepAliveCountResult, fidl::Error>>
50158        + Send;
50159    fn r#get_tcp_keep_alive_count(&self) -> Self::GetTcpKeepAliveCountResponseFut;
50160    type SetTcpSynCountResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpSynCountResult, fidl::Error>>
50161        + Send;
50162    fn r#set_tcp_syn_count(&self, value: u32) -> Self::SetTcpSynCountResponseFut;
50163    type GetTcpSynCountResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpSynCountResult, fidl::Error>>
50164        + Send;
50165    fn r#get_tcp_syn_count(&self) -> Self::GetTcpSynCountResponseFut;
50166    type SetTcpLingerResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpLingerResult, fidl::Error>>
50167        + Send;
50168    fn r#set_tcp_linger(&self, value_secs: &OptionalUint32) -> Self::SetTcpLingerResponseFut;
50169    type GetTcpLingerResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpLingerResult, fidl::Error>>
50170        + Send;
50171    fn r#get_tcp_linger(&self) -> Self::GetTcpLingerResponseFut;
50172    type SetTcpDeferAcceptResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpDeferAcceptResult, fidl::Error>>
50173        + Send;
50174    fn r#set_tcp_defer_accept(&self, value_secs: u32) -> Self::SetTcpDeferAcceptResponseFut;
50175    type GetTcpDeferAcceptResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpDeferAcceptResult, fidl::Error>>
50176        + Send;
50177    fn r#get_tcp_defer_accept(&self) -> Self::GetTcpDeferAcceptResponseFut;
50178    type SetTcpWindowClampResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpWindowClampResult, fidl::Error>>
50179        + Send;
50180    fn r#set_tcp_window_clamp(&self, value: u32) -> Self::SetTcpWindowClampResponseFut;
50181    type GetTcpWindowClampResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpWindowClampResult, fidl::Error>>
50182        + Send;
50183    fn r#get_tcp_window_clamp(&self) -> Self::GetTcpWindowClampResponseFut;
50184    type GetTcpInfoResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpInfoResult, fidl::Error>>
50185        + Send;
50186    fn r#get_tcp_info(&self) -> Self::GetTcpInfoResponseFut;
50187    type SetTcpQuickAckResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpQuickAckResult, fidl::Error>>
50188        + Send;
50189    fn r#set_tcp_quick_ack(&self, value: bool) -> Self::SetTcpQuickAckResponseFut;
50190    type GetTcpQuickAckResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpQuickAckResult, fidl::Error>>
50191        + Send;
50192    fn r#get_tcp_quick_ack(&self) -> Self::GetTcpQuickAckResponseFut;
50193    type SetTcpCongestionResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpCongestionResult, fidl::Error>>
50194        + Send;
50195    fn r#set_tcp_congestion(
50196        &self,
50197        value: TcpCongestionControl,
50198    ) -> Self::SetTcpCongestionResponseFut;
50199    type GetTcpCongestionResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpCongestionResult, fidl::Error>>
50200        + Send;
50201    fn r#get_tcp_congestion(&self) -> Self::GetTcpCongestionResponseFut;
50202    type SetTcpUserTimeoutResponseFut: std::future::Future<Output = Result<StreamSocketSetTcpUserTimeoutResult, fidl::Error>>
50203        + Send;
50204    fn r#set_tcp_user_timeout(&self, value_millis: u32) -> Self::SetTcpUserTimeoutResponseFut;
50205    type GetTcpUserTimeoutResponseFut: std::future::Future<Output = Result<StreamSocketGetTcpUserTimeoutResult, fidl::Error>>
50206        + Send;
50207    fn r#get_tcp_user_timeout(&self) -> Self::GetTcpUserTimeoutResponseFut;
50208}
50209#[derive(Debug)]
50210#[cfg(target_os = "fuchsia")]
50211pub struct StreamSocketSynchronousProxy {
50212    client: fidl::client::sync::Client,
50213}
50214
50215#[cfg(target_os = "fuchsia")]
50216impl fidl::endpoints::SynchronousProxy for StreamSocketSynchronousProxy {
50217    type Proxy = StreamSocketProxy;
50218    type Protocol = StreamSocketMarker;
50219
50220    fn from_channel(inner: fidl::Channel) -> Self {
50221        Self::new(inner)
50222    }
50223
50224    fn into_channel(self) -> fidl::Channel {
50225        self.client.into_channel()
50226    }
50227
50228    fn as_channel(&self) -> &fidl::Channel {
50229        self.client.as_channel()
50230    }
50231}
50232
50233#[cfg(target_os = "fuchsia")]
50234impl StreamSocketSynchronousProxy {
50235    pub fn new(channel: fidl::Channel) -> Self {
50236        let protocol_name = <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
50237        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
50238    }
50239
50240    pub fn into_channel(self) -> fidl::Channel {
50241        self.client.into_channel()
50242    }
50243
50244    /// Waits until an event arrives and returns it. It is safe for other
50245    /// threads to make concurrent requests while waiting for an event.
50246    pub fn wait_for_event(
50247        &self,
50248        deadline: zx::MonotonicInstant,
50249    ) -> Result<StreamSocketEvent, fidl::Error> {
50250        StreamSocketEvent::decode(self.client.wait_for_event(deadline)?)
50251    }
50252
50253    pub fn r#clone(
50254        &self,
50255        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
50256    ) -> Result<(), fidl::Error> {
50257        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
50258            (request,),
50259            0x20d8a7aba2168a79,
50260            fidl::encoding::DynamicFlags::empty(),
50261        )
50262    }
50263
50264    /// Terminates the connection.
50265    ///
50266    /// After calling `Close`, the client must not send any other requests.
50267    ///
50268    /// Servers, after sending the status response, should close the connection
50269    /// regardless of status and without sending an epitaph.
50270    ///
50271    /// Closing the client end of the channel should be semantically equivalent
50272    /// to calling `Close` without knowing when the close has completed or its
50273    /// status.
50274    pub fn r#close(
50275        &self,
50276        ___deadline: zx::MonotonicInstant,
50277    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
50278        let _response = self.client.send_query::<
50279            fidl::encoding::EmptyPayload,
50280            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
50281        >(
50282            (),
50283            0x5ac5d459ad7f657e,
50284            fidl::encoding::DynamicFlags::empty(),
50285            ___deadline,
50286        )?;
50287        Ok(_response.map(|x| x))
50288    }
50289
50290    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
50291        let _response = self.client.send_query::<
50292            fidl::encoding::EmptyPayload,
50293            fidl_fuchsia_unknown::QueryableQueryResponse,
50294        >(
50295            (),
50296            0x2658edee9decfc06,
50297            fidl::encoding::DynamicFlags::empty(),
50298            ___deadline,
50299        )?;
50300        Ok(_response.protocol)
50301    }
50302
50303    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
50304    pub fn r#set_reuse_address(
50305        &self,
50306        mut value: bool,
50307        ___deadline: zx::MonotonicInstant,
50308    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
50309        let _response =
50310            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
50311                fidl::encoding::EmptyStruct,
50312                fidl_fuchsia_posix::Errno,
50313            >>(
50314                (value,),
50315                0x1fd74ee8b9a4a876,
50316                fidl::encoding::DynamicFlags::empty(),
50317                ___deadline,
50318            )?;
50319        Ok(_response.map(|x| x))
50320    }
50321
50322    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
50323    pub fn r#get_reuse_address(
50324        &self,
50325        ___deadline: zx::MonotonicInstant,
50326    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
50327        let _response = self
50328            .client
50329            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50330                BaseSocketGetReuseAddressResponse,
50331                fidl_fuchsia_posix::Errno,
50332            >>(
50333                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
50334            )?;
50335        Ok(_response.map(|x| x.value))
50336    }
50337
50338    /// Get `SOL_SOCKET` -> `SO_ERROR`.
50339    /// Returns the last error if there is an error set on the socket.
50340    pub fn r#get_error(
50341        &self,
50342        ___deadline: zx::MonotonicInstant,
50343    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
50344        let _response =
50345            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50346                fidl::encoding::EmptyStruct,
50347                fidl_fuchsia_posix::Errno,
50348            >>(
50349                (),
50350                0x5aad39b33e5f6ebb,
50351                fidl::encoding::DynamicFlags::empty(),
50352                ___deadline,
50353            )?;
50354        Ok(_response.map(|x| x))
50355    }
50356
50357    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
50358    pub fn r#set_broadcast(
50359        &self,
50360        mut value: bool,
50361        ___deadline: zx::MonotonicInstant,
50362    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
50363        let _response =
50364            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
50365                fidl::encoding::EmptyStruct,
50366                fidl_fuchsia_posix::Errno,
50367            >>(
50368                (value,),
50369                0x6023e081ce3cd947,
50370                fidl::encoding::DynamicFlags::empty(),
50371                ___deadline,
50372            )?;
50373        Ok(_response.map(|x| x))
50374    }
50375
50376    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
50377    pub fn r#get_broadcast(
50378        &self,
50379        ___deadline: zx::MonotonicInstant,
50380    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
50381        let _response =
50382            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50383                BaseSocketGetBroadcastResponse,
50384                fidl_fuchsia_posix::Errno,
50385            >>(
50386                (),
50387                0x68796fc556f9780d,
50388                fidl::encoding::DynamicFlags::empty(),
50389                ___deadline,
50390            )?;
50391        Ok(_response.map(|x| x.value))
50392    }
50393
50394    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
50395    pub fn r#set_send_buffer(
50396        &self,
50397        mut value_bytes: u64,
50398        ___deadline: zx::MonotonicInstant,
50399    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
50400        let _response =
50401            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
50402                fidl::encoding::EmptyStruct,
50403                fidl_fuchsia_posix::Errno,
50404            >>(
50405                (value_bytes,),
50406                0x756eac32d73a7a70,
50407                fidl::encoding::DynamicFlags::empty(),
50408                ___deadline,
50409            )?;
50410        Ok(_response.map(|x| x))
50411    }
50412
50413    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
50414    pub fn r#get_send_buffer(
50415        &self,
50416        ___deadline: zx::MonotonicInstant,
50417    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
50418        let _response = self
50419            .client
50420            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50421                BaseSocketGetSendBufferResponse,
50422                fidl_fuchsia_posix::Errno,
50423            >>(
50424                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
50425            )?;
50426        Ok(_response.map(|x| x.value_bytes))
50427    }
50428
50429    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
50430    pub fn r#set_receive_buffer(
50431        &self,
50432        mut value_bytes: u64,
50433        ___deadline: zx::MonotonicInstant,
50434    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
50435        let _response =
50436            self.client
50437                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
50438                    fidl::encoding::EmptyStruct,
50439                    fidl_fuchsia_posix::Errno,
50440                >>(
50441                    (value_bytes,),
50442                    0x6b0cf2f1919c7001,
50443                    fidl::encoding::DynamicFlags::empty(),
50444                    ___deadline,
50445                )?;
50446        Ok(_response.map(|x| x))
50447    }
50448
50449    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
50450    pub fn r#get_receive_buffer(
50451        &self,
50452        ___deadline: zx::MonotonicInstant,
50453    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
50454        let _response = self
50455            .client
50456            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50457                BaseSocketGetReceiveBufferResponse,
50458                fidl_fuchsia_posix::Errno,
50459            >>(
50460                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
50461            )?;
50462        Ok(_response.map(|x| x.value_bytes))
50463    }
50464
50465    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
50466    pub fn r#set_keep_alive(
50467        &self,
50468        mut value: bool,
50469        ___deadline: zx::MonotonicInstant,
50470    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
50471        let _response =
50472            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
50473                fidl::encoding::EmptyStruct,
50474                fidl_fuchsia_posix::Errno,
50475            >>(
50476                (value,),
50477                0x572df8f0b920d2c7,
50478                fidl::encoding::DynamicFlags::empty(),
50479                ___deadline,
50480            )?;
50481        Ok(_response.map(|x| x))
50482    }
50483
50484    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
50485    pub fn r#get_keep_alive(
50486        &self,
50487        ___deadline: zx::MonotonicInstant,
50488    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
50489        let _response =
50490            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50491                BaseSocketGetKeepAliveResponse,
50492                fidl_fuchsia_posix::Errno,
50493            >>(
50494                (),
50495                0x2dd29d3215f2c9d2,
50496                fidl::encoding::DynamicFlags::empty(),
50497                ___deadline,
50498            )?;
50499        Ok(_response.map(|x| x.value))
50500    }
50501
50502    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
50503    pub fn r#set_out_of_band_inline(
50504        &self,
50505        mut value: bool,
50506        ___deadline: zx::MonotonicInstant,
50507    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
50508        let _response =
50509            self.client
50510                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
50511                    fidl::encoding::EmptyStruct,
50512                    fidl_fuchsia_posix::Errno,
50513                >>(
50514                    (value,),
50515                    0x3ecb49968bee439,
50516                    fidl::encoding::DynamicFlags::empty(),
50517                    ___deadline,
50518                )?;
50519        Ok(_response.map(|x| x))
50520    }
50521
50522    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
50523    pub fn r#get_out_of_band_inline(
50524        &self,
50525        ___deadline: zx::MonotonicInstant,
50526    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
50527        let _response = self
50528            .client
50529            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50530                BaseSocketGetOutOfBandInlineResponse,
50531                fidl_fuchsia_posix::Errno,
50532            >>(
50533                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
50534            )?;
50535        Ok(_response.map(|x| x.value))
50536    }
50537
50538    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
50539    pub fn r#set_no_check(
50540        &self,
50541        mut value: bool,
50542        ___deadline: zx::MonotonicInstant,
50543    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
50544        let _response =
50545            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
50546                fidl::encoding::EmptyStruct,
50547                fidl_fuchsia_posix::Errno,
50548            >>(
50549                (value,),
50550                0x6bbf00c53a4c78c2,
50551                fidl::encoding::DynamicFlags::empty(),
50552                ___deadline,
50553            )?;
50554        Ok(_response.map(|x| x))
50555    }
50556
50557    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
50558    pub fn r#get_no_check(
50559        &self,
50560        ___deadline: zx::MonotonicInstant,
50561    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
50562        let _response =
50563            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50564                BaseSocketGetNoCheckResponse,
50565                fidl_fuchsia_posix::Errno,
50566            >>(
50567                (),
50568                0x2cd4249286417694,
50569                fidl::encoding::DynamicFlags::empty(),
50570                ___deadline,
50571            )?;
50572        Ok(_response.map(|x| x.value))
50573    }
50574
50575    /// Set `SOL_SOCKET` -> `SO_LINGER`.
50576    pub fn r#set_linger(
50577        &self,
50578        mut linger: bool,
50579        mut length_secs: u32,
50580        ___deadline: zx::MonotonicInstant,
50581    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
50582        let _response =
50583            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
50584                fidl::encoding::EmptyStruct,
50585                fidl_fuchsia_posix::Errno,
50586            >>(
50587                (linger, length_secs),
50588                0x45386351246e998e,
50589                fidl::encoding::DynamicFlags::empty(),
50590                ___deadline,
50591            )?;
50592        Ok(_response.map(|x| x))
50593    }
50594
50595    /// Get `SOL_SOCKET` -> `SO_LINGER`.
50596    pub fn r#get_linger(
50597        &self,
50598        ___deadline: zx::MonotonicInstant,
50599    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
50600        let _response =
50601            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50602                BaseSocketGetLingerResponse,
50603                fidl_fuchsia_posix::Errno,
50604            >>(
50605                (),
50606                0x48eb20fc5ccb0e45,
50607                fidl::encoding::DynamicFlags::empty(),
50608                ___deadline,
50609            )?;
50610        Ok(_response.map(|x| (x.linger, x.length_secs)))
50611    }
50612
50613    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
50614    pub fn r#set_reuse_port(
50615        &self,
50616        mut value: bool,
50617        ___deadline: zx::MonotonicInstant,
50618    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
50619        let _response =
50620            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
50621                fidl::encoding::EmptyStruct,
50622                fidl_fuchsia_posix::Errno,
50623            >>(
50624                (value,),
50625                0x24dd3e5cb36d9ccb,
50626                fidl::encoding::DynamicFlags::empty(),
50627                ___deadline,
50628            )?;
50629        Ok(_response.map(|x| x))
50630    }
50631
50632    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
50633    pub fn r#get_reuse_port(
50634        &self,
50635        ___deadline: zx::MonotonicInstant,
50636    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
50637        let _response =
50638            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50639                BaseSocketGetReusePortResponse,
50640                fidl_fuchsia_posix::Errno,
50641            >>(
50642                (),
50643                0x7a112c1ab54ff828,
50644                fidl::encoding::DynamicFlags::empty(),
50645                ___deadline,
50646            )?;
50647        Ok(_response.map(|x| x.value))
50648    }
50649
50650    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
50651    pub fn r#get_accept_conn(
50652        &self,
50653        ___deadline: zx::MonotonicInstant,
50654    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
50655        let _response = self
50656            .client
50657            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50658                BaseSocketGetAcceptConnResponse,
50659                fidl_fuchsia_posix::Errno,
50660            >>(
50661                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
50662            )?;
50663        Ok(_response.map(|x| x.value))
50664    }
50665
50666    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
50667    pub fn r#set_bind_to_device(
50668        &self,
50669        mut value: &str,
50670        ___deadline: zx::MonotonicInstant,
50671    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
50672        let _response =
50673            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
50674                fidl::encoding::EmptyStruct,
50675                fidl_fuchsia_posix::Errno,
50676            >>(
50677                (value,),
50678                0x2118b483f28aafc4,
50679                fidl::encoding::DynamicFlags::empty(),
50680                ___deadline,
50681            )?;
50682        Ok(_response.map(|x| x))
50683    }
50684
50685    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
50686    pub fn r#get_bind_to_device(
50687        &self,
50688        ___deadline: zx::MonotonicInstant,
50689    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
50690        let _response = self
50691            .client
50692            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50693                BaseSocketGetBindToDeviceResponse,
50694                fidl_fuchsia_posix::Errno,
50695            >>(
50696                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
50697            )?;
50698        Ok(_response.map(|x| x.value))
50699    }
50700
50701    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
50702    /// If `value` is 0, this clears the bound interface.
50703    pub fn r#set_bind_to_interface_index(
50704        &self,
50705        mut value: u64,
50706        ___deadline: zx::MonotonicInstant,
50707    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
50708        let _response =
50709            self.client
50710                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
50711                    fidl::encoding::EmptyStruct,
50712                    fidl_fuchsia_posix::Errno,
50713                >>(
50714                    (value,),
50715                    0x6e387a0def00821,
50716                    fidl::encoding::DynamicFlags::empty(),
50717                    ___deadline,
50718                )?;
50719        Ok(_response.map(|x| x))
50720    }
50721
50722    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
50723    pub fn r#get_bind_to_interface_index(
50724        &self,
50725        ___deadline: zx::MonotonicInstant,
50726    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
50727        let _response = self
50728            .client
50729            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50730                BaseSocketGetBindToInterfaceIndexResponse,
50731                fidl_fuchsia_posix::Errno,
50732            >>(
50733                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
50734            )?;
50735        Ok(_response.map(|x| x.value))
50736    }
50737
50738    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
50739    pub fn r#set_timestamp(
50740        &self,
50741        mut value: TimestampOption,
50742        ___deadline: zx::MonotonicInstant,
50743    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
50744        let _response =
50745            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
50746                fidl::encoding::EmptyStruct,
50747                fidl_fuchsia_posix::Errno,
50748            >>(
50749                (value,),
50750                0x285d6516c263d839,
50751                fidl::encoding::DynamicFlags::empty(),
50752                ___deadline,
50753            )?;
50754        Ok(_response.map(|x| x))
50755    }
50756
50757    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
50758    pub fn r#get_timestamp(
50759        &self,
50760        ___deadline: zx::MonotonicInstant,
50761    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
50762        let _response =
50763            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50764                BaseSocketGetTimestampResponse,
50765                fidl_fuchsia_posix::Errno,
50766            >>(
50767                (),
50768                0x49f2fffbbcc2bd27,
50769                fidl::encoding::DynamicFlags::empty(),
50770                ___deadline,
50771            )?;
50772        Ok(_response.map(|x| x.value))
50773    }
50774
50775    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
50776    /// unlike the standard SO_MARK, this API has multiple mark domains and each
50777    /// mark can be set independently in each domain.
50778    pub fn r#set_mark(
50779        &self,
50780        mut domain: fidl_fuchsia_net::MarkDomain,
50781        mut mark: &OptionalUint32,
50782        ___deadline: zx::MonotonicInstant,
50783    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
50784        let _response =
50785            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
50786                fidl::encoding::EmptyStruct,
50787                fidl_fuchsia_posix::Errno,
50788            >>(
50789                (domain, mark),
50790                0x6ead6de09f653236,
50791                fidl::encoding::DynamicFlags::empty(),
50792                ___deadline,
50793            )?;
50794        Ok(_response.map(|x| x))
50795    }
50796
50797    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
50798    /// unlike the standard SO_MARK, this API has multiple mark domains and each
50799    /// mark can be retrieved independently in each domain.
50800    pub fn r#get_mark(
50801        &self,
50802        mut domain: fidl_fuchsia_net::MarkDomain,
50803        ___deadline: zx::MonotonicInstant,
50804    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
50805        let _response =
50806            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
50807                BaseSocketGetMarkResponse,
50808                fidl_fuchsia_posix::Errno,
50809            >>(
50810                (domain,),
50811                0x57a2752c61d93d47,
50812                fidl::encoding::DynamicFlags::empty(),
50813                ___deadline,
50814            )?;
50815        Ok(_response.map(|x| x.mark))
50816    }
50817
50818    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
50819    pub fn r#get_cookie(
50820        &self,
50821        ___deadline: zx::MonotonicInstant,
50822    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
50823        let _response =
50824            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50825                BaseSocketGetCookieResponse,
50826                fidl_fuchsia_posix::Errno,
50827            >>(
50828                (),
50829                0x2c2f47fd8f924e52,
50830                fidl::encoding::DynamicFlags::empty(),
50831                ___deadline,
50832            )?;
50833        Ok(_response.map(|x| x.value))
50834    }
50835
50836    /// Sets the local address used for the socket.
50837    pub fn r#bind(
50838        &self,
50839        mut addr: &fidl_fuchsia_net::SocketAddress,
50840        ___deadline: zx::MonotonicInstant,
50841    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
50842        let _response =
50843            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
50844                fidl::encoding::EmptyStruct,
50845                fidl_fuchsia_posix::Errno,
50846            >>(
50847                (addr,),
50848                0x4bc6400ae92125d,
50849                fidl::encoding::DynamicFlags::empty(),
50850                ___deadline,
50851            )?;
50852        Ok(_response.map(|x| x))
50853    }
50854
50855    /// Initiates a connection to a remote address.
50856    pub fn r#connect(
50857        &self,
50858        mut addr: &fidl_fuchsia_net::SocketAddress,
50859        ___deadline: zx::MonotonicInstant,
50860    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
50861        let _response =
50862            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
50863                fidl::encoding::EmptyStruct,
50864                fidl_fuchsia_posix::Errno,
50865            >>(
50866                (addr,),
50867                0x5f05f19bfdd38871,
50868                fidl::encoding::DynamicFlags::empty(),
50869                ___deadline,
50870            )?;
50871        Ok(_response.map(|x| x))
50872    }
50873
50874    /// Clears connection information from this socket.
50875    pub fn r#disconnect(
50876        &self,
50877        ___deadline: zx::MonotonicInstant,
50878    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
50879        let _response =
50880            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50881                fidl::encoding::EmptyStruct,
50882                fidl_fuchsia_posix::Errno,
50883            >>(
50884                (),
50885                0x74e63b91f7b29b2,
50886                fidl::encoding::DynamicFlags::empty(),
50887                ___deadline,
50888            )?;
50889        Ok(_response.map(|x| x))
50890    }
50891
50892    /// Retrieves the local socket address.
50893    pub fn r#get_sock_name(
50894        &self,
50895        ___deadline: zx::MonotonicInstant,
50896    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
50897        let _response = self
50898            .client
50899            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50900                BaseNetworkSocketGetSockNameResponse,
50901                fidl_fuchsia_posix::Errno,
50902            >>(
50903                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
50904            )?;
50905        Ok(_response.map(|x| x.addr))
50906    }
50907
50908    /// Retrieves the remote socket address.
50909    pub fn r#get_peer_name(
50910        &self,
50911        ___deadline: zx::MonotonicInstant,
50912    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
50913        let _response = self
50914            .client
50915            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50916                BaseNetworkSocketGetPeerNameResponse,
50917                fidl_fuchsia_posix::Errno,
50918            >>(
50919                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
50920            )?;
50921        Ok(_response.map(|x| x.addr))
50922    }
50923
50924    /// Shuts down part of the socket.
50925    pub fn r#shutdown(
50926        &self,
50927        mut mode: ShutdownMode,
50928        ___deadline: zx::MonotonicInstant,
50929    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
50930        let _response =
50931            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
50932                fidl::encoding::EmptyStruct,
50933                fidl_fuchsia_posix::Errno,
50934            >>(
50935                (mode,),
50936                0x247f38b6db68c336,
50937                fidl::encoding::DynamicFlags::empty(),
50938                ___deadline,
50939            )?;
50940        Ok(_response.map(|x| x))
50941    }
50942
50943    /// Set `SOL_IP` -> `IP_TOS`.
50944    pub fn r#set_ip_type_of_service(
50945        &self,
50946        mut value: u8,
50947        ___deadline: zx::MonotonicInstant,
50948    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
50949        let _response = self.client.send_query::<
50950            BaseNetworkSocketSetIpTypeOfServiceRequest,
50951            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
50952        >(
50953            (value,),
50954            0x995c600475b6d46,
50955            fidl::encoding::DynamicFlags::empty(),
50956            ___deadline,
50957        )?;
50958        Ok(_response.map(|x| x))
50959    }
50960
50961    /// Get `SOL_IP` -> `IP_TOS`.
50962    pub fn r#get_ip_type_of_service(
50963        &self,
50964        ___deadline: zx::MonotonicInstant,
50965    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
50966        let _response = self
50967            .client
50968            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
50969                BaseNetworkSocketGetIpTypeOfServiceResponse,
50970                fidl_fuchsia_posix::Errno,
50971            >>(
50972                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
50973            )?;
50974        Ok(_response.map(|x| x.value))
50975    }
50976
50977    /// Set `SOL_IP` -> `IP_TTL`.
50978    pub fn r#set_ip_ttl(
50979        &self,
50980        mut value: &OptionalUint8,
50981        ___deadline: zx::MonotonicInstant,
50982    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
50983        let _response =
50984            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
50985                fidl::encoding::EmptyStruct,
50986                fidl_fuchsia_posix::Errno,
50987            >>(
50988                (value,),
50989                0x29e2424b433ae1ef,
50990                fidl::encoding::DynamicFlags::empty(),
50991                ___deadline,
50992            )?;
50993        Ok(_response.map(|x| x))
50994    }
50995
50996    /// Get `SOL_IP` -> `IP_TTL`.
50997    pub fn r#get_ip_ttl(
50998        &self,
50999        ___deadline: zx::MonotonicInstant,
51000    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
51001        let _response = self
51002            .client
51003            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51004                BaseNetworkSocketGetIpTtlResponse,
51005                fidl_fuchsia_posix::Errno,
51006            >>(
51007                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
51008            )?;
51009        Ok(_response.map(|x| x.value))
51010    }
51011
51012    /// Set `SOL_IP` -> `IP_PKTINFO`.
51013    pub fn r#set_ip_packet_info(
51014        &self,
51015        mut value: bool,
51016        ___deadline: zx::MonotonicInstant,
51017    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
51018        let _response =
51019            self.client
51020                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
51021                    fidl::encoding::EmptyStruct,
51022                    fidl_fuchsia_posix::Errno,
51023                >>(
51024                    (value,),
51025                    0x392d16bee20c0e16,
51026                    fidl::encoding::DynamicFlags::empty(),
51027                    ___deadline,
51028                )?;
51029        Ok(_response.map(|x| x))
51030    }
51031
51032    /// Get `SOL_IP` -> `IP_PKTINFO`.
51033    pub fn r#get_ip_packet_info(
51034        &self,
51035        ___deadline: zx::MonotonicInstant,
51036    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
51037        let _response = self
51038            .client
51039            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51040                BaseNetworkSocketGetIpPacketInfoResponse,
51041                fidl_fuchsia_posix::Errno,
51042            >>(
51043                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
51044            )?;
51045        Ok(_response.map(|x| x.value))
51046    }
51047
51048    /// Set `SOL_IP` -> `IP_RECVTOS`.
51049    pub fn r#set_ip_receive_type_of_service(
51050        &self,
51051        mut value: bool,
51052        ___deadline: zx::MonotonicInstant,
51053    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
51054        let _response = self.client.send_query::<
51055            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
51056            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51057        >(
51058            (value,),
51059            0x6c4f6714995f84ef,
51060            fidl::encoding::DynamicFlags::empty(),
51061            ___deadline,
51062        )?;
51063        Ok(_response.map(|x| x))
51064    }
51065
51066    /// Get `SOL_IP` -> `IP_RECVTOS`.
51067    pub fn r#get_ip_receive_type_of_service(
51068        &self,
51069        ___deadline: zx::MonotonicInstant,
51070    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
51071        let _response = self
51072            .client
51073            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51074                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
51075                fidl_fuchsia_posix::Errno,
51076            >>(
51077                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
51078            )?;
51079        Ok(_response.map(|x| x.value))
51080    }
51081
51082    /// Set `SOL_IP` -> `IP_RECVTTL`.
51083    pub fn r#set_ip_receive_ttl(
51084        &self,
51085        mut value: bool,
51086        ___deadline: zx::MonotonicInstant,
51087    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
51088        let _response =
51089            self.client
51090                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
51091                    fidl::encoding::EmptyStruct,
51092                    fidl_fuchsia_posix::Errno,
51093                >>(
51094                    (value,),
51095                    0x46f15be0ce0ab82b,
51096                    fidl::encoding::DynamicFlags::empty(),
51097                    ___deadline,
51098                )?;
51099        Ok(_response.map(|x| x))
51100    }
51101
51102    /// Get `SOL_IP` -> `IP_RECVTTL`.
51103    pub fn r#get_ip_receive_ttl(
51104        &self,
51105        ___deadline: zx::MonotonicInstant,
51106    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
51107        let _response = self
51108            .client
51109            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51110                BaseNetworkSocketGetIpReceiveTtlResponse,
51111                fidl_fuchsia_posix::Errno,
51112            >>(
51113                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
51114            )?;
51115        Ok(_response.map(|x| x.value))
51116    }
51117
51118    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
51119    pub fn r#set_ip_multicast_interface(
51120        &self,
51121        mut iface: u64,
51122        mut address: &fidl_fuchsia_net::Ipv4Address,
51123        ___deadline: zx::MonotonicInstant,
51124    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
51125        let _response = self.client.send_query::<
51126            BaseNetworkSocketSetIpMulticastInterfaceRequest,
51127            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51128        >(
51129            (iface, address,),
51130            0x752fbfa9b12befe,
51131            fidl::encoding::DynamicFlags::empty(),
51132            ___deadline,
51133        )?;
51134        Ok(_response.map(|x| x))
51135    }
51136
51137    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
51138    pub fn r#get_ip_multicast_interface(
51139        &self,
51140        ___deadline: zx::MonotonicInstant,
51141    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
51142        let _response = self
51143            .client
51144            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51145                BaseNetworkSocketGetIpMulticastInterfaceResponse,
51146                fidl_fuchsia_posix::Errno,
51147            >>(
51148                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
51149            )?;
51150        Ok(_response.map(|x| x.value))
51151    }
51152
51153    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
51154    pub fn r#set_ip_multicast_ttl(
51155        &self,
51156        mut value: &OptionalUint8,
51157        ___deadline: zx::MonotonicInstant,
51158    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
51159        let _response =
51160            self.client
51161                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
51162                    fidl::encoding::EmptyStruct,
51163                    fidl_fuchsia_posix::Errno,
51164                >>(
51165                    (value,),
51166                    0x63134d53772916a1,
51167                    fidl::encoding::DynamicFlags::empty(),
51168                    ___deadline,
51169                )?;
51170        Ok(_response.map(|x| x))
51171    }
51172
51173    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
51174    pub fn r#get_ip_multicast_ttl(
51175        &self,
51176        ___deadline: zx::MonotonicInstant,
51177    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
51178        let _response = self
51179            .client
51180            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51181                BaseNetworkSocketGetIpMulticastTtlResponse,
51182                fidl_fuchsia_posix::Errno,
51183            >>(
51184                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
51185            )?;
51186        Ok(_response.map(|x| x.value))
51187    }
51188
51189    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
51190    pub fn r#set_ip_multicast_loopback(
51191        &self,
51192        mut value: bool,
51193        ___deadline: zx::MonotonicInstant,
51194    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
51195        let _response = self.client.send_query::<
51196            BaseNetworkSocketSetIpMulticastLoopbackRequest,
51197            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51198        >(
51199            (value,),
51200            0x20c55c11f00943ea,
51201            fidl::encoding::DynamicFlags::empty(),
51202            ___deadline,
51203        )?;
51204        Ok(_response.map(|x| x))
51205    }
51206
51207    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
51208    pub fn r#get_ip_multicast_loopback(
51209        &self,
51210        ___deadline: zx::MonotonicInstant,
51211    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
51212        let _response = self
51213            .client
51214            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51215                BaseNetworkSocketGetIpMulticastLoopbackResponse,
51216                fidl_fuchsia_posix::Errno,
51217            >>(
51218                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
51219            )?;
51220        Ok(_response.map(|x| x.value))
51221    }
51222
51223    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
51224    pub fn r#add_ip_membership(
51225        &self,
51226        mut membership: &IpMulticastMembership,
51227        ___deadline: zx::MonotonicInstant,
51228    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
51229        let _response =
51230            self.client
51231                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
51232                    fidl::encoding::EmptyStruct,
51233                    fidl_fuchsia_posix::Errno,
51234                >>(
51235                    (membership,),
51236                    0x76bc7df115a3b4d0,
51237                    fidl::encoding::DynamicFlags::empty(),
51238                    ___deadline,
51239                )?;
51240        Ok(_response.map(|x| x))
51241    }
51242
51243    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
51244    pub fn r#drop_ip_membership(
51245        &self,
51246        mut membership: &IpMulticastMembership,
51247        ___deadline: zx::MonotonicInstant,
51248    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
51249        let _response =
51250            self.client
51251                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
51252                    fidl::encoding::EmptyStruct,
51253                    fidl_fuchsia_posix::Errno,
51254                >>(
51255                    (membership,),
51256                    0x2888f3099188d03,
51257                    fidl::encoding::DynamicFlags::empty(),
51258                    ___deadline,
51259                )?;
51260        Ok(_response.map(|x| x))
51261    }
51262
51263    /// Set `SOL_IP` -> `IP_TRANSPARENT`
51264    pub fn r#set_ip_transparent(
51265        &self,
51266        mut value: bool,
51267        ___deadline: zx::MonotonicInstant,
51268    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
51269        let _response =
51270            self.client
51271                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
51272                    fidl::encoding::EmptyStruct,
51273                    fidl_fuchsia_posix::Errno,
51274                >>(
51275                    (value,),
51276                    0x1ae532b0c066e3a0,
51277                    fidl::encoding::DynamicFlags::empty(),
51278                    ___deadline,
51279                )?;
51280        Ok(_response.map(|x| x))
51281    }
51282
51283    /// Get `SOL_IP` -> `IP_TRANSPARENT`
51284    pub fn r#get_ip_transparent(
51285        &self,
51286        ___deadline: zx::MonotonicInstant,
51287    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
51288        let _response = self
51289            .client
51290            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51291                BaseNetworkSocketGetIpTransparentResponse,
51292                fidl_fuchsia_posix::Errno,
51293            >>(
51294                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
51295            )?;
51296        Ok(_response.map(|x| x.value))
51297    }
51298
51299    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
51300    pub fn r#set_ip_receive_original_destination_address(
51301        &self,
51302        mut value: bool,
51303        ___deadline: zx::MonotonicInstant,
51304    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
51305        let _response = self.client.send_query::<
51306            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
51307            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51308        >(
51309            (value,),
51310            0x4722b4ce52f7840,
51311            fidl::encoding::DynamicFlags::empty(),
51312            ___deadline,
51313        )?;
51314        Ok(_response.map(|x| x))
51315    }
51316
51317    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
51318    pub fn r#get_ip_receive_original_destination_address(
51319        &self,
51320        ___deadline: zx::MonotonicInstant,
51321    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
51322        let _response = self
51323            .client
51324            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51325                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
51326                fidl_fuchsia_posix::Errno,
51327            >>(
51328                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
51329            )?;
51330        Ok(_response.map(|x| x.value))
51331    }
51332
51333    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
51334    pub fn r#add_ipv6_membership(
51335        &self,
51336        mut membership: &Ipv6MulticastMembership,
51337        ___deadline: zx::MonotonicInstant,
51338    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
51339        let _response =
51340            self.client
51341                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
51342                    fidl::encoding::EmptyStruct,
51343                    fidl_fuchsia_posix::Errno,
51344                >>(
51345                    (membership,),
51346                    0x7c94727acb4ea4b3,
51347                    fidl::encoding::DynamicFlags::empty(),
51348                    ___deadline,
51349                )?;
51350        Ok(_response.map(|x| x))
51351    }
51352
51353    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
51354    pub fn r#drop_ipv6_membership(
51355        &self,
51356        mut membership: &Ipv6MulticastMembership,
51357        ___deadline: zx::MonotonicInstant,
51358    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
51359        let _response = self.client.send_query::<
51360            BaseNetworkSocketDropIpv6MembershipRequest,
51361            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51362        >(
51363            (membership,),
51364            0x42104c70ccaba304,
51365            fidl::encoding::DynamicFlags::empty(),
51366            ___deadline,
51367        )?;
51368        Ok(_response.map(|x| x))
51369    }
51370
51371    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
51372    pub fn r#set_ipv6_multicast_interface(
51373        &self,
51374        mut value: u64,
51375        ___deadline: zx::MonotonicInstant,
51376    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
51377        let _response = self.client.send_query::<
51378            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
51379            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51380        >(
51381            (value,),
51382            0x135f76db3774ab3b,
51383            fidl::encoding::DynamicFlags::empty(),
51384            ___deadline,
51385        )?;
51386        Ok(_response.map(|x| x))
51387    }
51388
51389    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
51390    pub fn r#get_ipv6_multicast_interface(
51391        &self,
51392        ___deadline: zx::MonotonicInstant,
51393    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
51394        let _response = self
51395            .client
51396            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51397                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
51398                fidl_fuchsia_posix::Errno,
51399            >>(
51400                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
51401            )?;
51402        Ok(_response.map(|x| x.value))
51403    }
51404
51405    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
51406    pub fn r#set_ipv6_unicast_hops(
51407        &self,
51408        mut value: &OptionalUint8,
51409        ___deadline: zx::MonotonicInstant,
51410    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
51411        let _response = self.client.send_query::<
51412            BaseNetworkSocketSetIpv6UnicastHopsRequest,
51413            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51414        >(
51415            (value,),
51416            0x157d51e98f462859,
51417            fidl::encoding::DynamicFlags::empty(),
51418            ___deadline,
51419        )?;
51420        Ok(_response.map(|x| x))
51421    }
51422
51423    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
51424    pub fn r#get_ipv6_unicast_hops(
51425        &self,
51426        ___deadline: zx::MonotonicInstant,
51427    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
51428        let _response = self
51429            .client
51430            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51431                BaseNetworkSocketGetIpv6UnicastHopsResponse,
51432                fidl_fuchsia_posix::Errno,
51433            >>(
51434                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
51435            )?;
51436        Ok(_response.map(|x| x.value))
51437    }
51438
51439    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
51440    pub fn r#set_ipv6_receive_hop_limit(
51441        &self,
51442        mut value: bool,
51443        ___deadline: zx::MonotonicInstant,
51444    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
51445        let _response = self.client.send_query::<
51446            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
51447            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51448        >(
51449            (value,),
51450            0x5c24808ed2e84a1e,
51451            fidl::encoding::DynamicFlags::empty(),
51452            ___deadline,
51453        )?;
51454        Ok(_response.map(|x| x))
51455    }
51456
51457    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
51458    pub fn r#get_ipv6_receive_hop_limit(
51459        &self,
51460        ___deadline: zx::MonotonicInstant,
51461    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
51462        let _response = self
51463            .client
51464            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51465                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
51466                fidl_fuchsia_posix::Errno,
51467            >>(
51468                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
51469            )?;
51470        Ok(_response.map(|x| x.value))
51471    }
51472
51473    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
51474    pub fn r#set_ipv6_multicast_hops(
51475        &self,
51476        mut value: &OptionalUint8,
51477        ___deadline: zx::MonotonicInstant,
51478    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
51479        let _response = self.client.send_query::<
51480            BaseNetworkSocketSetIpv6MulticastHopsRequest,
51481            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51482        >(
51483            (value,),
51484            0x25b9cd4d181f82c1,
51485            fidl::encoding::DynamicFlags::empty(),
51486            ___deadline,
51487        )?;
51488        Ok(_response.map(|x| x))
51489    }
51490
51491    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
51492    pub fn r#get_ipv6_multicast_hops(
51493        &self,
51494        ___deadline: zx::MonotonicInstant,
51495    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
51496        let _response = self
51497            .client
51498            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51499                BaseNetworkSocketGetIpv6MulticastHopsResponse,
51500                fidl_fuchsia_posix::Errno,
51501            >>(
51502                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
51503            )?;
51504        Ok(_response.map(|x| x.value))
51505    }
51506
51507    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
51508    pub fn r#set_ipv6_multicast_loopback(
51509        &self,
51510        mut value: bool,
51511        ___deadline: zx::MonotonicInstant,
51512    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
51513        let _response = self.client.send_query::<
51514            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
51515            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51516        >(
51517            (value,),
51518            0x55701c409ff41b40,
51519            fidl::encoding::DynamicFlags::empty(),
51520            ___deadline,
51521        )?;
51522        Ok(_response.map(|x| x))
51523    }
51524
51525    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
51526    pub fn r#get_ipv6_multicast_loopback(
51527        &self,
51528        ___deadline: zx::MonotonicInstant,
51529    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
51530        let _response = self
51531            .client
51532            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51533                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
51534                fidl_fuchsia_posix::Errno,
51535            >>(
51536                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
51537            )?;
51538        Ok(_response.map(|x| x.value))
51539    }
51540
51541    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
51542    pub fn r#set_ipv6_only(
51543        &self,
51544        mut value: bool,
51545        ___deadline: zx::MonotonicInstant,
51546    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
51547        let _response =
51548            self.client
51549                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
51550                    fidl::encoding::EmptyStruct,
51551                    fidl_fuchsia_posix::Errno,
51552                >>(
51553                    (value,),
51554                    0x4873f1364758cbba,
51555                    fidl::encoding::DynamicFlags::empty(),
51556                    ___deadline,
51557                )?;
51558        Ok(_response.map(|x| x))
51559    }
51560
51561    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
51562    pub fn r#get_ipv6_only(
51563        &self,
51564        ___deadline: zx::MonotonicInstant,
51565    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
51566        let _response = self
51567            .client
51568            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51569                BaseNetworkSocketGetIpv6OnlyResponse,
51570                fidl_fuchsia_posix::Errno,
51571            >>(
51572                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
51573            )?;
51574        Ok(_response.map(|x| x.value))
51575    }
51576
51577    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
51578    pub fn r#set_ipv6_receive_traffic_class(
51579        &self,
51580        mut value: bool,
51581        ___deadline: zx::MonotonicInstant,
51582    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
51583        let _response = self.client.send_query::<
51584            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
51585            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51586        >(
51587            (value,),
51588            0x58f07c8788d099a0,
51589            fidl::encoding::DynamicFlags::empty(),
51590            ___deadline,
51591        )?;
51592        Ok(_response.map(|x| x))
51593    }
51594
51595    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
51596    pub fn r#get_ipv6_receive_traffic_class(
51597        &self,
51598        ___deadline: zx::MonotonicInstant,
51599    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
51600        let _response = self
51601            .client
51602            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51603                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
51604                fidl_fuchsia_posix::Errno,
51605            >>(
51606                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
51607            )?;
51608        Ok(_response.map(|x| x.value))
51609    }
51610
51611    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
51612    pub fn r#set_ipv6_traffic_class(
51613        &self,
51614        mut value: &OptionalUint8,
51615        ___deadline: zx::MonotonicInstant,
51616    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
51617        let _response = self.client.send_query::<
51618            BaseNetworkSocketSetIpv6TrafficClassRequest,
51619            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51620        >(
51621            (value,),
51622            0x6af077800c5a0b4f,
51623            fidl::encoding::DynamicFlags::empty(),
51624            ___deadline,
51625        )?;
51626        Ok(_response.map(|x| x))
51627    }
51628
51629    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
51630    pub fn r#get_ipv6_traffic_class(
51631        &self,
51632        ___deadline: zx::MonotonicInstant,
51633    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
51634        let _response = self
51635            .client
51636            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51637                BaseNetworkSocketGetIpv6TrafficClassResponse,
51638                fidl_fuchsia_posix::Errno,
51639            >>(
51640                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
51641            )?;
51642        Ok(_response.map(|x| x.value))
51643    }
51644
51645    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
51646    pub fn r#set_ipv6_receive_packet_info(
51647        &self,
51648        mut value: bool,
51649        ___deadline: zx::MonotonicInstant,
51650    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
51651        let _response = self.client.send_query::<
51652            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
51653            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51654        >(
51655            (value,),
51656            0x19259775b1a92768,
51657            fidl::encoding::DynamicFlags::empty(),
51658            ___deadline,
51659        )?;
51660        Ok(_response.map(|x| x))
51661    }
51662
51663    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
51664    pub fn r#get_ipv6_receive_packet_info(
51665        &self,
51666        ___deadline: zx::MonotonicInstant,
51667    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
51668        let _response = self
51669            .client
51670            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51671                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
51672                fidl_fuchsia_posix::Errno,
51673            >>(
51674                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
51675            )?;
51676        Ok(_response.map(|x| x.value))
51677    }
51678
51679    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
51680    pub fn r#get_original_destination(
51681        &self,
51682        ___deadline: zx::MonotonicInstant,
51683    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
51684        let _response = self
51685            .client
51686            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51687                BaseNetworkSocketGetOriginalDestinationResponse,
51688                fidl_fuchsia_posix::Errno,
51689            >>(
51690                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
51691            )?;
51692        Ok(_response.map(|x| x.value))
51693    }
51694
51695    pub fn r#describe(
51696        &self,
51697        ___deadline: zx::MonotonicInstant,
51698    ) -> Result<StreamSocketDescribeResponse, fidl::Error> {
51699        let _response =
51700            self.client.send_query::<fidl::encoding::EmptyPayload, StreamSocketDescribeResponse>(
51701                (),
51702                0x29e22969a7dadc32,
51703                fidl::encoding::DynamicFlags::empty(),
51704                ___deadline,
51705            )?;
51706        Ok(_response)
51707    }
51708
51709    /// Begins listening for new incoming connections. At most `backlog`
51710    /// connections will be buffered.
51711    pub fn r#listen(
51712        &self,
51713        mut backlog: i16,
51714        ___deadline: zx::MonotonicInstant,
51715    ) -> Result<StreamSocketListenResult, fidl::Error> {
51716        let _response =
51717            self.client.send_query::<StreamSocketListenRequest, fidl::encoding::ResultType<
51718                fidl::encoding::EmptyStruct,
51719                fidl_fuchsia_posix::Errno,
51720            >>(
51721                (backlog,),
51722                0x3d0a65ced3d10108,
51723                fidl::encoding::DynamicFlags::empty(),
51724                ___deadline,
51725            )?;
51726        Ok(_response.map(|x| x))
51727    }
51728
51729    /// Accepts a buffered incoming connection.
51730    pub fn r#accept(
51731        &self,
51732        mut want_addr: bool,
51733        ___deadline: zx::MonotonicInstant,
51734    ) -> Result<StreamSocketAcceptResult, fidl::Error> {
51735        let _response =
51736            self.client.send_query::<StreamSocketAcceptRequest, fidl::encoding::ResultType<
51737                StreamSocketAcceptResponse,
51738                fidl_fuchsia_posix::Errno,
51739            >>(
51740                (want_addr,),
51741                0x5ab7ad620424c163,
51742                fidl::encoding::DynamicFlags::empty(),
51743                ___deadline,
51744            )?;
51745        Ok(_response.map(|x| (x.addr, x.s)))
51746    }
51747
51748    /// Retrieves creation information from the socket.
51749    pub fn r#get_info(
51750        &self,
51751        ___deadline: zx::MonotonicInstant,
51752    ) -> Result<StreamSocketGetInfoResult, fidl::Error> {
51753        let _response =
51754            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51755                StreamSocketGetInfoResponse,
51756                fidl_fuchsia_posix::Errno,
51757            >>(
51758                (),
51759                0x87cfa55d19f878f,
51760                fidl::encoding::DynamicFlags::empty(),
51761                ___deadline,
51762            )?;
51763        Ok(_response.map(|x| (x.domain, x.proto)))
51764    }
51765
51766    /// Set `SOL_TCP` -> `TCP_NODELAY`.
51767    pub fn r#set_tcp_no_delay(
51768        &self,
51769        mut value: bool,
51770        ___deadline: zx::MonotonicInstant,
51771    ) -> Result<StreamSocketSetTcpNoDelayResult, fidl::Error> {
51772        let _response =
51773            self.client.send_query::<StreamSocketSetTcpNoDelayRequest, fidl::encoding::ResultType<
51774                fidl::encoding::EmptyStruct,
51775                fidl_fuchsia_posix::Errno,
51776            >>(
51777                (value,),
51778                0x5a59b778f7333ada,
51779                fidl::encoding::DynamicFlags::empty(),
51780                ___deadline,
51781            )?;
51782        Ok(_response.map(|x| x))
51783    }
51784
51785    /// Get `SOL_TCP` -> `TCP_NODELAY`.
51786    pub fn r#get_tcp_no_delay(
51787        &self,
51788        ___deadline: zx::MonotonicInstant,
51789    ) -> Result<StreamSocketGetTcpNoDelayResult, fidl::Error> {
51790        let _response = self
51791            .client
51792            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51793                StreamSocketGetTcpNoDelayResponse,
51794                fidl_fuchsia_posix::Errno,
51795            >>(
51796                (), 0xac219a3218b0799, fidl::encoding::DynamicFlags::empty(), ___deadline
51797            )?;
51798        Ok(_response.map(|x| x.value))
51799    }
51800
51801    /// Set `SOL_TCP` -> `TCP_MAXSEG`.
51802    pub fn r#set_tcp_max_segment(
51803        &self,
51804        mut value_bytes: u32,
51805        ___deadline: zx::MonotonicInstant,
51806    ) -> Result<StreamSocketSetTcpMaxSegmentResult, fidl::Error> {
51807        let _response =
51808            self.client
51809                .send_query::<StreamSocketSetTcpMaxSegmentRequest, fidl::encoding::ResultType<
51810                    fidl::encoding::EmptyStruct,
51811                    fidl_fuchsia_posix::Errno,
51812                >>(
51813                    (value_bytes,),
51814                    0xb3d30c498266d18,
51815                    fidl::encoding::DynamicFlags::empty(),
51816                    ___deadline,
51817                )?;
51818        Ok(_response.map(|x| x))
51819    }
51820
51821    /// Get `SOL_TCP` -> `TCP_MAXSEG`.
51822    pub fn r#get_tcp_max_segment(
51823        &self,
51824        ___deadline: zx::MonotonicInstant,
51825    ) -> Result<StreamSocketGetTcpMaxSegmentResult, fidl::Error> {
51826        let _response = self
51827            .client
51828            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51829                StreamSocketGetTcpMaxSegmentResponse,
51830                fidl_fuchsia_posix::Errno,
51831            >>(
51832                (), 0x637404d1b4b9982c, fidl::encoding::DynamicFlags::empty(), ___deadline
51833            )?;
51834        Ok(_response.map(|x| x.value_bytes))
51835    }
51836
51837    /// Set `SOL_TCP` -> `TCP_CORK`.
51838    pub fn r#set_tcp_cork(
51839        &self,
51840        mut value: bool,
51841        ___deadline: zx::MonotonicInstant,
51842    ) -> Result<StreamSocketSetTcpCorkResult, fidl::Error> {
51843        let _response =
51844            self.client.send_query::<StreamSocketSetTcpCorkRequest, fidl::encoding::ResultType<
51845                fidl::encoding::EmptyStruct,
51846                fidl_fuchsia_posix::Errno,
51847            >>(
51848                (value,),
51849                0x62e26891541143a0,
51850                fidl::encoding::DynamicFlags::empty(),
51851                ___deadline,
51852            )?;
51853        Ok(_response.map(|x| x))
51854    }
51855
51856    /// Get `SOL_TCP` -> `TCP_CORK`.
51857    pub fn r#get_tcp_cork(
51858        &self,
51859        ___deadline: zx::MonotonicInstant,
51860    ) -> Result<StreamSocketGetTcpCorkResult, fidl::Error> {
51861        let _response =
51862            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51863                StreamSocketGetTcpCorkResponse,
51864                fidl_fuchsia_posix::Errno,
51865            >>(
51866                (),
51867                0x435bb232e0e74f32,
51868                fidl::encoding::DynamicFlags::empty(),
51869                ___deadline,
51870            )?;
51871        Ok(_response.map(|x| x.value))
51872    }
51873
51874    /// Set `SOL_TCP` -> `TCP_KEEPIDLE`.
51875    pub fn r#set_tcp_keep_alive_idle(
51876        &self,
51877        mut value_secs: u32,
51878        ___deadline: zx::MonotonicInstant,
51879    ) -> Result<StreamSocketSetTcpKeepAliveIdleResult, fidl::Error> {
51880        let _response =
51881            self.client
51882                .send_query::<StreamSocketSetTcpKeepAliveIdleRequest, fidl::encoding::ResultType<
51883                    fidl::encoding::EmptyStruct,
51884                    fidl_fuchsia_posix::Errno,
51885                >>(
51886                    (value_secs,),
51887                    0x196d053d8363c42,
51888                    fidl::encoding::DynamicFlags::empty(),
51889                    ___deadline,
51890                )?;
51891        Ok(_response.map(|x| x))
51892    }
51893
51894    /// Get `SOL_TCP` -> `TCP_KEEPIDLE`.
51895    pub fn r#get_tcp_keep_alive_idle(
51896        &self,
51897        ___deadline: zx::MonotonicInstant,
51898    ) -> Result<StreamSocketGetTcpKeepAliveIdleResult, fidl::Error> {
51899        let _response = self
51900            .client
51901            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51902                StreamSocketGetTcpKeepAliveIdleResponse,
51903                fidl_fuchsia_posix::Errno,
51904            >>(
51905                (), 0x35ec58564879dac, fidl::encoding::DynamicFlags::empty(), ___deadline
51906            )?;
51907        Ok(_response.map(|x| x.value_secs))
51908    }
51909
51910    /// Set `SOL_TCP` -> `TCP_KEEPINTVL`.
51911    pub fn r#set_tcp_keep_alive_interval(
51912        &self,
51913        mut value_secs: u32,
51914        ___deadline: zx::MonotonicInstant,
51915    ) -> Result<StreamSocketSetTcpKeepAliveIntervalResult, fidl::Error> {
51916        let _response = self.client.send_query::<
51917            StreamSocketSetTcpKeepAliveIntervalRequest,
51918            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
51919        >(
51920            (value_secs,),
51921            0x485ffbc2da1243f2,
51922            fidl::encoding::DynamicFlags::empty(),
51923            ___deadline,
51924        )?;
51925        Ok(_response.map(|x| x))
51926    }
51927
51928    /// Get `SOL_TCP` -> `TCP_KEEPINTVL`.
51929    pub fn r#get_tcp_keep_alive_interval(
51930        &self,
51931        ___deadline: zx::MonotonicInstant,
51932    ) -> Result<StreamSocketGetTcpKeepAliveIntervalResult, fidl::Error> {
51933        let _response = self
51934            .client
51935            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51936                StreamSocketGetTcpKeepAliveIntervalResponse,
51937                fidl_fuchsia_posix::Errno,
51938            >>(
51939                (), 0x264eaf46306b284, fidl::encoding::DynamicFlags::empty(), ___deadline
51940            )?;
51941        Ok(_response.map(|x| x.value_secs))
51942    }
51943
51944    /// Set `SOL_TCP` -> `TCP_KEEPCNT`.
51945    pub fn r#set_tcp_keep_alive_count(
51946        &self,
51947        mut value: u32,
51948        ___deadline: zx::MonotonicInstant,
51949    ) -> Result<StreamSocketSetTcpKeepAliveCountResult, fidl::Error> {
51950        let _response =
51951            self.client
51952                .send_query::<StreamSocketSetTcpKeepAliveCountRequest, fidl::encoding::ResultType<
51953                    fidl::encoding::EmptyStruct,
51954                    fidl_fuchsia_posix::Errno,
51955                >>(
51956                    (value,),
51957                    0x2ab2e8c111708421,
51958                    fidl::encoding::DynamicFlags::empty(),
51959                    ___deadline,
51960                )?;
51961        Ok(_response.map(|x| x))
51962    }
51963
51964    /// Get `SOL_TCP` -> `TCP_KEEPCNT`.
51965    pub fn r#get_tcp_keep_alive_count(
51966        &self,
51967        ___deadline: zx::MonotonicInstant,
51968    ) -> Result<StreamSocketGetTcpKeepAliveCountResult, fidl::Error> {
51969        let _response = self
51970            .client
51971            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
51972                StreamSocketGetTcpKeepAliveCountResponse,
51973                fidl_fuchsia_posix::Errno,
51974            >>(
51975                (), 0x2f176ae271fe7a09, fidl::encoding::DynamicFlags::empty(), ___deadline
51976            )?;
51977        Ok(_response.map(|x| x.value))
51978    }
51979
51980    /// Set `SOL_TCP` -> `TCP_SYNCNT`.
51981    pub fn r#set_tcp_syn_count(
51982        &self,
51983        mut value: u32,
51984        ___deadline: zx::MonotonicInstant,
51985    ) -> Result<StreamSocketSetTcpSynCountResult, fidl::Error> {
51986        let _response =
51987            self.client
51988                .send_query::<StreamSocketSetTcpSynCountRequest, fidl::encoding::ResultType<
51989                    fidl::encoding::EmptyStruct,
51990                    fidl_fuchsia_posix::Errno,
51991                >>(
51992                    (value,),
51993                    0x4dcd6ab5573c1eb3,
51994                    fidl::encoding::DynamicFlags::empty(),
51995                    ___deadline,
51996                )?;
51997        Ok(_response.map(|x| x))
51998    }
51999
52000    /// Get `SOL_TCP` -> `TCP_SYNCNT`.
52001    pub fn r#get_tcp_syn_count(
52002        &self,
52003        ___deadline: zx::MonotonicInstant,
52004    ) -> Result<StreamSocketGetTcpSynCountResult, fidl::Error> {
52005        let _response = self
52006            .client
52007            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52008                StreamSocketGetTcpSynCountResponse,
52009                fidl_fuchsia_posix::Errno,
52010            >>(
52011                (), 0x7d457cba8f5f3ee6, fidl::encoding::DynamicFlags::empty(), ___deadline
52012            )?;
52013        Ok(_response.map(|x| x.value))
52014    }
52015
52016    /// Set `SOL_TCP` -> `TCP_LINGER2`.
52017    pub fn r#set_tcp_linger(
52018        &self,
52019        mut value_secs: &OptionalUint32,
52020        ___deadline: zx::MonotonicInstant,
52021    ) -> Result<StreamSocketSetTcpLingerResult, fidl::Error> {
52022        let _response =
52023            self.client.send_query::<StreamSocketSetTcpLingerRequest, fidl::encoding::ResultType<
52024                fidl::encoding::EmptyStruct,
52025                fidl_fuchsia_posix::Errno,
52026            >>(
52027                (value_secs,),
52028                0xd5cc1e8654d36e4,
52029                fidl::encoding::DynamicFlags::empty(),
52030                ___deadline,
52031            )?;
52032        Ok(_response.map(|x| x))
52033    }
52034
52035    /// Get `SOL_TCP` -> `TCP_LINGER2`.
52036    pub fn r#get_tcp_linger(
52037        &self,
52038        ___deadline: zx::MonotonicInstant,
52039    ) -> Result<StreamSocketGetTcpLingerResult, fidl::Error> {
52040        let _response = self
52041            .client
52042            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52043                StreamSocketGetTcpLingerResponse,
52044                fidl_fuchsia_posix::Errno,
52045            >>(
52046                (), 0xad870d311cf30eb, fidl::encoding::DynamicFlags::empty(), ___deadline
52047            )?;
52048        Ok(_response.map(|x| x.value_secs))
52049    }
52050
52051    /// Set `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
52052    pub fn r#set_tcp_defer_accept(
52053        &self,
52054        mut value_secs: u32,
52055        ___deadline: zx::MonotonicInstant,
52056    ) -> Result<StreamSocketSetTcpDeferAcceptResult, fidl::Error> {
52057        let _response =
52058            self.client
52059                .send_query::<StreamSocketSetTcpDeferAcceptRequest, fidl::encoding::ResultType<
52060                    fidl::encoding::EmptyStruct,
52061                    fidl_fuchsia_posix::Errno,
52062                >>(
52063                    (value_secs,),
52064                    0x15092f181e57c404,
52065                    fidl::encoding::DynamicFlags::empty(),
52066                    ___deadline,
52067                )?;
52068        Ok(_response.map(|x| x))
52069    }
52070
52071    /// Get `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
52072    pub fn r#get_tcp_defer_accept(
52073        &self,
52074        ___deadline: zx::MonotonicInstant,
52075    ) -> Result<StreamSocketGetTcpDeferAcceptResult, fidl::Error> {
52076        let _response = self
52077            .client
52078            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52079                StreamSocketGetTcpDeferAcceptResponse,
52080                fidl_fuchsia_posix::Errno,
52081            >>(
52082                (), 0x64589790842cb7c6, fidl::encoding::DynamicFlags::empty(), ___deadline
52083            )?;
52084        Ok(_response.map(|x| x.value_secs))
52085    }
52086
52087    /// Set `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
52088    pub fn r#set_tcp_window_clamp(
52089        &self,
52090        mut value: u32,
52091        ___deadline: zx::MonotonicInstant,
52092    ) -> Result<StreamSocketSetTcpWindowClampResult, fidl::Error> {
52093        let _response =
52094            self.client
52095                .send_query::<StreamSocketSetTcpWindowClampRequest, fidl::encoding::ResultType<
52096                    fidl::encoding::EmptyStruct,
52097                    fidl_fuchsia_posix::Errno,
52098                >>(
52099                    (value,),
52100                    0x4a26ce07d847f1c6,
52101                    fidl::encoding::DynamicFlags::empty(),
52102                    ___deadline,
52103                )?;
52104        Ok(_response.map(|x| x))
52105    }
52106
52107    /// Get `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
52108    pub fn r#get_tcp_window_clamp(
52109        &self,
52110        ___deadline: zx::MonotonicInstant,
52111    ) -> Result<StreamSocketGetTcpWindowClampResult, fidl::Error> {
52112        let _response = self
52113            .client
52114            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52115                StreamSocketGetTcpWindowClampResponse,
52116                fidl_fuchsia_posix::Errno,
52117            >>(
52118                (), 0x2df6b636bf0a6a4e, fidl::encoding::DynamicFlags::empty(), ___deadline
52119            )?;
52120        Ok(_response.map(|x| x.value))
52121    }
52122
52123    /// Get `SOL_TCP` -> `TCP_INFO`.
52124    pub fn r#get_tcp_info(
52125        &self,
52126        ___deadline: zx::MonotonicInstant,
52127    ) -> Result<StreamSocketGetTcpInfoResult, fidl::Error> {
52128        let _response =
52129            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52130                StreamSocketGetTcpInfoResponse,
52131                fidl_fuchsia_posix::Errno,
52132            >>(
52133                (),
52134                0x1ffb123d9f03ead2,
52135                fidl::encoding::DynamicFlags::empty(),
52136                ___deadline,
52137            )?;
52138        Ok(_response.map(|x| x.info))
52139    }
52140
52141    /// Set `SOL_TCP` -> `TCP_QUICKACK`.
52142    pub fn r#set_tcp_quick_ack(
52143        &self,
52144        mut value: bool,
52145        ___deadline: zx::MonotonicInstant,
52146    ) -> Result<StreamSocketSetTcpQuickAckResult, fidl::Error> {
52147        let _response =
52148            self.client
52149                .send_query::<StreamSocketSetTcpQuickAckRequest, fidl::encoding::ResultType<
52150                    fidl::encoding::EmptyStruct,
52151                    fidl_fuchsia_posix::Errno,
52152                >>(
52153                    (value,),
52154                    0x6fa811be8fde7457,
52155                    fidl::encoding::DynamicFlags::empty(),
52156                    ___deadline,
52157                )?;
52158        Ok(_response.map(|x| x))
52159    }
52160
52161    /// Get `SOL_TCP` -> `TCP_QUICKACK`.
52162    pub fn r#get_tcp_quick_ack(
52163        &self,
52164        ___deadline: zx::MonotonicInstant,
52165    ) -> Result<StreamSocketGetTcpQuickAckResult, fidl::Error> {
52166        let _response = self
52167            .client
52168            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52169                StreamSocketGetTcpQuickAckResponse,
52170                fidl_fuchsia_posix::Errno,
52171            >>(
52172                (), 0x7356a949bef2df32, fidl::encoding::DynamicFlags::empty(), ___deadline
52173            )?;
52174        Ok(_response.map(|x| x.value))
52175    }
52176
52177    /// Set `SOL_TCP` -> `TCP_CONGESTION`.
52178    pub fn r#set_tcp_congestion(
52179        &self,
52180        mut value: TcpCongestionControl,
52181        ___deadline: zx::MonotonicInstant,
52182    ) -> Result<StreamSocketSetTcpCongestionResult, fidl::Error> {
52183        let _response =
52184            self.client
52185                .send_query::<StreamSocketSetTcpCongestionRequest, fidl::encoding::ResultType<
52186                    fidl::encoding::EmptyStruct,
52187                    fidl_fuchsia_posix::Errno,
52188                >>(
52189                    (value,),
52190                    0x7924c6eabde7819e,
52191                    fidl::encoding::DynamicFlags::empty(),
52192                    ___deadline,
52193                )?;
52194        Ok(_response.map(|x| x))
52195    }
52196
52197    /// Get `SOL_TCP` -> `TCP_CONGESTION`.
52198    pub fn r#get_tcp_congestion(
52199        &self,
52200        ___deadline: zx::MonotonicInstant,
52201    ) -> Result<StreamSocketGetTcpCongestionResult, fidl::Error> {
52202        let _response = self
52203            .client
52204            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52205                StreamSocketGetTcpCongestionResponse,
52206                fidl_fuchsia_posix::Errno,
52207            >>(
52208                (), 0x11e16397e1b72a47, fidl::encoding::DynamicFlags::empty(), ___deadline
52209            )?;
52210        Ok(_response.map(|x| x.value))
52211    }
52212
52213    /// Set `SOL_TCP` -> `TCP_USER_TIMEOUT`.
52214    pub fn r#set_tcp_user_timeout(
52215        &self,
52216        mut value_millis: u32,
52217        ___deadline: zx::MonotonicInstant,
52218    ) -> Result<StreamSocketSetTcpUserTimeoutResult, fidl::Error> {
52219        let _response =
52220            self.client
52221                .send_query::<StreamSocketSetTcpUserTimeoutRequest, fidl::encoding::ResultType<
52222                    fidl::encoding::EmptyStruct,
52223                    fidl_fuchsia_posix::Errno,
52224                >>(
52225                    (value_millis,),
52226                    0x6b459e81c3741a60,
52227                    fidl::encoding::DynamicFlags::empty(),
52228                    ___deadline,
52229                )?;
52230        Ok(_response.map(|x| x))
52231    }
52232
52233    /// Get `SOL_TCP` -> `TCP_USER_TIMEOUT`.
52234    pub fn r#get_tcp_user_timeout(
52235        &self,
52236        ___deadline: zx::MonotonicInstant,
52237    ) -> Result<StreamSocketGetTcpUserTimeoutResult, fidl::Error> {
52238        let _response = self
52239            .client
52240            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
52241                StreamSocketGetTcpUserTimeoutResponse,
52242                fidl_fuchsia_posix::Errno,
52243            >>(
52244                (), 0x24bbd5858ad8c380, fidl::encoding::DynamicFlags::empty(), ___deadline
52245            )?;
52246        Ok(_response.map(|x| x.value_millis))
52247    }
52248}
52249
52250#[cfg(target_os = "fuchsia")]
52251impl From<StreamSocketSynchronousProxy> for zx::Handle {
52252    fn from(value: StreamSocketSynchronousProxy) -> Self {
52253        value.into_channel().into()
52254    }
52255}
52256
52257#[cfg(target_os = "fuchsia")]
52258impl From<fidl::Channel> for StreamSocketSynchronousProxy {
52259    fn from(value: fidl::Channel) -> Self {
52260        Self::new(value)
52261    }
52262}
52263
52264#[cfg(target_os = "fuchsia")]
52265impl fidl::endpoints::FromClient for StreamSocketSynchronousProxy {
52266    type Protocol = StreamSocketMarker;
52267
52268    fn from_client(value: fidl::endpoints::ClientEnd<StreamSocketMarker>) -> Self {
52269        Self::new(value.into_channel())
52270    }
52271}
52272
52273#[derive(Debug, Clone)]
52274pub struct StreamSocketProxy {
52275    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
52276}
52277
52278impl fidl::endpoints::Proxy for StreamSocketProxy {
52279    type Protocol = StreamSocketMarker;
52280
52281    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
52282        Self::new(inner)
52283    }
52284
52285    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
52286        self.client.into_channel().map_err(|client| Self { client })
52287    }
52288
52289    fn as_channel(&self) -> &::fidl::AsyncChannel {
52290        self.client.as_channel()
52291    }
52292}
52293
52294impl StreamSocketProxy {
52295    /// Create a new Proxy for fuchsia.posix.socket/StreamSocket.
52296    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
52297        let protocol_name = <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
52298        Self { client: fidl::client::Client::new(channel, protocol_name) }
52299    }
52300
52301    /// Get a Stream of events from the remote end of the protocol.
52302    ///
52303    /// # Panics
52304    ///
52305    /// Panics if the event stream was already taken.
52306    pub fn take_event_stream(&self) -> StreamSocketEventStream {
52307        StreamSocketEventStream { event_receiver: self.client.take_event_receiver() }
52308    }
52309
52310    pub fn r#clone(
52311        &self,
52312        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
52313    ) -> Result<(), fidl::Error> {
52314        StreamSocketProxyInterface::r#clone(self, request)
52315    }
52316
52317    /// Terminates the connection.
52318    ///
52319    /// After calling `Close`, the client must not send any other requests.
52320    ///
52321    /// Servers, after sending the status response, should close the connection
52322    /// regardless of status and without sending an epitaph.
52323    ///
52324    /// Closing the client end of the channel should be semantically equivalent
52325    /// to calling `Close` without knowing when the close has completed or its
52326    /// status.
52327    pub fn r#close(
52328        &self,
52329    ) -> fidl::client::QueryResponseFut<
52330        fidl_fuchsia_unknown::CloseableCloseResult,
52331        fidl::encoding::DefaultFuchsiaResourceDialect,
52332    > {
52333        StreamSocketProxyInterface::r#close(self)
52334    }
52335
52336    pub fn r#query(
52337        &self,
52338    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
52339    {
52340        StreamSocketProxyInterface::r#query(self)
52341    }
52342
52343    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
52344    pub fn r#set_reuse_address(
52345        &self,
52346        mut value: bool,
52347    ) -> fidl::client::QueryResponseFut<
52348        BaseSocketSetReuseAddressResult,
52349        fidl::encoding::DefaultFuchsiaResourceDialect,
52350    > {
52351        StreamSocketProxyInterface::r#set_reuse_address(self, value)
52352    }
52353
52354    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
52355    pub fn r#get_reuse_address(
52356        &self,
52357    ) -> fidl::client::QueryResponseFut<
52358        BaseSocketGetReuseAddressResult,
52359        fidl::encoding::DefaultFuchsiaResourceDialect,
52360    > {
52361        StreamSocketProxyInterface::r#get_reuse_address(self)
52362    }
52363
52364    /// Get `SOL_SOCKET` -> `SO_ERROR`.
52365    /// Returns the last error if there is an error set on the socket.
52366    pub fn r#get_error(
52367        &self,
52368    ) -> fidl::client::QueryResponseFut<
52369        BaseSocketGetErrorResult,
52370        fidl::encoding::DefaultFuchsiaResourceDialect,
52371    > {
52372        StreamSocketProxyInterface::r#get_error(self)
52373    }
52374
52375    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
52376    pub fn r#set_broadcast(
52377        &self,
52378        mut value: bool,
52379    ) -> fidl::client::QueryResponseFut<
52380        BaseSocketSetBroadcastResult,
52381        fidl::encoding::DefaultFuchsiaResourceDialect,
52382    > {
52383        StreamSocketProxyInterface::r#set_broadcast(self, value)
52384    }
52385
52386    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
52387    pub fn r#get_broadcast(
52388        &self,
52389    ) -> fidl::client::QueryResponseFut<
52390        BaseSocketGetBroadcastResult,
52391        fidl::encoding::DefaultFuchsiaResourceDialect,
52392    > {
52393        StreamSocketProxyInterface::r#get_broadcast(self)
52394    }
52395
52396    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
52397    pub fn r#set_send_buffer(
52398        &self,
52399        mut value_bytes: u64,
52400    ) -> fidl::client::QueryResponseFut<
52401        BaseSocketSetSendBufferResult,
52402        fidl::encoding::DefaultFuchsiaResourceDialect,
52403    > {
52404        StreamSocketProxyInterface::r#set_send_buffer(self, value_bytes)
52405    }
52406
52407    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
52408    pub fn r#get_send_buffer(
52409        &self,
52410    ) -> fidl::client::QueryResponseFut<
52411        BaseSocketGetSendBufferResult,
52412        fidl::encoding::DefaultFuchsiaResourceDialect,
52413    > {
52414        StreamSocketProxyInterface::r#get_send_buffer(self)
52415    }
52416
52417    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
52418    pub fn r#set_receive_buffer(
52419        &self,
52420        mut value_bytes: u64,
52421    ) -> fidl::client::QueryResponseFut<
52422        BaseSocketSetReceiveBufferResult,
52423        fidl::encoding::DefaultFuchsiaResourceDialect,
52424    > {
52425        StreamSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
52426    }
52427
52428    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
52429    pub fn r#get_receive_buffer(
52430        &self,
52431    ) -> fidl::client::QueryResponseFut<
52432        BaseSocketGetReceiveBufferResult,
52433        fidl::encoding::DefaultFuchsiaResourceDialect,
52434    > {
52435        StreamSocketProxyInterface::r#get_receive_buffer(self)
52436    }
52437
52438    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
52439    pub fn r#set_keep_alive(
52440        &self,
52441        mut value: bool,
52442    ) -> fidl::client::QueryResponseFut<
52443        BaseSocketSetKeepAliveResult,
52444        fidl::encoding::DefaultFuchsiaResourceDialect,
52445    > {
52446        StreamSocketProxyInterface::r#set_keep_alive(self, value)
52447    }
52448
52449    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
52450    pub fn r#get_keep_alive(
52451        &self,
52452    ) -> fidl::client::QueryResponseFut<
52453        BaseSocketGetKeepAliveResult,
52454        fidl::encoding::DefaultFuchsiaResourceDialect,
52455    > {
52456        StreamSocketProxyInterface::r#get_keep_alive(self)
52457    }
52458
52459    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
52460    pub fn r#set_out_of_band_inline(
52461        &self,
52462        mut value: bool,
52463    ) -> fidl::client::QueryResponseFut<
52464        BaseSocketSetOutOfBandInlineResult,
52465        fidl::encoding::DefaultFuchsiaResourceDialect,
52466    > {
52467        StreamSocketProxyInterface::r#set_out_of_band_inline(self, value)
52468    }
52469
52470    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
52471    pub fn r#get_out_of_band_inline(
52472        &self,
52473    ) -> fidl::client::QueryResponseFut<
52474        BaseSocketGetOutOfBandInlineResult,
52475        fidl::encoding::DefaultFuchsiaResourceDialect,
52476    > {
52477        StreamSocketProxyInterface::r#get_out_of_band_inline(self)
52478    }
52479
52480    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
52481    pub fn r#set_no_check(
52482        &self,
52483        mut value: bool,
52484    ) -> fidl::client::QueryResponseFut<
52485        BaseSocketSetNoCheckResult,
52486        fidl::encoding::DefaultFuchsiaResourceDialect,
52487    > {
52488        StreamSocketProxyInterface::r#set_no_check(self, value)
52489    }
52490
52491    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
52492    pub fn r#get_no_check(
52493        &self,
52494    ) -> fidl::client::QueryResponseFut<
52495        BaseSocketGetNoCheckResult,
52496        fidl::encoding::DefaultFuchsiaResourceDialect,
52497    > {
52498        StreamSocketProxyInterface::r#get_no_check(self)
52499    }
52500
52501    /// Set `SOL_SOCKET` -> `SO_LINGER`.
52502    pub fn r#set_linger(
52503        &self,
52504        mut linger: bool,
52505        mut length_secs: u32,
52506    ) -> fidl::client::QueryResponseFut<
52507        BaseSocketSetLingerResult,
52508        fidl::encoding::DefaultFuchsiaResourceDialect,
52509    > {
52510        StreamSocketProxyInterface::r#set_linger(self, linger, length_secs)
52511    }
52512
52513    /// Get `SOL_SOCKET` -> `SO_LINGER`.
52514    pub fn r#get_linger(
52515        &self,
52516    ) -> fidl::client::QueryResponseFut<
52517        BaseSocketGetLingerResult,
52518        fidl::encoding::DefaultFuchsiaResourceDialect,
52519    > {
52520        StreamSocketProxyInterface::r#get_linger(self)
52521    }
52522
52523    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
52524    pub fn r#set_reuse_port(
52525        &self,
52526        mut value: bool,
52527    ) -> fidl::client::QueryResponseFut<
52528        BaseSocketSetReusePortResult,
52529        fidl::encoding::DefaultFuchsiaResourceDialect,
52530    > {
52531        StreamSocketProxyInterface::r#set_reuse_port(self, value)
52532    }
52533
52534    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
52535    pub fn r#get_reuse_port(
52536        &self,
52537    ) -> fidl::client::QueryResponseFut<
52538        BaseSocketGetReusePortResult,
52539        fidl::encoding::DefaultFuchsiaResourceDialect,
52540    > {
52541        StreamSocketProxyInterface::r#get_reuse_port(self)
52542    }
52543
52544    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
52545    pub fn r#get_accept_conn(
52546        &self,
52547    ) -> fidl::client::QueryResponseFut<
52548        BaseSocketGetAcceptConnResult,
52549        fidl::encoding::DefaultFuchsiaResourceDialect,
52550    > {
52551        StreamSocketProxyInterface::r#get_accept_conn(self)
52552    }
52553
52554    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
52555    pub fn r#set_bind_to_device(
52556        &self,
52557        mut value: &str,
52558    ) -> fidl::client::QueryResponseFut<
52559        BaseSocketSetBindToDeviceResult,
52560        fidl::encoding::DefaultFuchsiaResourceDialect,
52561    > {
52562        StreamSocketProxyInterface::r#set_bind_to_device(self, value)
52563    }
52564
52565    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
52566    pub fn r#get_bind_to_device(
52567        &self,
52568    ) -> fidl::client::QueryResponseFut<
52569        BaseSocketGetBindToDeviceResult,
52570        fidl::encoding::DefaultFuchsiaResourceDialect,
52571    > {
52572        StreamSocketProxyInterface::r#get_bind_to_device(self)
52573    }
52574
52575    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
52576    /// If `value` is 0, this clears the bound interface.
52577    pub fn r#set_bind_to_interface_index(
52578        &self,
52579        mut value: u64,
52580    ) -> fidl::client::QueryResponseFut<
52581        BaseSocketSetBindToInterfaceIndexResult,
52582        fidl::encoding::DefaultFuchsiaResourceDialect,
52583    > {
52584        StreamSocketProxyInterface::r#set_bind_to_interface_index(self, value)
52585    }
52586
52587    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
52588    pub fn r#get_bind_to_interface_index(
52589        &self,
52590    ) -> fidl::client::QueryResponseFut<
52591        BaseSocketGetBindToInterfaceIndexResult,
52592        fidl::encoding::DefaultFuchsiaResourceDialect,
52593    > {
52594        StreamSocketProxyInterface::r#get_bind_to_interface_index(self)
52595    }
52596
52597    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
52598    pub fn r#set_timestamp(
52599        &self,
52600        mut value: TimestampOption,
52601    ) -> fidl::client::QueryResponseFut<
52602        BaseSocketSetTimestampResult,
52603        fidl::encoding::DefaultFuchsiaResourceDialect,
52604    > {
52605        StreamSocketProxyInterface::r#set_timestamp(self, value)
52606    }
52607
52608    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
52609    pub fn r#get_timestamp(
52610        &self,
52611    ) -> fidl::client::QueryResponseFut<
52612        BaseSocketGetTimestampResult,
52613        fidl::encoding::DefaultFuchsiaResourceDialect,
52614    > {
52615        StreamSocketProxyInterface::r#get_timestamp(self)
52616    }
52617
52618    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
52619    /// unlike the standard SO_MARK, this API has multiple mark domains and each
52620    /// mark can be set independently in each domain.
52621    pub fn r#set_mark(
52622        &self,
52623        mut domain: fidl_fuchsia_net::MarkDomain,
52624        mut mark: &OptionalUint32,
52625    ) -> fidl::client::QueryResponseFut<
52626        BaseSocketSetMarkResult,
52627        fidl::encoding::DefaultFuchsiaResourceDialect,
52628    > {
52629        StreamSocketProxyInterface::r#set_mark(self, domain, mark)
52630    }
52631
52632    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
52633    /// unlike the standard SO_MARK, this API has multiple mark domains and each
52634    /// mark can be retrieved independently in each domain.
52635    pub fn r#get_mark(
52636        &self,
52637        mut domain: fidl_fuchsia_net::MarkDomain,
52638    ) -> fidl::client::QueryResponseFut<
52639        BaseSocketGetMarkResult,
52640        fidl::encoding::DefaultFuchsiaResourceDialect,
52641    > {
52642        StreamSocketProxyInterface::r#get_mark(self, domain)
52643    }
52644
52645    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
52646    pub fn r#get_cookie(
52647        &self,
52648    ) -> fidl::client::QueryResponseFut<
52649        BaseSocketGetCookieResult,
52650        fidl::encoding::DefaultFuchsiaResourceDialect,
52651    > {
52652        StreamSocketProxyInterface::r#get_cookie(self)
52653    }
52654
52655    /// Sets the local address used for the socket.
52656    pub fn r#bind(
52657        &self,
52658        mut addr: &fidl_fuchsia_net::SocketAddress,
52659    ) -> fidl::client::QueryResponseFut<
52660        BaseNetworkSocketBindResult,
52661        fidl::encoding::DefaultFuchsiaResourceDialect,
52662    > {
52663        StreamSocketProxyInterface::r#bind(self, addr)
52664    }
52665
52666    /// Initiates a connection to a remote address.
52667    pub fn r#connect(
52668        &self,
52669        mut addr: &fidl_fuchsia_net::SocketAddress,
52670    ) -> fidl::client::QueryResponseFut<
52671        BaseNetworkSocketConnectResult,
52672        fidl::encoding::DefaultFuchsiaResourceDialect,
52673    > {
52674        StreamSocketProxyInterface::r#connect(self, addr)
52675    }
52676
52677    /// Clears connection information from this socket.
52678    pub fn r#disconnect(
52679        &self,
52680    ) -> fidl::client::QueryResponseFut<
52681        BaseNetworkSocketDisconnectResult,
52682        fidl::encoding::DefaultFuchsiaResourceDialect,
52683    > {
52684        StreamSocketProxyInterface::r#disconnect(self)
52685    }
52686
52687    /// Retrieves the local socket address.
52688    pub fn r#get_sock_name(
52689        &self,
52690    ) -> fidl::client::QueryResponseFut<
52691        BaseNetworkSocketGetSockNameResult,
52692        fidl::encoding::DefaultFuchsiaResourceDialect,
52693    > {
52694        StreamSocketProxyInterface::r#get_sock_name(self)
52695    }
52696
52697    /// Retrieves the remote socket address.
52698    pub fn r#get_peer_name(
52699        &self,
52700    ) -> fidl::client::QueryResponseFut<
52701        BaseNetworkSocketGetPeerNameResult,
52702        fidl::encoding::DefaultFuchsiaResourceDialect,
52703    > {
52704        StreamSocketProxyInterface::r#get_peer_name(self)
52705    }
52706
52707    /// Shuts down part of the socket.
52708    pub fn r#shutdown(
52709        &self,
52710        mut mode: ShutdownMode,
52711    ) -> fidl::client::QueryResponseFut<
52712        BaseNetworkSocketShutdownResult,
52713        fidl::encoding::DefaultFuchsiaResourceDialect,
52714    > {
52715        StreamSocketProxyInterface::r#shutdown(self, mode)
52716    }
52717
52718    /// Set `SOL_IP` -> `IP_TOS`.
52719    pub fn r#set_ip_type_of_service(
52720        &self,
52721        mut value: u8,
52722    ) -> fidl::client::QueryResponseFut<
52723        BaseNetworkSocketSetIpTypeOfServiceResult,
52724        fidl::encoding::DefaultFuchsiaResourceDialect,
52725    > {
52726        StreamSocketProxyInterface::r#set_ip_type_of_service(self, value)
52727    }
52728
52729    /// Get `SOL_IP` -> `IP_TOS`.
52730    pub fn r#get_ip_type_of_service(
52731        &self,
52732    ) -> fidl::client::QueryResponseFut<
52733        BaseNetworkSocketGetIpTypeOfServiceResult,
52734        fidl::encoding::DefaultFuchsiaResourceDialect,
52735    > {
52736        StreamSocketProxyInterface::r#get_ip_type_of_service(self)
52737    }
52738
52739    /// Set `SOL_IP` -> `IP_TTL`.
52740    pub fn r#set_ip_ttl(
52741        &self,
52742        mut value: &OptionalUint8,
52743    ) -> fidl::client::QueryResponseFut<
52744        BaseNetworkSocketSetIpTtlResult,
52745        fidl::encoding::DefaultFuchsiaResourceDialect,
52746    > {
52747        StreamSocketProxyInterface::r#set_ip_ttl(self, value)
52748    }
52749
52750    /// Get `SOL_IP` -> `IP_TTL`.
52751    pub fn r#get_ip_ttl(
52752        &self,
52753    ) -> fidl::client::QueryResponseFut<
52754        BaseNetworkSocketGetIpTtlResult,
52755        fidl::encoding::DefaultFuchsiaResourceDialect,
52756    > {
52757        StreamSocketProxyInterface::r#get_ip_ttl(self)
52758    }
52759
52760    /// Set `SOL_IP` -> `IP_PKTINFO`.
52761    pub fn r#set_ip_packet_info(
52762        &self,
52763        mut value: bool,
52764    ) -> fidl::client::QueryResponseFut<
52765        BaseNetworkSocketSetIpPacketInfoResult,
52766        fidl::encoding::DefaultFuchsiaResourceDialect,
52767    > {
52768        StreamSocketProxyInterface::r#set_ip_packet_info(self, value)
52769    }
52770
52771    /// Get `SOL_IP` -> `IP_PKTINFO`.
52772    pub fn r#get_ip_packet_info(
52773        &self,
52774    ) -> fidl::client::QueryResponseFut<
52775        BaseNetworkSocketGetIpPacketInfoResult,
52776        fidl::encoding::DefaultFuchsiaResourceDialect,
52777    > {
52778        StreamSocketProxyInterface::r#get_ip_packet_info(self)
52779    }
52780
52781    /// Set `SOL_IP` -> `IP_RECVTOS`.
52782    pub fn r#set_ip_receive_type_of_service(
52783        &self,
52784        mut value: bool,
52785    ) -> fidl::client::QueryResponseFut<
52786        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
52787        fidl::encoding::DefaultFuchsiaResourceDialect,
52788    > {
52789        StreamSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
52790    }
52791
52792    /// Get `SOL_IP` -> `IP_RECVTOS`.
52793    pub fn r#get_ip_receive_type_of_service(
52794        &self,
52795    ) -> fidl::client::QueryResponseFut<
52796        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
52797        fidl::encoding::DefaultFuchsiaResourceDialect,
52798    > {
52799        StreamSocketProxyInterface::r#get_ip_receive_type_of_service(self)
52800    }
52801
52802    /// Set `SOL_IP` -> `IP_RECVTTL`.
52803    pub fn r#set_ip_receive_ttl(
52804        &self,
52805        mut value: bool,
52806    ) -> fidl::client::QueryResponseFut<
52807        BaseNetworkSocketSetIpReceiveTtlResult,
52808        fidl::encoding::DefaultFuchsiaResourceDialect,
52809    > {
52810        StreamSocketProxyInterface::r#set_ip_receive_ttl(self, value)
52811    }
52812
52813    /// Get `SOL_IP` -> `IP_RECVTTL`.
52814    pub fn r#get_ip_receive_ttl(
52815        &self,
52816    ) -> fidl::client::QueryResponseFut<
52817        BaseNetworkSocketGetIpReceiveTtlResult,
52818        fidl::encoding::DefaultFuchsiaResourceDialect,
52819    > {
52820        StreamSocketProxyInterface::r#get_ip_receive_ttl(self)
52821    }
52822
52823    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
52824    pub fn r#set_ip_multicast_interface(
52825        &self,
52826        mut iface: u64,
52827        mut address: &fidl_fuchsia_net::Ipv4Address,
52828    ) -> fidl::client::QueryResponseFut<
52829        BaseNetworkSocketSetIpMulticastInterfaceResult,
52830        fidl::encoding::DefaultFuchsiaResourceDialect,
52831    > {
52832        StreamSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
52833    }
52834
52835    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
52836    pub fn r#get_ip_multicast_interface(
52837        &self,
52838    ) -> fidl::client::QueryResponseFut<
52839        BaseNetworkSocketGetIpMulticastInterfaceResult,
52840        fidl::encoding::DefaultFuchsiaResourceDialect,
52841    > {
52842        StreamSocketProxyInterface::r#get_ip_multicast_interface(self)
52843    }
52844
52845    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
52846    pub fn r#set_ip_multicast_ttl(
52847        &self,
52848        mut value: &OptionalUint8,
52849    ) -> fidl::client::QueryResponseFut<
52850        BaseNetworkSocketSetIpMulticastTtlResult,
52851        fidl::encoding::DefaultFuchsiaResourceDialect,
52852    > {
52853        StreamSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
52854    }
52855
52856    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
52857    pub fn r#get_ip_multicast_ttl(
52858        &self,
52859    ) -> fidl::client::QueryResponseFut<
52860        BaseNetworkSocketGetIpMulticastTtlResult,
52861        fidl::encoding::DefaultFuchsiaResourceDialect,
52862    > {
52863        StreamSocketProxyInterface::r#get_ip_multicast_ttl(self)
52864    }
52865
52866    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
52867    pub fn r#set_ip_multicast_loopback(
52868        &self,
52869        mut value: bool,
52870    ) -> fidl::client::QueryResponseFut<
52871        BaseNetworkSocketSetIpMulticastLoopbackResult,
52872        fidl::encoding::DefaultFuchsiaResourceDialect,
52873    > {
52874        StreamSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
52875    }
52876
52877    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
52878    pub fn r#get_ip_multicast_loopback(
52879        &self,
52880    ) -> fidl::client::QueryResponseFut<
52881        BaseNetworkSocketGetIpMulticastLoopbackResult,
52882        fidl::encoding::DefaultFuchsiaResourceDialect,
52883    > {
52884        StreamSocketProxyInterface::r#get_ip_multicast_loopback(self)
52885    }
52886
52887    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
52888    pub fn r#add_ip_membership(
52889        &self,
52890        mut membership: &IpMulticastMembership,
52891    ) -> fidl::client::QueryResponseFut<
52892        BaseNetworkSocketAddIpMembershipResult,
52893        fidl::encoding::DefaultFuchsiaResourceDialect,
52894    > {
52895        StreamSocketProxyInterface::r#add_ip_membership(self, membership)
52896    }
52897
52898    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
52899    pub fn r#drop_ip_membership(
52900        &self,
52901        mut membership: &IpMulticastMembership,
52902    ) -> fidl::client::QueryResponseFut<
52903        BaseNetworkSocketDropIpMembershipResult,
52904        fidl::encoding::DefaultFuchsiaResourceDialect,
52905    > {
52906        StreamSocketProxyInterface::r#drop_ip_membership(self, membership)
52907    }
52908
52909    /// Set `SOL_IP` -> `IP_TRANSPARENT`
52910    pub fn r#set_ip_transparent(
52911        &self,
52912        mut value: bool,
52913    ) -> fidl::client::QueryResponseFut<
52914        BaseNetworkSocketSetIpTransparentResult,
52915        fidl::encoding::DefaultFuchsiaResourceDialect,
52916    > {
52917        StreamSocketProxyInterface::r#set_ip_transparent(self, value)
52918    }
52919
52920    /// Get `SOL_IP` -> `IP_TRANSPARENT`
52921    pub fn r#get_ip_transparent(
52922        &self,
52923    ) -> fidl::client::QueryResponseFut<
52924        BaseNetworkSocketGetIpTransparentResult,
52925        fidl::encoding::DefaultFuchsiaResourceDialect,
52926    > {
52927        StreamSocketProxyInterface::r#get_ip_transparent(self)
52928    }
52929
52930    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
52931    pub fn r#set_ip_receive_original_destination_address(
52932        &self,
52933        mut value: bool,
52934    ) -> fidl::client::QueryResponseFut<
52935        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
52936        fidl::encoding::DefaultFuchsiaResourceDialect,
52937    > {
52938        StreamSocketProxyInterface::r#set_ip_receive_original_destination_address(self, value)
52939    }
52940
52941    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
52942    pub fn r#get_ip_receive_original_destination_address(
52943        &self,
52944    ) -> fidl::client::QueryResponseFut<
52945        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
52946        fidl::encoding::DefaultFuchsiaResourceDialect,
52947    > {
52948        StreamSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
52949    }
52950
52951    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
52952    pub fn r#add_ipv6_membership(
52953        &self,
52954        mut membership: &Ipv6MulticastMembership,
52955    ) -> fidl::client::QueryResponseFut<
52956        BaseNetworkSocketAddIpv6MembershipResult,
52957        fidl::encoding::DefaultFuchsiaResourceDialect,
52958    > {
52959        StreamSocketProxyInterface::r#add_ipv6_membership(self, membership)
52960    }
52961
52962    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
52963    pub fn r#drop_ipv6_membership(
52964        &self,
52965        mut membership: &Ipv6MulticastMembership,
52966    ) -> fidl::client::QueryResponseFut<
52967        BaseNetworkSocketDropIpv6MembershipResult,
52968        fidl::encoding::DefaultFuchsiaResourceDialect,
52969    > {
52970        StreamSocketProxyInterface::r#drop_ipv6_membership(self, membership)
52971    }
52972
52973    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
52974    pub fn r#set_ipv6_multicast_interface(
52975        &self,
52976        mut value: u64,
52977    ) -> fidl::client::QueryResponseFut<
52978        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
52979        fidl::encoding::DefaultFuchsiaResourceDialect,
52980    > {
52981        StreamSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
52982    }
52983
52984    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
52985    pub fn r#get_ipv6_multicast_interface(
52986        &self,
52987    ) -> fidl::client::QueryResponseFut<
52988        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
52989        fidl::encoding::DefaultFuchsiaResourceDialect,
52990    > {
52991        StreamSocketProxyInterface::r#get_ipv6_multicast_interface(self)
52992    }
52993
52994    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
52995    pub fn r#set_ipv6_unicast_hops(
52996        &self,
52997        mut value: &OptionalUint8,
52998    ) -> fidl::client::QueryResponseFut<
52999        BaseNetworkSocketSetIpv6UnicastHopsResult,
53000        fidl::encoding::DefaultFuchsiaResourceDialect,
53001    > {
53002        StreamSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
53003    }
53004
53005    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
53006    pub fn r#get_ipv6_unicast_hops(
53007        &self,
53008    ) -> fidl::client::QueryResponseFut<
53009        BaseNetworkSocketGetIpv6UnicastHopsResult,
53010        fidl::encoding::DefaultFuchsiaResourceDialect,
53011    > {
53012        StreamSocketProxyInterface::r#get_ipv6_unicast_hops(self)
53013    }
53014
53015    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
53016    pub fn r#set_ipv6_receive_hop_limit(
53017        &self,
53018        mut value: bool,
53019    ) -> fidl::client::QueryResponseFut<
53020        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
53021        fidl::encoding::DefaultFuchsiaResourceDialect,
53022    > {
53023        StreamSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
53024    }
53025
53026    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
53027    pub fn r#get_ipv6_receive_hop_limit(
53028        &self,
53029    ) -> fidl::client::QueryResponseFut<
53030        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
53031        fidl::encoding::DefaultFuchsiaResourceDialect,
53032    > {
53033        StreamSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
53034    }
53035
53036    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
53037    pub fn r#set_ipv6_multicast_hops(
53038        &self,
53039        mut value: &OptionalUint8,
53040    ) -> fidl::client::QueryResponseFut<
53041        BaseNetworkSocketSetIpv6MulticastHopsResult,
53042        fidl::encoding::DefaultFuchsiaResourceDialect,
53043    > {
53044        StreamSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
53045    }
53046
53047    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
53048    pub fn r#get_ipv6_multicast_hops(
53049        &self,
53050    ) -> fidl::client::QueryResponseFut<
53051        BaseNetworkSocketGetIpv6MulticastHopsResult,
53052        fidl::encoding::DefaultFuchsiaResourceDialect,
53053    > {
53054        StreamSocketProxyInterface::r#get_ipv6_multicast_hops(self)
53055    }
53056
53057    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
53058    pub fn r#set_ipv6_multicast_loopback(
53059        &self,
53060        mut value: bool,
53061    ) -> fidl::client::QueryResponseFut<
53062        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
53063        fidl::encoding::DefaultFuchsiaResourceDialect,
53064    > {
53065        StreamSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
53066    }
53067
53068    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
53069    pub fn r#get_ipv6_multicast_loopback(
53070        &self,
53071    ) -> fidl::client::QueryResponseFut<
53072        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
53073        fidl::encoding::DefaultFuchsiaResourceDialect,
53074    > {
53075        StreamSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
53076    }
53077
53078    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
53079    pub fn r#set_ipv6_only(
53080        &self,
53081        mut value: bool,
53082    ) -> fidl::client::QueryResponseFut<
53083        BaseNetworkSocketSetIpv6OnlyResult,
53084        fidl::encoding::DefaultFuchsiaResourceDialect,
53085    > {
53086        StreamSocketProxyInterface::r#set_ipv6_only(self, value)
53087    }
53088
53089    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
53090    pub fn r#get_ipv6_only(
53091        &self,
53092    ) -> fidl::client::QueryResponseFut<
53093        BaseNetworkSocketGetIpv6OnlyResult,
53094        fidl::encoding::DefaultFuchsiaResourceDialect,
53095    > {
53096        StreamSocketProxyInterface::r#get_ipv6_only(self)
53097    }
53098
53099    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
53100    pub fn r#set_ipv6_receive_traffic_class(
53101        &self,
53102        mut value: bool,
53103    ) -> fidl::client::QueryResponseFut<
53104        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
53105        fidl::encoding::DefaultFuchsiaResourceDialect,
53106    > {
53107        StreamSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
53108    }
53109
53110    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
53111    pub fn r#get_ipv6_receive_traffic_class(
53112        &self,
53113    ) -> fidl::client::QueryResponseFut<
53114        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
53115        fidl::encoding::DefaultFuchsiaResourceDialect,
53116    > {
53117        StreamSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
53118    }
53119
53120    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
53121    pub fn r#set_ipv6_traffic_class(
53122        &self,
53123        mut value: &OptionalUint8,
53124    ) -> fidl::client::QueryResponseFut<
53125        BaseNetworkSocketSetIpv6TrafficClassResult,
53126        fidl::encoding::DefaultFuchsiaResourceDialect,
53127    > {
53128        StreamSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
53129    }
53130
53131    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
53132    pub fn r#get_ipv6_traffic_class(
53133        &self,
53134    ) -> fidl::client::QueryResponseFut<
53135        BaseNetworkSocketGetIpv6TrafficClassResult,
53136        fidl::encoding::DefaultFuchsiaResourceDialect,
53137    > {
53138        StreamSocketProxyInterface::r#get_ipv6_traffic_class(self)
53139    }
53140
53141    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
53142    pub fn r#set_ipv6_receive_packet_info(
53143        &self,
53144        mut value: bool,
53145    ) -> fidl::client::QueryResponseFut<
53146        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
53147        fidl::encoding::DefaultFuchsiaResourceDialect,
53148    > {
53149        StreamSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
53150    }
53151
53152    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
53153    pub fn r#get_ipv6_receive_packet_info(
53154        &self,
53155    ) -> fidl::client::QueryResponseFut<
53156        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
53157        fidl::encoding::DefaultFuchsiaResourceDialect,
53158    > {
53159        StreamSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
53160    }
53161
53162    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
53163    pub fn r#get_original_destination(
53164        &self,
53165    ) -> fidl::client::QueryResponseFut<
53166        BaseNetworkSocketGetOriginalDestinationResult,
53167        fidl::encoding::DefaultFuchsiaResourceDialect,
53168    > {
53169        StreamSocketProxyInterface::r#get_original_destination(self)
53170    }
53171
53172    pub fn r#describe(
53173        &self,
53174    ) -> fidl::client::QueryResponseFut<
53175        StreamSocketDescribeResponse,
53176        fidl::encoding::DefaultFuchsiaResourceDialect,
53177    > {
53178        StreamSocketProxyInterface::r#describe(self)
53179    }
53180
53181    /// Begins listening for new incoming connections. At most `backlog`
53182    /// connections will be buffered.
53183    pub fn r#listen(
53184        &self,
53185        mut backlog: i16,
53186    ) -> fidl::client::QueryResponseFut<
53187        StreamSocketListenResult,
53188        fidl::encoding::DefaultFuchsiaResourceDialect,
53189    > {
53190        StreamSocketProxyInterface::r#listen(self, backlog)
53191    }
53192
53193    /// Accepts a buffered incoming connection.
53194    pub fn r#accept(
53195        &self,
53196        mut want_addr: bool,
53197    ) -> fidl::client::QueryResponseFut<
53198        StreamSocketAcceptResult,
53199        fidl::encoding::DefaultFuchsiaResourceDialect,
53200    > {
53201        StreamSocketProxyInterface::r#accept(self, want_addr)
53202    }
53203
53204    /// Retrieves creation information from the socket.
53205    pub fn r#get_info(
53206        &self,
53207    ) -> fidl::client::QueryResponseFut<
53208        StreamSocketGetInfoResult,
53209        fidl::encoding::DefaultFuchsiaResourceDialect,
53210    > {
53211        StreamSocketProxyInterface::r#get_info(self)
53212    }
53213
53214    /// Set `SOL_TCP` -> `TCP_NODELAY`.
53215    pub fn r#set_tcp_no_delay(
53216        &self,
53217        mut value: bool,
53218    ) -> fidl::client::QueryResponseFut<
53219        StreamSocketSetTcpNoDelayResult,
53220        fidl::encoding::DefaultFuchsiaResourceDialect,
53221    > {
53222        StreamSocketProxyInterface::r#set_tcp_no_delay(self, value)
53223    }
53224
53225    /// Get `SOL_TCP` -> `TCP_NODELAY`.
53226    pub fn r#get_tcp_no_delay(
53227        &self,
53228    ) -> fidl::client::QueryResponseFut<
53229        StreamSocketGetTcpNoDelayResult,
53230        fidl::encoding::DefaultFuchsiaResourceDialect,
53231    > {
53232        StreamSocketProxyInterface::r#get_tcp_no_delay(self)
53233    }
53234
53235    /// Set `SOL_TCP` -> `TCP_MAXSEG`.
53236    pub fn r#set_tcp_max_segment(
53237        &self,
53238        mut value_bytes: u32,
53239    ) -> fidl::client::QueryResponseFut<
53240        StreamSocketSetTcpMaxSegmentResult,
53241        fidl::encoding::DefaultFuchsiaResourceDialect,
53242    > {
53243        StreamSocketProxyInterface::r#set_tcp_max_segment(self, value_bytes)
53244    }
53245
53246    /// Get `SOL_TCP` -> `TCP_MAXSEG`.
53247    pub fn r#get_tcp_max_segment(
53248        &self,
53249    ) -> fidl::client::QueryResponseFut<
53250        StreamSocketGetTcpMaxSegmentResult,
53251        fidl::encoding::DefaultFuchsiaResourceDialect,
53252    > {
53253        StreamSocketProxyInterface::r#get_tcp_max_segment(self)
53254    }
53255
53256    /// Set `SOL_TCP` -> `TCP_CORK`.
53257    pub fn r#set_tcp_cork(
53258        &self,
53259        mut value: bool,
53260    ) -> fidl::client::QueryResponseFut<
53261        StreamSocketSetTcpCorkResult,
53262        fidl::encoding::DefaultFuchsiaResourceDialect,
53263    > {
53264        StreamSocketProxyInterface::r#set_tcp_cork(self, value)
53265    }
53266
53267    /// Get `SOL_TCP` -> `TCP_CORK`.
53268    pub fn r#get_tcp_cork(
53269        &self,
53270    ) -> fidl::client::QueryResponseFut<
53271        StreamSocketGetTcpCorkResult,
53272        fidl::encoding::DefaultFuchsiaResourceDialect,
53273    > {
53274        StreamSocketProxyInterface::r#get_tcp_cork(self)
53275    }
53276
53277    /// Set `SOL_TCP` -> `TCP_KEEPIDLE`.
53278    pub fn r#set_tcp_keep_alive_idle(
53279        &self,
53280        mut value_secs: u32,
53281    ) -> fidl::client::QueryResponseFut<
53282        StreamSocketSetTcpKeepAliveIdleResult,
53283        fidl::encoding::DefaultFuchsiaResourceDialect,
53284    > {
53285        StreamSocketProxyInterface::r#set_tcp_keep_alive_idle(self, value_secs)
53286    }
53287
53288    /// Get `SOL_TCP` -> `TCP_KEEPIDLE`.
53289    pub fn r#get_tcp_keep_alive_idle(
53290        &self,
53291    ) -> fidl::client::QueryResponseFut<
53292        StreamSocketGetTcpKeepAliveIdleResult,
53293        fidl::encoding::DefaultFuchsiaResourceDialect,
53294    > {
53295        StreamSocketProxyInterface::r#get_tcp_keep_alive_idle(self)
53296    }
53297
53298    /// Set `SOL_TCP` -> `TCP_KEEPINTVL`.
53299    pub fn r#set_tcp_keep_alive_interval(
53300        &self,
53301        mut value_secs: u32,
53302    ) -> fidl::client::QueryResponseFut<
53303        StreamSocketSetTcpKeepAliveIntervalResult,
53304        fidl::encoding::DefaultFuchsiaResourceDialect,
53305    > {
53306        StreamSocketProxyInterface::r#set_tcp_keep_alive_interval(self, value_secs)
53307    }
53308
53309    /// Get `SOL_TCP` -> `TCP_KEEPINTVL`.
53310    pub fn r#get_tcp_keep_alive_interval(
53311        &self,
53312    ) -> fidl::client::QueryResponseFut<
53313        StreamSocketGetTcpKeepAliveIntervalResult,
53314        fidl::encoding::DefaultFuchsiaResourceDialect,
53315    > {
53316        StreamSocketProxyInterface::r#get_tcp_keep_alive_interval(self)
53317    }
53318
53319    /// Set `SOL_TCP` -> `TCP_KEEPCNT`.
53320    pub fn r#set_tcp_keep_alive_count(
53321        &self,
53322        mut value: u32,
53323    ) -> fidl::client::QueryResponseFut<
53324        StreamSocketSetTcpKeepAliveCountResult,
53325        fidl::encoding::DefaultFuchsiaResourceDialect,
53326    > {
53327        StreamSocketProxyInterface::r#set_tcp_keep_alive_count(self, value)
53328    }
53329
53330    /// Get `SOL_TCP` -> `TCP_KEEPCNT`.
53331    pub fn r#get_tcp_keep_alive_count(
53332        &self,
53333    ) -> fidl::client::QueryResponseFut<
53334        StreamSocketGetTcpKeepAliveCountResult,
53335        fidl::encoding::DefaultFuchsiaResourceDialect,
53336    > {
53337        StreamSocketProxyInterface::r#get_tcp_keep_alive_count(self)
53338    }
53339
53340    /// Set `SOL_TCP` -> `TCP_SYNCNT`.
53341    pub fn r#set_tcp_syn_count(
53342        &self,
53343        mut value: u32,
53344    ) -> fidl::client::QueryResponseFut<
53345        StreamSocketSetTcpSynCountResult,
53346        fidl::encoding::DefaultFuchsiaResourceDialect,
53347    > {
53348        StreamSocketProxyInterface::r#set_tcp_syn_count(self, value)
53349    }
53350
53351    /// Get `SOL_TCP` -> `TCP_SYNCNT`.
53352    pub fn r#get_tcp_syn_count(
53353        &self,
53354    ) -> fidl::client::QueryResponseFut<
53355        StreamSocketGetTcpSynCountResult,
53356        fidl::encoding::DefaultFuchsiaResourceDialect,
53357    > {
53358        StreamSocketProxyInterface::r#get_tcp_syn_count(self)
53359    }
53360
53361    /// Set `SOL_TCP` -> `TCP_LINGER2`.
53362    pub fn r#set_tcp_linger(
53363        &self,
53364        mut value_secs: &OptionalUint32,
53365    ) -> fidl::client::QueryResponseFut<
53366        StreamSocketSetTcpLingerResult,
53367        fidl::encoding::DefaultFuchsiaResourceDialect,
53368    > {
53369        StreamSocketProxyInterface::r#set_tcp_linger(self, value_secs)
53370    }
53371
53372    /// Get `SOL_TCP` -> `TCP_LINGER2`.
53373    pub fn r#get_tcp_linger(
53374        &self,
53375    ) -> fidl::client::QueryResponseFut<
53376        StreamSocketGetTcpLingerResult,
53377        fidl::encoding::DefaultFuchsiaResourceDialect,
53378    > {
53379        StreamSocketProxyInterface::r#get_tcp_linger(self)
53380    }
53381
53382    /// Set `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
53383    pub fn r#set_tcp_defer_accept(
53384        &self,
53385        mut value_secs: u32,
53386    ) -> fidl::client::QueryResponseFut<
53387        StreamSocketSetTcpDeferAcceptResult,
53388        fidl::encoding::DefaultFuchsiaResourceDialect,
53389    > {
53390        StreamSocketProxyInterface::r#set_tcp_defer_accept(self, value_secs)
53391    }
53392
53393    /// Get `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
53394    pub fn r#get_tcp_defer_accept(
53395        &self,
53396    ) -> fidl::client::QueryResponseFut<
53397        StreamSocketGetTcpDeferAcceptResult,
53398        fidl::encoding::DefaultFuchsiaResourceDialect,
53399    > {
53400        StreamSocketProxyInterface::r#get_tcp_defer_accept(self)
53401    }
53402
53403    /// Set `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
53404    pub fn r#set_tcp_window_clamp(
53405        &self,
53406        mut value: u32,
53407    ) -> fidl::client::QueryResponseFut<
53408        StreamSocketSetTcpWindowClampResult,
53409        fidl::encoding::DefaultFuchsiaResourceDialect,
53410    > {
53411        StreamSocketProxyInterface::r#set_tcp_window_clamp(self, value)
53412    }
53413
53414    /// Get `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
53415    pub fn r#get_tcp_window_clamp(
53416        &self,
53417    ) -> fidl::client::QueryResponseFut<
53418        StreamSocketGetTcpWindowClampResult,
53419        fidl::encoding::DefaultFuchsiaResourceDialect,
53420    > {
53421        StreamSocketProxyInterface::r#get_tcp_window_clamp(self)
53422    }
53423
53424    /// Get `SOL_TCP` -> `TCP_INFO`.
53425    pub fn r#get_tcp_info(
53426        &self,
53427    ) -> fidl::client::QueryResponseFut<
53428        StreamSocketGetTcpInfoResult,
53429        fidl::encoding::DefaultFuchsiaResourceDialect,
53430    > {
53431        StreamSocketProxyInterface::r#get_tcp_info(self)
53432    }
53433
53434    /// Set `SOL_TCP` -> `TCP_QUICKACK`.
53435    pub fn r#set_tcp_quick_ack(
53436        &self,
53437        mut value: bool,
53438    ) -> fidl::client::QueryResponseFut<
53439        StreamSocketSetTcpQuickAckResult,
53440        fidl::encoding::DefaultFuchsiaResourceDialect,
53441    > {
53442        StreamSocketProxyInterface::r#set_tcp_quick_ack(self, value)
53443    }
53444
53445    /// Get `SOL_TCP` -> `TCP_QUICKACK`.
53446    pub fn r#get_tcp_quick_ack(
53447        &self,
53448    ) -> fidl::client::QueryResponseFut<
53449        StreamSocketGetTcpQuickAckResult,
53450        fidl::encoding::DefaultFuchsiaResourceDialect,
53451    > {
53452        StreamSocketProxyInterface::r#get_tcp_quick_ack(self)
53453    }
53454
53455    /// Set `SOL_TCP` -> `TCP_CONGESTION`.
53456    pub fn r#set_tcp_congestion(
53457        &self,
53458        mut value: TcpCongestionControl,
53459    ) -> fidl::client::QueryResponseFut<
53460        StreamSocketSetTcpCongestionResult,
53461        fidl::encoding::DefaultFuchsiaResourceDialect,
53462    > {
53463        StreamSocketProxyInterface::r#set_tcp_congestion(self, value)
53464    }
53465
53466    /// Get `SOL_TCP` -> `TCP_CONGESTION`.
53467    pub fn r#get_tcp_congestion(
53468        &self,
53469    ) -> fidl::client::QueryResponseFut<
53470        StreamSocketGetTcpCongestionResult,
53471        fidl::encoding::DefaultFuchsiaResourceDialect,
53472    > {
53473        StreamSocketProxyInterface::r#get_tcp_congestion(self)
53474    }
53475
53476    /// Set `SOL_TCP` -> `TCP_USER_TIMEOUT`.
53477    pub fn r#set_tcp_user_timeout(
53478        &self,
53479        mut value_millis: u32,
53480    ) -> fidl::client::QueryResponseFut<
53481        StreamSocketSetTcpUserTimeoutResult,
53482        fidl::encoding::DefaultFuchsiaResourceDialect,
53483    > {
53484        StreamSocketProxyInterface::r#set_tcp_user_timeout(self, value_millis)
53485    }
53486
53487    /// Get `SOL_TCP` -> `TCP_USER_TIMEOUT`.
53488    pub fn r#get_tcp_user_timeout(
53489        &self,
53490    ) -> fidl::client::QueryResponseFut<
53491        StreamSocketGetTcpUserTimeoutResult,
53492        fidl::encoding::DefaultFuchsiaResourceDialect,
53493    > {
53494        StreamSocketProxyInterface::r#get_tcp_user_timeout(self)
53495    }
53496}
53497
53498impl StreamSocketProxyInterface for StreamSocketProxy {
53499    fn r#clone(
53500        &self,
53501        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
53502    ) -> Result<(), fidl::Error> {
53503        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
53504            (request,),
53505            0x20d8a7aba2168a79,
53506            fidl::encoding::DynamicFlags::empty(),
53507        )
53508    }
53509
53510    type CloseResponseFut = fidl::client::QueryResponseFut<
53511        fidl_fuchsia_unknown::CloseableCloseResult,
53512        fidl::encoding::DefaultFuchsiaResourceDialect,
53513    >;
53514    fn r#close(&self) -> Self::CloseResponseFut {
53515        fn _decode(
53516            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53517        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
53518            let _response = fidl::client::decode_transaction_body::<
53519                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
53520                fidl::encoding::DefaultFuchsiaResourceDialect,
53521                0x5ac5d459ad7f657e,
53522            >(_buf?)?;
53523            Ok(_response.map(|x| x))
53524        }
53525        self.client.send_query_and_decode::<
53526            fidl::encoding::EmptyPayload,
53527            fidl_fuchsia_unknown::CloseableCloseResult,
53528        >(
53529            (),
53530            0x5ac5d459ad7f657e,
53531            fidl::encoding::DynamicFlags::empty(),
53532            _decode,
53533        )
53534    }
53535
53536    type QueryResponseFut =
53537        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
53538    fn r#query(&self) -> Self::QueryResponseFut {
53539        fn _decode(
53540            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53541        ) -> Result<Vec<u8>, fidl::Error> {
53542            let _response = fidl::client::decode_transaction_body::<
53543                fidl_fuchsia_unknown::QueryableQueryResponse,
53544                fidl::encoding::DefaultFuchsiaResourceDialect,
53545                0x2658edee9decfc06,
53546            >(_buf?)?;
53547            Ok(_response.protocol)
53548        }
53549        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
53550            (),
53551            0x2658edee9decfc06,
53552            fidl::encoding::DynamicFlags::empty(),
53553            _decode,
53554        )
53555    }
53556
53557    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
53558        BaseSocketSetReuseAddressResult,
53559        fidl::encoding::DefaultFuchsiaResourceDialect,
53560    >;
53561    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
53562        fn _decode(
53563            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53564        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
53565            let _response = fidl::client::decode_transaction_body::<
53566                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53567                fidl::encoding::DefaultFuchsiaResourceDialect,
53568                0x1fd74ee8b9a4a876,
53569            >(_buf?)?;
53570            Ok(_response.map(|x| x))
53571        }
53572        self.client.send_query_and_decode::<
53573            BaseSocketSetReuseAddressRequest,
53574            BaseSocketSetReuseAddressResult,
53575        >(
53576            (value,),
53577            0x1fd74ee8b9a4a876,
53578            fidl::encoding::DynamicFlags::empty(),
53579            _decode,
53580        )
53581    }
53582
53583    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
53584        BaseSocketGetReuseAddressResult,
53585        fidl::encoding::DefaultFuchsiaResourceDialect,
53586    >;
53587    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
53588        fn _decode(
53589            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53590        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
53591            let _response = fidl::client::decode_transaction_body::<
53592                fidl::encoding::ResultType<
53593                    BaseSocketGetReuseAddressResponse,
53594                    fidl_fuchsia_posix::Errno,
53595                >,
53596                fidl::encoding::DefaultFuchsiaResourceDialect,
53597                0x67b7206b8d1bc0a5,
53598            >(_buf?)?;
53599            Ok(_response.map(|x| x.value))
53600        }
53601        self.client
53602            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
53603                (),
53604                0x67b7206b8d1bc0a5,
53605                fidl::encoding::DynamicFlags::empty(),
53606                _decode,
53607            )
53608    }
53609
53610    type GetErrorResponseFut = fidl::client::QueryResponseFut<
53611        BaseSocketGetErrorResult,
53612        fidl::encoding::DefaultFuchsiaResourceDialect,
53613    >;
53614    fn r#get_error(&self) -> Self::GetErrorResponseFut {
53615        fn _decode(
53616            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53617        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
53618            let _response = fidl::client::decode_transaction_body::<
53619                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53620                fidl::encoding::DefaultFuchsiaResourceDialect,
53621                0x5aad39b33e5f6ebb,
53622            >(_buf?)?;
53623            Ok(_response.map(|x| x))
53624        }
53625        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
53626            (),
53627            0x5aad39b33e5f6ebb,
53628            fidl::encoding::DynamicFlags::empty(),
53629            _decode,
53630        )
53631    }
53632
53633    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
53634        BaseSocketSetBroadcastResult,
53635        fidl::encoding::DefaultFuchsiaResourceDialect,
53636    >;
53637    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
53638        fn _decode(
53639            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53640        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
53641            let _response = fidl::client::decode_transaction_body::<
53642                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53643                fidl::encoding::DefaultFuchsiaResourceDialect,
53644                0x6023e081ce3cd947,
53645            >(_buf?)?;
53646            Ok(_response.map(|x| x))
53647        }
53648        self.client
53649            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
53650                (value,),
53651                0x6023e081ce3cd947,
53652                fidl::encoding::DynamicFlags::empty(),
53653                _decode,
53654            )
53655    }
53656
53657    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
53658        BaseSocketGetBroadcastResult,
53659        fidl::encoding::DefaultFuchsiaResourceDialect,
53660    >;
53661    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
53662        fn _decode(
53663            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53664        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
53665            let _response = fidl::client::decode_transaction_body::<
53666                fidl::encoding::ResultType<
53667                    BaseSocketGetBroadcastResponse,
53668                    fidl_fuchsia_posix::Errno,
53669                >,
53670                fidl::encoding::DefaultFuchsiaResourceDialect,
53671                0x68796fc556f9780d,
53672            >(_buf?)?;
53673            Ok(_response.map(|x| x.value))
53674        }
53675        self.client
53676            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
53677                (),
53678                0x68796fc556f9780d,
53679                fidl::encoding::DynamicFlags::empty(),
53680                _decode,
53681            )
53682    }
53683
53684    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
53685        BaseSocketSetSendBufferResult,
53686        fidl::encoding::DefaultFuchsiaResourceDialect,
53687    >;
53688    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
53689        fn _decode(
53690            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53691        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
53692            let _response = fidl::client::decode_transaction_body::<
53693                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53694                fidl::encoding::DefaultFuchsiaResourceDialect,
53695                0x756eac32d73a7a70,
53696            >(_buf?)?;
53697            Ok(_response.map(|x| x))
53698        }
53699        self.client
53700            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
53701                (value_bytes,),
53702                0x756eac32d73a7a70,
53703                fidl::encoding::DynamicFlags::empty(),
53704                _decode,
53705            )
53706    }
53707
53708    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
53709        BaseSocketGetSendBufferResult,
53710        fidl::encoding::DefaultFuchsiaResourceDialect,
53711    >;
53712    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
53713        fn _decode(
53714            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53715        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
53716            let _response = fidl::client::decode_transaction_body::<
53717                fidl::encoding::ResultType<
53718                    BaseSocketGetSendBufferResponse,
53719                    fidl_fuchsia_posix::Errno,
53720                >,
53721                fidl::encoding::DefaultFuchsiaResourceDialect,
53722                0x78a52fd9c7b2410b,
53723            >(_buf?)?;
53724            Ok(_response.map(|x| x.value_bytes))
53725        }
53726        self.client
53727            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
53728                (),
53729                0x78a52fd9c7b2410b,
53730                fidl::encoding::DynamicFlags::empty(),
53731                _decode,
53732            )
53733    }
53734
53735    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
53736        BaseSocketSetReceiveBufferResult,
53737        fidl::encoding::DefaultFuchsiaResourceDialect,
53738    >;
53739    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
53740        fn _decode(
53741            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53742        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
53743            let _response = fidl::client::decode_transaction_body::<
53744                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53745                fidl::encoding::DefaultFuchsiaResourceDialect,
53746                0x6b0cf2f1919c7001,
53747            >(_buf?)?;
53748            Ok(_response.map(|x| x))
53749        }
53750        self.client.send_query_and_decode::<
53751            BaseSocketSetReceiveBufferRequest,
53752            BaseSocketSetReceiveBufferResult,
53753        >(
53754            (value_bytes,),
53755            0x6b0cf2f1919c7001,
53756            fidl::encoding::DynamicFlags::empty(),
53757            _decode,
53758        )
53759    }
53760
53761    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
53762        BaseSocketGetReceiveBufferResult,
53763        fidl::encoding::DefaultFuchsiaResourceDialect,
53764    >;
53765    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
53766        fn _decode(
53767            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53768        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
53769            let _response = fidl::client::decode_transaction_body::<
53770                fidl::encoding::ResultType<
53771                    BaseSocketGetReceiveBufferResponse,
53772                    fidl_fuchsia_posix::Errno,
53773                >,
53774                fidl::encoding::DefaultFuchsiaResourceDialect,
53775                0x14c1a4b64f709e5c,
53776            >(_buf?)?;
53777            Ok(_response.map(|x| x.value_bytes))
53778        }
53779        self.client.send_query_and_decode::<
53780            fidl::encoding::EmptyPayload,
53781            BaseSocketGetReceiveBufferResult,
53782        >(
53783            (),
53784            0x14c1a4b64f709e5c,
53785            fidl::encoding::DynamicFlags::empty(),
53786            _decode,
53787        )
53788    }
53789
53790    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
53791        BaseSocketSetKeepAliveResult,
53792        fidl::encoding::DefaultFuchsiaResourceDialect,
53793    >;
53794    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
53795        fn _decode(
53796            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53797        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
53798            let _response = fidl::client::decode_transaction_body::<
53799                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53800                fidl::encoding::DefaultFuchsiaResourceDialect,
53801                0x572df8f0b920d2c7,
53802            >(_buf?)?;
53803            Ok(_response.map(|x| x))
53804        }
53805        self.client
53806            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
53807                (value,),
53808                0x572df8f0b920d2c7,
53809                fidl::encoding::DynamicFlags::empty(),
53810                _decode,
53811            )
53812    }
53813
53814    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
53815        BaseSocketGetKeepAliveResult,
53816        fidl::encoding::DefaultFuchsiaResourceDialect,
53817    >;
53818    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
53819        fn _decode(
53820            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53821        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
53822            let _response = fidl::client::decode_transaction_body::<
53823                fidl::encoding::ResultType<
53824                    BaseSocketGetKeepAliveResponse,
53825                    fidl_fuchsia_posix::Errno,
53826                >,
53827                fidl::encoding::DefaultFuchsiaResourceDialect,
53828                0x2dd29d3215f2c9d2,
53829            >(_buf?)?;
53830            Ok(_response.map(|x| x.value))
53831        }
53832        self.client
53833            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
53834                (),
53835                0x2dd29d3215f2c9d2,
53836                fidl::encoding::DynamicFlags::empty(),
53837                _decode,
53838            )
53839    }
53840
53841    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
53842        BaseSocketSetOutOfBandInlineResult,
53843        fidl::encoding::DefaultFuchsiaResourceDialect,
53844    >;
53845    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
53846        fn _decode(
53847            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53848        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
53849            let _response = fidl::client::decode_transaction_body::<
53850                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53851                fidl::encoding::DefaultFuchsiaResourceDialect,
53852                0x3ecb49968bee439,
53853            >(_buf?)?;
53854            Ok(_response.map(|x| x))
53855        }
53856        self.client.send_query_and_decode::<
53857            BaseSocketSetOutOfBandInlineRequest,
53858            BaseSocketSetOutOfBandInlineResult,
53859        >(
53860            (value,),
53861            0x3ecb49968bee439,
53862            fidl::encoding::DynamicFlags::empty(),
53863            _decode,
53864        )
53865    }
53866
53867    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
53868        BaseSocketGetOutOfBandInlineResult,
53869        fidl::encoding::DefaultFuchsiaResourceDialect,
53870    >;
53871    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
53872        fn _decode(
53873            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53874        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
53875            let _response = fidl::client::decode_transaction_body::<
53876                fidl::encoding::ResultType<
53877                    BaseSocketGetOutOfBandInlineResponse,
53878                    fidl_fuchsia_posix::Errno,
53879                >,
53880                fidl::encoding::DefaultFuchsiaResourceDialect,
53881                0x348c1ab3aeca1745,
53882            >(_buf?)?;
53883            Ok(_response.map(|x| x.value))
53884        }
53885        self.client.send_query_and_decode::<
53886            fidl::encoding::EmptyPayload,
53887            BaseSocketGetOutOfBandInlineResult,
53888        >(
53889            (),
53890            0x348c1ab3aeca1745,
53891            fidl::encoding::DynamicFlags::empty(),
53892            _decode,
53893        )
53894    }
53895
53896    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
53897        BaseSocketSetNoCheckResult,
53898        fidl::encoding::DefaultFuchsiaResourceDialect,
53899    >;
53900    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
53901        fn _decode(
53902            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53903        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
53904            let _response = fidl::client::decode_transaction_body::<
53905                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53906                fidl::encoding::DefaultFuchsiaResourceDialect,
53907                0x6bbf00c53a4c78c2,
53908            >(_buf?)?;
53909            Ok(_response.map(|x| x))
53910        }
53911        self.client
53912            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
53913                (value,),
53914                0x6bbf00c53a4c78c2,
53915                fidl::encoding::DynamicFlags::empty(),
53916                _decode,
53917            )
53918    }
53919
53920    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
53921        BaseSocketGetNoCheckResult,
53922        fidl::encoding::DefaultFuchsiaResourceDialect,
53923    >;
53924    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
53925        fn _decode(
53926            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53927        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
53928            let _response = fidl::client::decode_transaction_body::<
53929                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
53930                fidl::encoding::DefaultFuchsiaResourceDialect,
53931                0x2cd4249286417694,
53932            >(_buf?)?;
53933            Ok(_response.map(|x| x.value))
53934        }
53935        self.client
53936            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
53937                (),
53938                0x2cd4249286417694,
53939                fidl::encoding::DynamicFlags::empty(),
53940                _decode,
53941            )
53942    }
53943
53944    type SetLingerResponseFut = fidl::client::QueryResponseFut<
53945        BaseSocketSetLingerResult,
53946        fidl::encoding::DefaultFuchsiaResourceDialect,
53947    >;
53948    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
53949        fn _decode(
53950            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53951        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
53952            let _response = fidl::client::decode_transaction_body::<
53953                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
53954                fidl::encoding::DefaultFuchsiaResourceDialect,
53955                0x45386351246e998e,
53956            >(_buf?)?;
53957            Ok(_response.map(|x| x))
53958        }
53959        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
53960            (linger, length_secs),
53961            0x45386351246e998e,
53962            fidl::encoding::DynamicFlags::empty(),
53963            _decode,
53964        )
53965    }
53966
53967    type GetLingerResponseFut = fidl::client::QueryResponseFut<
53968        BaseSocketGetLingerResult,
53969        fidl::encoding::DefaultFuchsiaResourceDialect,
53970    >;
53971    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
53972        fn _decode(
53973            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53974        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
53975            let _response = fidl::client::decode_transaction_body::<
53976                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
53977                fidl::encoding::DefaultFuchsiaResourceDialect,
53978                0x48eb20fc5ccb0e45,
53979            >(_buf?)?;
53980            Ok(_response.map(|x| (x.linger, x.length_secs)))
53981        }
53982        self.client
53983            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
53984                (),
53985                0x48eb20fc5ccb0e45,
53986                fidl::encoding::DynamicFlags::empty(),
53987                _decode,
53988            )
53989    }
53990
53991    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
53992        BaseSocketSetReusePortResult,
53993        fidl::encoding::DefaultFuchsiaResourceDialect,
53994    >;
53995    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
53996        fn _decode(
53997            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
53998        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
53999            let _response = fidl::client::decode_transaction_body::<
54000                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54001                fidl::encoding::DefaultFuchsiaResourceDialect,
54002                0x24dd3e5cb36d9ccb,
54003            >(_buf?)?;
54004            Ok(_response.map(|x| x))
54005        }
54006        self.client
54007            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
54008                (value,),
54009                0x24dd3e5cb36d9ccb,
54010                fidl::encoding::DynamicFlags::empty(),
54011                _decode,
54012            )
54013    }
54014
54015    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
54016        BaseSocketGetReusePortResult,
54017        fidl::encoding::DefaultFuchsiaResourceDialect,
54018    >;
54019    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
54020        fn _decode(
54021            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54022        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
54023            let _response = fidl::client::decode_transaction_body::<
54024                fidl::encoding::ResultType<
54025                    BaseSocketGetReusePortResponse,
54026                    fidl_fuchsia_posix::Errno,
54027                >,
54028                fidl::encoding::DefaultFuchsiaResourceDialect,
54029                0x7a112c1ab54ff828,
54030            >(_buf?)?;
54031            Ok(_response.map(|x| x.value))
54032        }
54033        self.client
54034            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
54035                (),
54036                0x7a112c1ab54ff828,
54037                fidl::encoding::DynamicFlags::empty(),
54038                _decode,
54039            )
54040    }
54041
54042    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
54043        BaseSocketGetAcceptConnResult,
54044        fidl::encoding::DefaultFuchsiaResourceDialect,
54045    >;
54046    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
54047        fn _decode(
54048            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54049        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
54050            let _response = fidl::client::decode_transaction_body::<
54051                fidl::encoding::ResultType<
54052                    BaseSocketGetAcceptConnResponse,
54053                    fidl_fuchsia_posix::Errno,
54054                >,
54055                fidl::encoding::DefaultFuchsiaResourceDialect,
54056                0x67ce6db6c2ec8966,
54057            >(_buf?)?;
54058            Ok(_response.map(|x| x.value))
54059        }
54060        self.client
54061            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
54062                (),
54063                0x67ce6db6c2ec8966,
54064                fidl::encoding::DynamicFlags::empty(),
54065                _decode,
54066            )
54067    }
54068
54069    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
54070        BaseSocketSetBindToDeviceResult,
54071        fidl::encoding::DefaultFuchsiaResourceDialect,
54072    >;
54073    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
54074        fn _decode(
54075            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54076        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
54077            let _response = fidl::client::decode_transaction_body::<
54078                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54079                fidl::encoding::DefaultFuchsiaResourceDialect,
54080                0x2118b483f28aafc4,
54081            >(_buf?)?;
54082            Ok(_response.map(|x| x))
54083        }
54084        self.client.send_query_and_decode::<
54085            BaseSocketSetBindToDeviceRequest,
54086            BaseSocketSetBindToDeviceResult,
54087        >(
54088            (value,),
54089            0x2118b483f28aafc4,
54090            fidl::encoding::DynamicFlags::empty(),
54091            _decode,
54092        )
54093    }
54094
54095    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
54096        BaseSocketGetBindToDeviceResult,
54097        fidl::encoding::DefaultFuchsiaResourceDialect,
54098    >;
54099    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
54100        fn _decode(
54101            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54102        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
54103            let _response = fidl::client::decode_transaction_body::<
54104                fidl::encoding::ResultType<
54105                    BaseSocketGetBindToDeviceResponse,
54106                    fidl_fuchsia_posix::Errno,
54107                >,
54108                fidl::encoding::DefaultFuchsiaResourceDialect,
54109                0x1ab1fbf0ef7906c8,
54110            >(_buf?)?;
54111            Ok(_response.map(|x| x.value))
54112        }
54113        self.client
54114            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
54115                (),
54116                0x1ab1fbf0ef7906c8,
54117                fidl::encoding::DynamicFlags::empty(),
54118                _decode,
54119            )
54120    }
54121
54122    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
54123        BaseSocketSetBindToInterfaceIndexResult,
54124        fidl::encoding::DefaultFuchsiaResourceDialect,
54125    >;
54126    fn r#set_bind_to_interface_index(
54127        &self,
54128        mut value: u64,
54129    ) -> Self::SetBindToInterfaceIndexResponseFut {
54130        fn _decode(
54131            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54132        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
54133            let _response = fidl::client::decode_transaction_body::<
54134                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54135                fidl::encoding::DefaultFuchsiaResourceDialect,
54136                0x6e387a0def00821,
54137            >(_buf?)?;
54138            Ok(_response.map(|x| x))
54139        }
54140        self.client.send_query_and_decode::<
54141            BaseSocketSetBindToInterfaceIndexRequest,
54142            BaseSocketSetBindToInterfaceIndexResult,
54143        >(
54144            (value,),
54145            0x6e387a0def00821,
54146            fidl::encoding::DynamicFlags::empty(),
54147            _decode,
54148        )
54149    }
54150
54151    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
54152        BaseSocketGetBindToInterfaceIndexResult,
54153        fidl::encoding::DefaultFuchsiaResourceDialect,
54154    >;
54155    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
54156        fn _decode(
54157            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54158        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
54159            let _response = fidl::client::decode_transaction_body::<
54160                fidl::encoding::ResultType<
54161                    BaseSocketGetBindToInterfaceIndexResponse,
54162                    fidl_fuchsia_posix::Errno,
54163                >,
54164                fidl::encoding::DefaultFuchsiaResourceDialect,
54165                0x59c31dd3e3078295,
54166            >(_buf?)?;
54167            Ok(_response.map(|x| x.value))
54168        }
54169        self.client.send_query_and_decode::<
54170            fidl::encoding::EmptyPayload,
54171            BaseSocketGetBindToInterfaceIndexResult,
54172        >(
54173            (),
54174            0x59c31dd3e3078295,
54175            fidl::encoding::DynamicFlags::empty(),
54176            _decode,
54177        )
54178    }
54179
54180    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
54181        BaseSocketSetTimestampResult,
54182        fidl::encoding::DefaultFuchsiaResourceDialect,
54183    >;
54184    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
54185        fn _decode(
54186            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54187        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
54188            let _response = fidl::client::decode_transaction_body::<
54189                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54190                fidl::encoding::DefaultFuchsiaResourceDialect,
54191                0x285d6516c263d839,
54192            >(_buf?)?;
54193            Ok(_response.map(|x| x))
54194        }
54195        self.client
54196            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
54197                (value,),
54198                0x285d6516c263d839,
54199                fidl::encoding::DynamicFlags::empty(),
54200                _decode,
54201            )
54202    }
54203
54204    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
54205        BaseSocketGetTimestampResult,
54206        fidl::encoding::DefaultFuchsiaResourceDialect,
54207    >;
54208    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
54209        fn _decode(
54210            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54211        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
54212            let _response = fidl::client::decode_transaction_body::<
54213                fidl::encoding::ResultType<
54214                    BaseSocketGetTimestampResponse,
54215                    fidl_fuchsia_posix::Errno,
54216                >,
54217                fidl::encoding::DefaultFuchsiaResourceDialect,
54218                0x49f2fffbbcc2bd27,
54219            >(_buf?)?;
54220            Ok(_response.map(|x| x.value))
54221        }
54222        self.client
54223            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
54224                (),
54225                0x49f2fffbbcc2bd27,
54226                fidl::encoding::DynamicFlags::empty(),
54227                _decode,
54228            )
54229    }
54230
54231    type SetMarkResponseFut = fidl::client::QueryResponseFut<
54232        BaseSocketSetMarkResult,
54233        fidl::encoding::DefaultFuchsiaResourceDialect,
54234    >;
54235    fn r#set_mark(
54236        &self,
54237        mut domain: fidl_fuchsia_net::MarkDomain,
54238        mut mark: &OptionalUint32,
54239    ) -> Self::SetMarkResponseFut {
54240        fn _decode(
54241            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54242        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
54243            let _response = fidl::client::decode_transaction_body::<
54244                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54245                fidl::encoding::DefaultFuchsiaResourceDialect,
54246                0x6ead6de09f653236,
54247            >(_buf?)?;
54248            Ok(_response.map(|x| x))
54249        }
54250        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
54251            (domain, mark),
54252            0x6ead6de09f653236,
54253            fidl::encoding::DynamicFlags::empty(),
54254            _decode,
54255        )
54256    }
54257
54258    type GetMarkResponseFut = fidl::client::QueryResponseFut<
54259        BaseSocketGetMarkResult,
54260        fidl::encoding::DefaultFuchsiaResourceDialect,
54261    >;
54262    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
54263        fn _decode(
54264            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54265        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
54266            let _response = fidl::client::decode_transaction_body::<
54267                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
54268                fidl::encoding::DefaultFuchsiaResourceDialect,
54269                0x57a2752c61d93d47,
54270            >(_buf?)?;
54271            Ok(_response.map(|x| x.mark))
54272        }
54273        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
54274            (domain,),
54275            0x57a2752c61d93d47,
54276            fidl::encoding::DynamicFlags::empty(),
54277            _decode,
54278        )
54279    }
54280
54281    type GetCookieResponseFut = fidl::client::QueryResponseFut<
54282        BaseSocketGetCookieResult,
54283        fidl::encoding::DefaultFuchsiaResourceDialect,
54284    >;
54285    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
54286        fn _decode(
54287            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54288        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
54289            let _response = fidl::client::decode_transaction_body::<
54290                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
54291                fidl::encoding::DefaultFuchsiaResourceDialect,
54292                0x2c2f47fd8f924e52,
54293            >(_buf?)?;
54294            Ok(_response.map(|x| x.value))
54295        }
54296        self.client
54297            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
54298                (),
54299                0x2c2f47fd8f924e52,
54300                fidl::encoding::DynamicFlags::empty(),
54301                _decode,
54302            )
54303    }
54304
54305    type BindResponseFut = fidl::client::QueryResponseFut<
54306        BaseNetworkSocketBindResult,
54307        fidl::encoding::DefaultFuchsiaResourceDialect,
54308    >;
54309    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
54310        fn _decode(
54311            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54312        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
54313            let _response = fidl::client::decode_transaction_body::<
54314                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54315                fidl::encoding::DefaultFuchsiaResourceDialect,
54316                0x4bc6400ae92125d,
54317            >(_buf?)?;
54318            Ok(_response.map(|x| x))
54319        }
54320        self.client
54321            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
54322                (addr,),
54323                0x4bc6400ae92125d,
54324                fidl::encoding::DynamicFlags::empty(),
54325                _decode,
54326            )
54327    }
54328
54329    type ConnectResponseFut = fidl::client::QueryResponseFut<
54330        BaseNetworkSocketConnectResult,
54331        fidl::encoding::DefaultFuchsiaResourceDialect,
54332    >;
54333    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
54334        fn _decode(
54335            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54336        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
54337            let _response = fidl::client::decode_transaction_body::<
54338                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54339                fidl::encoding::DefaultFuchsiaResourceDialect,
54340                0x5f05f19bfdd38871,
54341            >(_buf?)?;
54342            Ok(_response.map(|x| x))
54343        }
54344        self.client.send_query_and_decode::<
54345            BaseNetworkSocketConnectRequest,
54346            BaseNetworkSocketConnectResult,
54347        >(
54348            (addr,),
54349            0x5f05f19bfdd38871,
54350            fidl::encoding::DynamicFlags::empty(),
54351            _decode,
54352        )
54353    }
54354
54355    type DisconnectResponseFut = fidl::client::QueryResponseFut<
54356        BaseNetworkSocketDisconnectResult,
54357        fidl::encoding::DefaultFuchsiaResourceDialect,
54358    >;
54359    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
54360        fn _decode(
54361            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54362        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
54363            let _response = fidl::client::decode_transaction_body::<
54364                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54365                fidl::encoding::DefaultFuchsiaResourceDialect,
54366                0x74e63b91f7b29b2,
54367            >(_buf?)?;
54368            Ok(_response.map(|x| x))
54369        }
54370        self.client.send_query_and_decode::<
54371            fidl::encoding::EmptyPayload,
54372            BaseNetworkSocketDisconnectResult,
54373        >(
54374            (),
54375            0x74e63b91f7b29b2,
54376            fidl::encoding::DynamicFlags::empty(),
54377            _decode,
54378        )
54379    }
54380
54381    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
54382        BaseNetworkSocketGetSockNameResult,
54383        fidl::encoding::DefaultFuchsiaResourceDialect,
54384    >;
54385    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
54386        fn _decode(
54387            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54388        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
54389            let _response = fidl::client::decode_transaction_body::<
54390                fidl::encoding::ResultType<
54391                    BaseNetworkSocketGetSockNameResponse,
54392                    fidl_fuchsia_posix::Errno,
54393                >,
54394                fidl::encoding::DefaultFuchsiaResourceDialect,
54395                0x475f23f84a1a4f85,
54396            >(_buf?)?;
54397            Ok(_response.map(|x| x.addr))
54398        }
54399        self.client.send_query_and_decode::<
54400            fidl::encoding::EmptyPayload,
54401            BaseNetworkSocketGetSockNameResult,
54402        >(
54403            (),
54404            0x475f23f84a1a4f85,
54405            fidl::encoding::DynamicFlags::empty(),
54406            _decode,
54407        )
54408    }
54409
54410    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
54411        BaseNetworkSocketGetPeerNameResult,
54412        fidl::encoding::DefaultFuchsiaResourceDialect,
54413    >;
54414    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
54415        fn _decode(
54416            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54417        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
54418            let _response = fidl::client::decode_transaction_body::<
54419                fidl::encoding::ResultType<
54420                    BaseNetworkSocketGetPeerNameResponse,
54421                    fidl_fuchsia_posix::Errno,
54422                >,
54423                fidl::encoding::DefaultFuchsiaResourceDialect,
54424                0x1ffecf4bd5b6432e,
54425            >(_buf?)?;
54426            Ok(_response.map(|x| x.addr))
54427        }
54428        self.client.send_query_and_decode::<
54429            fidl::encoding::EmptyPayload,
54430            BaseNetworkSocketGetPeerNameResult,
54431        >(
54432            (),
54433            0x1ffecf4bd5b6432e,
54434            fidl::encoding::DynamicFlags::empty(),
54435            _decode,
54436        )
54437    }
54438
54439    type ShutdownResponseFut = fidl::client::QueryResponseFut<
54440        BaseNetworkSocketShutdownResult,
54441        fidl::encoding::DefaultFuchsiaResourceDialect,
54442    >;
54443    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
54444        fn _decode(
54445            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54446        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
54447            let _response = fidl::client::decode_transaction_body::<
54448                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54449                fidl::encoding::DefaultFuchsiaResourceDialect,
54450                0x247f38b6db68c336,
54451            >(_buf?)?;
54452            Ok(_response.map(|x| x))
54453        }
54454        self.client.send_query_and_decode::<
54455            BaseNetworkSocketShutdownRequest,
54456            BaseNetworkSocketShutdownResult,
54457        >(
54458            (mode,),
54459            0x247f38b6db68c336,
54460            fidl::encoding::DynamicFlags::empty(),
54461            _decode,
54462        )
54463    }
54464
54465    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
54466        BaseNetworkSocketSetIpTypeOfServiceResult,
54467        fidl::encoding::DefaultFuchsiaResourceDialect,
54468    >;
54469    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
54470        fn _decode(
54471            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54472        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
54473            let _response = fidl::client::decode_transaction_body::<
54474                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54475                fidl::encoding::DefaultFuchsiaResourceDialect,
54476                0x995c600475b6d46,
54477            >(_buf?)?;
54478            Ok(_response.map(|x| x))
54479        }
54480        self.client.send_query_and_decode::<
54481            BaseNetworkSocketSetIpTypeOfServiceRequest,
54482            BaseNetworkSocketSetIpTypeOfServiceResult,
54483        >(
54484            (value,),
54485            0x995c600475b6d46,
54486            fidl::encoding::DynamicFlags::empty(),
54487            _decode,
54488        )
54489    }
54490
54491    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
54492        BaseNetworkSocketGetIpTypeOfServiceResult,
54493        fidl::encoding::DefaultFuchsiaResourceDialect,
54494    >;
54495    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
54496        fn _decode(
54497            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54498        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
54499            let _response = fidl::client::decode_transaction_body::<
54500                fidl::encoding::ResultType<
54501                    BaseNetworkSocketGetIpTypeOfServiceResponse,
54502                    fidl_fuchsia_posix::Errno,
54503                >,
54504                fidl::encoding::DefaultFuchsiaResourceDialect,
54505                0x3814a04259f75fcb,
54506            >(_buf?)?;
54507            Ok(_response.map(|x| x.value))
54508        }
54509        self.client.send_query_and_decode::<
54510            fidl::encoding::EmptyPayload,
54511            BaseNetworkSocketGetIpTypeOfServiceResult,
54512        >(
54513            (),
54514            0x3814a04259f75fcb,
54515            fidl::encoding::DynamicFlags::empty(),
54516            _decode,
54517        )
54518    }
54519
54520    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
54521        BaseNetworkSocketSetIpTtlResult,
54522        fidl::encoding::DefaultFuchsiaResourceDialect,
54523    >;
54524    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
54525        fn _decode(
54526            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54527        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
54528            let _response = fidl::client::decode_transaction_body::<
54529                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54530                fidl::encoding::DefaultFuchsiaResourceDialect,
54531                0x29e2424b433ae1ef,
54532            >(_buf?)?;
54533            Ok(_response.map(|x| x))
54534        }
54535        self.client.send_query_and_decode::<
54536            BaseNetworkSocketSetIpTtlRequest,
54537            BaseNetworkSocketSetIpTtlResult,
54538        >(
54539            (value,),
54540            0x29e2424b433ae1ef,
54541            fidl::encoding::DynamicFlags::empty(),
54542            _decode,
54543        )
54544    }
54545
54546    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
54547        BaseNetworkSocketGetIpTtlResult,
54548        fidl::encoding::DefaultFuchsiaResourceDialect,
54549    >;
54550    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
54551        fn _decode(
54552            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54553        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
54554            let _response = fidl::client::decode_transaction_body::<
54555                fidl::encoding::ResultType<
54556                    BaseNetworkSocketGetIpTtlResponse,
54557                    fidl_fuchsia_posix::Errno,
54558                >,
54559                fidl::encoding::DefaultFuchsiaResourceDialect,
54560                0x47e47fa1f24da471,
54561            >(_buf?)?;
54562            Ok(_response.map(|x| x.value))
54563        }
54564        self.client
54565            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
54566                (),
54567                0x47e47fa1f24da471,
54568                fidl::encoding::DynamicFlags::empty(),
54569                _decode,
54570            )
54571    }
54572
54573    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
54574        BaseNetworkSocketSetIpPacketInfoResult,
54575        fidl::encoding::DefaultFuchsiaResourceDialect,
54576    >;
54577    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
54578        fn _decode(
54579            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54580        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
54581            let _response = fidl::client::decode_transaction_body::<
54582                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54583                fidl::encoding::DefaultFuchsiaResourceDialect,
54584                0x392d16bee20c0e16,
54585            >(_buf?)?;
54586            Ok(_response.map(|x| x))
54587        }
54588        self.client.send_query_and_decode::<
54589            BaseNetworkSocketSetIpPacketInfoRequest,
54590            BaseNetworkSocketSetIpPacketInfoResult,
54591        >(
54592            (value,),
54593            0x392d16bee20c0e16,
54594            fidl::encoding::DynamicFlags::empty(),
54595            _decode,
54596        )
54597    }
54598
54599    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
54600        BaseNetworkSocketGetIpPacketInfoResult,
54601        fidl::encoding::DefaultFuchsiaResourceDialect,
54602    >;
54603    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
54604        fn _decode(
54605            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54606        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
54607            let _response = fidl::client::decode_transaction_body::<
54608                fidl::encoding::ResultType<
54609                    BaseNetworkSocketGetIpPacketInfoResponse,
54610                    fidl_fuchsia_posix::Errno,
54611                >,
54612                fidl::encoding::DefaultFuchsiaResourceDialect,
54613                0x54b505f242280740,
54614            >(_buf?)?;
54615            Ok(_response.map(|x| x.value))
54616        }
54617        self.client.send_query_and_decode::<
54618            fidl::encoding::EmptyPayload,
54619            BaseNetworkSocketGetIpPacketInfoResult,
54620        >(
54621            (),
54622            0x54b505f242280740,
54623            fidl::encoding::DynamicFlags::empty(),
54624            _decode,
54625        )
54626    }
54627
54628    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
54629        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
54630        fidl::encoding::DefaultFuchsiaResourceDialect,
54631    >;
54632    fn r#set_ip_receive_type_of_service(
54633        &self,
54634        mut value: bool,
54635    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
54636        fn _decode(
54637            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54638        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
54639            let _response = fidl::client::decode_transaction_body::<
54640                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54641                fidl::encoding::DefaultFuchsiaResourceDialect,
54642                0x6c4f6714995f84ef,
54643            >(_buf?)?;
54644            Ok(_response.map(|x| x))
54645        }
54646        self.client.send_query_and_decode::<
54647            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
54648            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
54649        >(
54650            (value,),
54651            0x6c4f6714995f84ef,
54652            fidl::encoding::DynamicFlags::empty(),
54653            _decode,
54654        )
54655    }
54656
54657    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
54658        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
54659        fidl::encoding::DefaultFuchsiaResourceDialect,
54660    >;
54661    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
54662        fn _decode(
54663            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54664        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
54665            let _response = fidl::client::decode_transaction_body::<
54666                fidl::encoding::ResultType<
54667                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
54668                    fidl_fuchsia_posix::Errno,
54669                >,
54670                fidl::encoding::DefaultFuchsiaResourceDialect,
54671                0x4158ba7dc2795960,
54672            >(_buf?)?;
54673            Ok(_response.map(|x| x.value))
54674        }
54675        self.client.send_query_and_decode::<
54676            fidl::encoding::EmptyPayload,
54677            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
54678        >(
54679            (),
54680            0x4158ba7dc2795960,
54681            fidl::encoding::DynamicFlags::empty(),
54682            _decode,
54683        )
54684    }
54685
54686    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
54687        BaseNetworkSocketSetIpReceiveTtlResult,
54688        fidl::encoding::DefaultFuchsiaResourceDialect,
54689    >;
54690    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
54691        fn _decode(
54692            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54693        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
54694            let _response = fidl::client::decode_transaction_body::<
54695                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54696                fidl::encoding::DefaultFuchsiaResourceDialect,
54697                0x46f15be0ce0ab82b,
54698            >(_buf?)?;
54699            Ok(_response.map(|x| x))
54700        }
54701        self.client.send_query_and_decode::<
54702            BaseNetworkSocketSetIpReceiveTtlRequest,
54703            BaseNetworkSocketSetIpReceiveTtlResult,
54704        >(
54705            (value,),
54706            0x46f15be0ce0ab82b,
54707            fidl::encoding::DynamicFlags::empty(),
54708            _decode,
54709        )
54710    }
54711
54712    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
54713        BaseNetworkSocketGetIpReceiveTtlResult,
54714        fidl::encoding::DefaultFuchsiaResourceDialect,
54715    >;
54716    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
54717        fn _decode(
54718            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54719        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
54720            let _response = fidl::client::decode_transaction_body::<
54721                fidl::encoding::ResultType<
54722                    BaseNetworkSocketGetIpReceiveTtlResponse,
54723                    fidl_fuchsia_posix::Errno,
54724                >,
54725                fidl::encoding::DefaultFuchsiaResourceDialect,
54726                0x678ddd5a5dfa2eb5,
54727            >(_buf?)?;
54728            Ok(_response.map(|x| x.value))
54729        }
54730        self.client.send_query_and_decode::<
54731            fidl::encoding::EmptyPayload,
54732            BaseNetworkSocketGetIpReceiveTtlResult,
54733        >(
54734            (),
54735            0x678ddd5a5dfa2eb5,
54736            fidl::encoding::DynamicFlags::empty(),
54737            _decode,
54738        )
54739    }
54740
54741    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
54742        BaseNetworkSocketSetIpMulticastInterfaceResult,
54743        fidl::encoding::DefaultFuchsiaResourceDialect,
54744    >;
54745    fn r#set_ip_multicast_interface(
54746        &self,
54747        mut iface: u64,
54748        mut address: &fidl_fuchsia_net::Ipv4Address,
54749    ) -> Self::SetIpMulticastInterfaceResponseFut {
54750        fn _decode(
54751            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54752        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
54753            let _response = fidl::client::decode_transaction_body::<
54754                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54755                fidl::encoding::DefaultFuchsiaResourceDialect,
54756                0x752fbfa9b12befe,
54757            >(_buf?)?;
54758            Ok(_response.map(|x| x))
54759        }
54760        self.client.send_query_and_decode::<
54761            BaseNetworkSocketSetIpMulticastInterfaceRequest,
54762            BaseNetworkSocketSetIpMulticastInterfaceResult,
54763        >(
54764            (iface, address,),
54765            0x752fbfa9b12befe,
54766            fidl::encoding::DynamicFlags::empty(),
54767            _decode,
54768        )
54769    }
54770
54771    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
54772        BaseNetworkSocketGetIpMulticastInterfaceResult,
54773        fidl::encoding::DefaultFuchsiaResourceDialect,
54774    >;
54775    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
54776        fn _decode(
54777            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54778        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
54779            let _response = fidl::client::decode_transaction_body::<
54780                fidl::encoding::ResultType<
54781                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
54782                    fidl_fuchsia_posix::Errno,
54783                >,
54784                fidl::encoding::DefaultFuchsiaResourceDialect,
54785                0x320bd14c4df046c4,
54786            >(_buf?)?;
54787            Ok(_response.map(|x| x.value))
54788        }
54789        self.client.send_query_and_decode::<
54790            fidl::encoding::EmptyPayload,
54791            BaseNetworkSocketGetIpMulticastInterfaceResult,
54792        >(
54793            (),
54794            0x320bd14c4df046c4,
54795            fidl::encoding::DynamicFlags::empty(),
54796            _decode,
54797        )
54798    }
54799
54800    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
54801        BaseNetworkSocketSetIpMulticastTtlResult,
54802        fidl::encoding::DefaultFuchsiaResourceDialect,
54803    >;
54804    fn r#set_ip_multicast_ttl(
54805        &self,
54806        mut value: &OptionalUint8,
54807    ) -> Self::SetIpMulticastTtlResponseFut {
54808        fn _decode(
54809            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54810        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
54811            let _response = fidl::client::decode_transaction_body::<
54812                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54813                fidl::encoding::DefaultFuchsiaResourceDialect,
54814                0x63134d53772916a1,
54815            >(_buf?)?;
54816            Ok(_response.map(|x| x))
54817        }
54818        self.client.send_query_and_decode::<
54819            BaseNetworkSocketSetIpMulticastTtlRequest,
54820            BaseNetworkSocketSetIpMulticastTtlResult,
54821        >(
54822            (value,),
54823            0x63134d53772916a1,
54824            fidl::encoding::DynamicFlags::empty(),
54825            _decode,
54826        )
54827    }
54828
54829    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
54830        BaseNetworkSocketGetIpMulticastTtlResult,
54831        fidl::encoding::DefaultFuchsiaResourceDialect,
54832    >;
54833    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
54834        fn _decode(
54835            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54836        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
54837            let _response = fidl::client::decode_transaction_body::<
54838                fidl::encoding::ResultType<
54839                    BaseNetworkSocketGetIpMulticastTtlResponse,
54840                    fidl_fuchsia_posix::Errno,
54841                >,
54842                fidl::encoding::DefaultFuchsiaResourceDialect,
54843                0x4665cd378f39e1a,
54844            >(_buf?)?;
54845            Ok(_response.map(|x| x.value))
54846        }
54847        self.client.send_query_and_decode::<
54848            fidl::encoding::EmptyPayload,
54849            BaseNetworkSocketGetIpMulticastTtlResult,
54850        >(
54851            (),
54852            0x4665cd378f39e1a,
54853            fidl::encoding::DynamicFlags::empty(),
54854            _decode,
54855        )
54856    }
54857
54858    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
54859        BaseNetworkSocketSetIpMulticastLoopbackResult,
54860        fidl::encoding::DefaultFuchsiaResourceDialect,
54861    >;
54862    fn r#set_ip_multicast_loopback(
54863        &self,
54864        mut value: bool,
54865    ) -> Self::SetIpMulticastLoopbackResponseFut {
54866        fn _decode(
54867            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54868        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
54869            let _response = fidl::client::decode_transaction_body::<
54870                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54871                fidl::encoding::DefaultFuchsiaResourceDialect,
54872                0x20c55c11f00943ea,
54873            >(_buf?)?;
54874            Ok(_response.map(|x| x))
54875        }
54876        self.client.send_query_and_decode::<
54877            BaseNetworkSocketSetIpMulticastLoopbackRequest,
54878            BaseNetworkSocketSetIpMulticastLoopbackResult,
54879        >(
54880            (value,),
54881            0x20c55c11f00943ea,
54882            fidl::encoding::DynamicFlags::empty(),
54883            _decode,
54884        )
54885    }
54886
54887    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
54888        BaseNetworkSocketGetIpMulticastLoopbackResult,
54889        fidl::encoding::DefaultFuchsiaResourceDialect,
54890    >;
54891    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
54892        fn _decode(
54893            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54894        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
54895            let _response = fidl::client::decode_transaction_body::<
54896                fidl::encoding::ResultType<
54897                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
54898                    fidl_fuchsia_posix::Errno,
54899                >,
54900                fidl::encoding::DefaultFuchsiaResourceDialect,
54901                0x3b6b26ff558298f2,
54902            >(_buf?)?;
54903            Ok(_response.map(|x| x.value))
54904        }
54905        self.client.send_query_and_decode::<
54906            fidl::encoding::EmptyPayload,
54907            BaseNetworkSocketGetIpMulticastLoopbackResult,
54908        >(
54909            (),
54910            0x3b6b26ff558298f2,
54911            fidl::encoding::DynamicFlags::empty(),
54912            _decode,
54913        )
54914    }
54915
54916    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
54917        BaseNetworkSocketAddIpMembershipResult,
54918        fidl::encoding::DefaultFuchsiaResourceDialect,
54919    >;
54920    fn r#add_ip_membership(
54921        &self,
54922        mut membership: &IpMulticastMembership,
54923    ) -> Self::AddIpMembershipResponseFut {
54924        fn _decode(
54925            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54926        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
54927            let _response = fidl::client::decode_transaction_body::<
54928                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54929                fidl::encoding::DefaultFuchsiaResourceDialect,
54930                0x76bc7df115a3b4d0,
54931            >(_buf?)?;
54932            Ok(_response.map(|x| x))
54933        }
54934        self.client.send_query_and_decode::<
54935            BaseNetworkSocketAddIpMembershipRequest,
54936            BaseNetworkSocketAddIpMembershipResult,
54937        >(
54938            (membership,),
54939            0x76bc7df115a3b4d0,
54940            fidl::encoding::DynamicFlags::empty(),
54941            _decode,
54942        )
54943    }
54944
54945    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
54946        BaseNetworkSocketDropIpMembershipResult,
54947        fidl::encoding::DefaultFuchsiaResourceDialect,
54948    >;
54949    fn r#drop_ip_membership(
54950        &self,
54951        mut membership: &IpMulticastMembership,
54952    ) -> Self::DropIpMembershipResponseFut {
54953        fn _decode(
54954            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54955        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
54956            let _response = fidl::client::decode_transaction_body::<
54957                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54958                fidl::encoding::DefaultFuchsiaResourceDialect,
54959                0x2888f3099188d03,
54960            >(_buf?)?;
54961            Ok(_response.map(|x| x))
54962        }
54963        self.client.send_query_and_decode::<
54964            BaseNetworkSocketDropIpMembershipRequest,
54965            BaseNetworkSocketDropIpMembershipResult,
54966        >(
54967            (membership,),
54968            0x2888f3099188d03,
54969            fidl::encoding::DynamicFlags::empty(),
54970            _decode,
54971        )
54972    }
54973
54974    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
54975        BaseNetworkSocketSetIpTransparentResult,
54976        fidl::encoding::DefaultFuchsiaResourceDialect,
54977    >;
54978    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
54979        fn _decode(
54980            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
54981        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
54982            let _response = fidl::client::decode_transaction_body::<
54983                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
54984                fidl::encoding::DefaultFuchsiaResourceDialect,
54985                0x1ae532b0c066e3a0,
54986            >(_buf?)?;
54987            Ok(_response.map(|x| x))
54988        }
54989        self.client.send_query_and_decode::<
54990            BaseNetworkSocketSetIpTransparentRequest,
54991            BaseNetworkSocketSetIpTransparentResult,
54992        >(
54993            (value,),
54994            0x1ae532b0c066e3a0,
54995            fidl::encoding::DynamicFlags::empty(),
54996            _decode,
54997        )
54998    }
54999
55000    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
55001        BaseNetworkSocketGetIpTransparentResult,
55002        fidl::encoding::DefaultFuchsiaResourceDialect,
55003    >;
55004    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
55005        fn _decode(
55006            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55007        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
55008            let _response = fidl::client::decode_transaction_body::<
55009                fidl::encoding::ResultType<
55010                    BaseNetworkSocketGetIpTransparentResponse,
55011                    fidl_fuchsia_posix::Errno,
55012                >,
55013                fidl::encoding::DefaultFuchsiaResourceDialect,
55014                0x51d43695962ebfb5,
55015            >(_buf?)?;
55016            Ok(_response.map(|x| x.value))
55017        }
55018        self.client.send_query_and_decode::<
55019            fidl::encoding::EmptyPayload,
55020            BaseNetworkSocketGetIpTransparentResult,
55021        >(
55022            (),
55023            0x51d43695962ebfb5,
55024            fidl::encoding::DynamicFlags::empty(),
55025            _decode,
55026        )
55027    }
55028
55029    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
55030        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
55031        fidl::encoding::DefaultFuchsiaResourceDialect,
55032    >;
55033    fn r#set_ip_receive_original_destination_address(
55034        &self,
55035        mut value: bool,
55036    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
55037        fn _decode(
55038            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55039        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
55040        {
55041            let _response = fidl::client::decode_transaction_body::<
55042                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55043                fidl::encoding::DefaultFuchsiaResourceDialect,
55044                0x4722b4ce52f7840,
55045            >(_buf?)?;
55046            Ok(_response.map(|x| x))
55047        }
55048        self.client.send_query_and_decode::<
55049            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
55050            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
55051        >(
55052            (value,),
55053            0x4722b4ce52f7840,
55054            fidl::encoding::DynamicFlags::empty(),
55055            _decode,
55056        )
55057    }
55058
55059    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
55060        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
55061        fidl::encoding::DefaultFuchsiaResourceDialect,
55062    >;
55063    fn r#get_ip_receive_original_destination_address(
55064        &self,
55065    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
55066        fn _decode(
55067            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55068        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
55069        {
55070            let _response = fidl::client::decode_transaction_body::<
55071                fidl::encoding::ResultType<
55072                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
55073                    fidl_fuchsia_posix::Errno,
55074                >,
55075                fidl::encoding::DefaultFuchsiaResourceDialect,
55076                0x2a0e7dc5d6bfdfe9,
55077            >(_buf?)?;
55078            Ok(_response.map(|x| x.value))
55079        }
55080        self.client.send_query_and_decode::<
55081            fidl::encoding::EmptyPayload,
55082            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
55083        >(
55084            (),
55085            0x2a0e7dc5d6bfdfe9,
55086            fidl::encoding::DynamicFlags::empty(),
55087            _decode,
55088        )
55089    }
55090
55091    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
55092        BaseNetworkSocketAddIpv6MembershipResult,
55093        fidl::encoding::DefaultFuchsiaResourceDialect,
55094    >;
55095    fn r#add_ipv6_membership(
55096        &self,
55097        mut membership: &Ipv6MulticastMembership,
55098    ) -> Self::AddIpv6MembershipResponseFut {
55099        fn _decode(
55100            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55101        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
55102            let _response = fidl::client::decode_transaction_body::<
55103                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55104                fidl::encoding::DefaultFuchsiaResourceDialect,
55105                0x7c94727acb4ea4b3,
55106            >(_buf?)?;
55107            Ok(_response.map(|x| x))
55108        }
55109        self.client.send_query_and_decode::<
55110            BaseNetworkSocketAddIpv6MembershipRequest,
55111            BaseNetworkSocketAddIpv6MembershipResult,
55112        >(
55113            (membership,),
55114            0x7c94727acb4ea4b3,
55115            fidl::encoding::DynamicFlags::empty(),
55116            _decode,
55117        )
55118    }
55119
55120    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
55121        BaseNetworkSocketDropIpv6MembershipResult,
55122        fidl::encoding::DefaultFuchsiaResourceDialect,
55123    >;
55124    fn r#drop_ipv6_membership(
55125        &self,
55126        mut membership: &Ipv6MulticastMembership,
55127    ) -> Self::DropIpv6MembershipResponseFut {
55128        fn _decode(
55129            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55130        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
55131            let _response = fidl::client::decode_transaction_body::<
55132                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55133                fidl::encoding::DefaultFuchsiaResourceDialect,
55134                0x42104c70ccaba304,
55135            >(_buf?)?;
55136            Ok(_response.map(|x| x))
55137        }
55138        self.client.send_query_and_decode::<
55139            BaseNetworkSocketDropIpv6MembershipRequest,
55140            BaseNetworkSocketDropIpv6MembershipResult,
55141        >(
55142            (membership,),
55143            0x42104c70ccaba304,
55144            fidl::encoding::DynamicFlags::empty(),
55145            _decode,
55146        )
55147    }
55148
55149    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
55150        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
55151        fidl::encoding::DefaultFuchsiaResourceDialect,
55152    >;
55153    fn r#set_ipv6_multicast_interface(
55154        &self,
55155        mut value: u64,
55156    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
55157        fn _decode(
55158            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55159        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
55160            let _response = fidl::client::decode_transaction_body::<
55161                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55162                fidl::encoding::DefaultFuchsiaResourceDialect,
55163                0x135f76db3774ab3b,
55164            >(_buf?)?;
55165            Ok(_response.map(|x| x))
55166        }
55167        self.client.send_query_and_decode::<
55168            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
55169            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
55170        >(
55171            (value,),
55172            0x135f76db3774ab3b,
55173            fidl::encoding::DynamicFlags::empty(),
55174            _decode,
55175        )
55176    }
55177
55178    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
55179        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
55180        fidl::encoding::DefaultFuchsiaResourceDialect,
55181    >;
55182    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
55183        fn _decode(
55184            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55185        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
55186            let _response = fidl::client::decode_transaction_body::<
55187                fidl::encoding::ResultType<
55188                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
55189                    fidl_fuchsia_posix::Errno,
55190                >,
55191                fidl::encoding::DefaultFuchsiaResourceDialect,
55192                0x1f26fcdd348f1882,
55193            >(_buf?)?;
55194            Ok(_response.map(|x| x.value))
55195        }
55196        self.client.send_query_and_decode::<
55197            fidl::encoding::EmptyPayload,
55198            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
55199        >(
55200            (),
55201            0x1f26fcdd348f1882,
55202            fidl::encoding::DynamicFlags::empty(),
55203            _decode,
55204        )
55205    }
55206
55207    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
55208        BaseNetworkSocketSetIpv6UnicastHopsResult,
55209        fidl::encoding::DefaultFuchsiaResourceDialect,
55210    >;
55211    fn r#set_ipv6_unicast_hops(
55212        &self,
55213        mut value: &OptionalUint8,
55214    ) -> Self::SetIpv6UnicastHopsResponseFut {
55215        fn _decode(
55216            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55217        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
55218            let _response = fidl::client::decode_transaction_body::<
55219                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55220                fidl::encoding::DefaultFuchsiaResourceDialect,
55221                0x157d51e98f462859,
55222            >(_buf?)?;
55223            Ok(_response.map(|x| x))
55224        }
55225        self.client.send_query_and_decode::<
55226            BaseNetworkSocketSetIpv6UnicastHopsRequest,
55227            BaseNetworkSocketSetIpv6UnicastHopsResult,
55228        >(
55229            (value,),
55230            0x157d51e98f462859,
55231            fidl::encoding::DynamicFlags::empty(),
55232            _decode,
55233        )
55234    }
55235
55236    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
55237        BaseNetworkSocketGetIpv6UnicastHopsResult,
55238        fidl::encoding::DefaultFuchsiaResourceDialect,
55239    >;
55240    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
55241        fn _decode(
55242            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55243        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
55244            let _response = fidl::client::decode_transaction_body::<
55245                fidl::encoding::ResultType<
55246                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
55247                    fidl_fuchsia_posix::Errno,
55248                >,
55249                fidl::encoding::DefaultFuchsiaResourceDialect,
55250                0x21f4641cad8bd8d2,
55251            >(_buf?)?;
55252            Ok(_response.map(|x| x.value))
55253        }
55254        self.client.send_query_and_decode::<
55255            fidl::encoding::EmptyPayload,
55256            BaseNetworkSocketGetIpv6UnicastHopsResult,
55257        >(
55258            (),
55259            0x21f4641cad8bd8d2,
55260            fidl::encoding::DynamicFlags::empty(),
55261            _decode,
55262        )
55263    }
55264
55265    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
55266        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
55267        fidl::encoding::DefaultFuchsiaResourceDialect,
55268    >;
55269    fn r#set_ipv6_receive_hop_limit(
55270        &self,
55271        mut value: bool,
55272    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
55273        fn _decode(
55274            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55275        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
55276            let _response = fidl::client::decode_transaction_body::<
55277                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55278                fidl::encoding::DefaultFuchsiaResourceDialect,
55279                0x5c24808ed2e84a1e,
55280            >(_buf?)?;
55281            Ok(_response.map(|x| x))
55282        }
55283        self.client.send_query_and_decode::<
55284            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
55285            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
55286        >(
55287            (value,),
55288            0x5c24808ed2e84a1e,
55289            fidl::encoding::DynamicFlags::empty(),
55290            _decode,
55291        )
55292    }
55293
55294    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
55295        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
55296        fidl::encoding::DefaultFuchsiaResourceDialect,
55297    >;
55298    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
55299        fn _decode(
55300            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55301        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
55302            let _response = fidl::client::decode_transaction_body::<
55303                fidl::encoding::ResultType<
55304                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
55305                    fidl_fuchsia_posix::Errno,
55306                >,
55307                fidl::encoding::DefaultFuchsiaResourceDialect,
55308                0x341e06689885b4c0,
55309            >(_buf?)?;
55310            Ok(_response.map(|x| x.value))
55311        }
55312        self.client.send_query_and_decode::<
55313            fidl::encoding::EmptyPayload,
55314            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
55315        >(
55316            (),
55317            0x341e06689885b4c0,
55318            fidl::encoding::DynamicFlags::empty(),
55319            _decode,
55320        )
55321    }
55322
55323    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
55324        BaseNetworkSocketSetIpv6MulticastHopsResult,
55325        fidl::encoding::DefaultFuchsiaResourceDialect,
55326    >;
55327    fn r#set_ipv6_multicast_hops(
55328        &self,
55329        mut value: &OptionalUint8,
55330    ) -> Self::SetIpv6MulticastHopsResponseFut {
55331        fn _decode(
55332            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55333        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
55334            let _response = fidl::client::decode_transaction_body::<
55335                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55336                fidl::encoding::DefaultFuchsiaResourceDialect,
55337                0x25b9cd4d181f82c1,
55338            >(_buf?)?;
55339            Ok(_response.map(|x| x))
55340        }
55341        self.client.send_query_and_decode::<
55342            BaseNetworkSocketSetIpv6MulticastHopsRequest,
55343            BaseNetworkSocketSetIpv6MulticastHopsResult,
55344        >(
55345            (value,),
55346            0x25b9cd4d181f82c1,
55347            fidl::encoding::DynamicFlags::empty(),
55348            _decode,
55349        )
55350    }
55351
55352    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
55353        BaseNetworkSocketGetIpv6MulticastHopsResult,
55354        fidl::encoding::DefaultFuchsiaResourceDialect,
55355    >;
55356    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
55357        fn _decode(
55358            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55359        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
55360            let _response = fidl::client::decode_transaction_body::<
55361                fidl::encoding::ResultType<
55362                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
55363                    fidl_fuchsia_posix::Errno,
55364                >,
55365                fidl::encoding::DefaultFuchsiaResourceDialect,
55366                0x52916948a365012a,
55367            >(_buf?)?;
55368            Ok(_response.map(|x| x.value))
55369        }
55370        self.client.send_query_and_decode::<
55371            fidl::encoding::EmptyPayload,
55372            BaseNetworkSocketGetIpv6MulticastHopsResult,
55373        >(
55374            (),
55375            0x52916948a365012a,
55376            fidl::encoding::DynamicFlags::empty(),
55377            _decode,
55378        )
55379    }
55380
55381    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
55382        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
55383        fidl::encoding::DefaultFuchsiaResourceDialect,
55384    >;
55385    fn r#set_ipv6_multicast_loopback(
55386        &self,
55387        mut value: bool,
55388    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
55389        fn _decode(
55390            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55391        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
55392            let _response = fidl::client::decode_transaction_body::<
55393                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55394                fidl::encoding::DefaultFuchsiaResourceDialect,
55395                0x55701c409ff41b40,
55396            >(_buf?)?;
55397            Ok(_response.map(|x| x))
55398        }
55399        self.client.send_query_and_decode::<
55400            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
55401            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
55402        >(
55403            (value,),
55404            0x55701c409ff41b40,
55405            fidl::encoding::DynamicFlags::empty(),
55406            _decode,
55407        )
55408    }
55409
55410    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
55411        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
55412        fidl::encoding::DefaultFuchsiaResourceDialect,
55413    >;
55414    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
55415        fn _decode(
55416            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55417        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
55418            let _response = fidl::client::decode_transaction_body::<
55419                fidl::encoding::ResultType<
55420                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
55421                    fidl_fuchsia_posix::Errno,
55422                >,
55423                fidl::encoding::DefaultFuchsiaResourceDialect,
55424                0x4415b701fde319c3,
55425            >(_buf?)?;
55426            Ok(_response.map(|x| x.value))
55427        }
55428        self.client.send_query_and_decode::<
55429            fidl::encoding::EmptyPayload,
55430            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
55431        >(
55432            (),
55433            0x4415b701fde319c3,
55434            fidl::encoding::DynamicFlags::empty(),
55435            _decode,
55436        )
55437    }
55438
55439    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
55440        BaseNetworkSocketSetIpv6OnlyResult,
55441        fidl::encoding::DefaultFuchsiaResourceDialect,
55442    >;
55443    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
55444        fn _decode(
55445            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55446        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
55447            let _response = fidl::client::decode_transaction_body::<
55448                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55449                fidl::encoding::DefaultFuchsiaResourceDialect,
55450                0x4873f1364758cbba,
55451            >(_buf?)?;
55452            Ok(_response.map(|x| x))
55453        }
55454        self.client.send_query_and_decode::<
55455            BaseNetworkSocketSetIpv6OnlyRequest,
55456            BaseNetworkSocketSetIpv6OnlyResult,
55457        >(
55458            (value,),
55459            0x4873f1364758cbba,
55460            fidl::encoding::DynamicFlags::empty(),
55461            _decode,
55462        )
55463    }
55464
55465    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
55466        BaseNetworkSocketGetIpv6OnlyResult,
55467        fidl::encoding::DefaultFuchsiaResourceDialect,
55468    >;
55469    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
55470        fn _decode(
55471            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55472        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
55473            let _response = fidl::client::decode_transaction_body::<
55474                fidl::encoding::ResultType<
55475                    BaseNetworkSocketGetIpv6OnlyResponse,
55476                    fidl_fuchsia_posix::Errno,
55477                >,
55478                fidl::encoding::DefaultFuchsiaResourceDialect,
55479                0x4aa3340a1a26b89c,
55480            >(_buf?)?;
55481            Ok(_response.map(|x| x.value))
55482        }
55483        self.client.send_query_and_decode::<
55484            fidl::encoding::EmptyPayload,
55485            BaseNetworkSocketGetIpv6OnlyResult,
55486        >(
55487            (),
55488            0x4aa3340a1a26b89c,
55489            fidl::encoding::DynamicFlags::empty(),
55490            _decode,
55491        )
55492    }
55493
55494    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
55495        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
55496        fidl::encoding::DefaultFuchsiaResourceDialect,
55497    >;
55498    fn r#set_ipv6_receive_traffic_class(
55499        &self,
55500        mut value: bool,
55501    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
55502        fn _decode(
55503            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55504        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
55505            let _response = fidl::client::decode_transaction_body::<
55506                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55507                fidl::encoding::DefaultFuchsiaResourceDialect,
55508                0x58f07c8788d099a0,
55509            >(_buf?)?;
55510            Ok(_response.map(|x| x))
55511        }
55512        self.client.send_query_and_decode::<
55513            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
55514            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
55515        >(
55516            (value,),
55517            0x58f07c8788d099a0,
55518            fidl::encoding::DynamicFlags::empty(),
55519            _decode,
55520        )
55521    }
55522
55523    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
55524        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
55525        fidl::encoding::DefaultFuchsiaResourceDialect,
55526    >;
55527    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
55528        fn _decode(
55529            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55530        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
55531            let _response = fidl::client::decode_transaction_body::<
55532                fidl::encoding::ResultType<
55533                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
55534                    fidl_fuchsia_posix::Errno,
55535                >,
55536                fidl::encoding::DefaultFuchsiaResourceDialect,
55537                0x2e334df1da553ffa,
55538            >(_buf?)?;
55539            Ok(_response.map(|x| x.value))
55540        }
55541        self.client.send_query_and_decode::<
55542            fidl::encoding::EmptyPayload,
55543            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
55544        >(
55545            (),
55546            0x2e334df1da553ffa,
55547            fidl::encoding::DynamicFlags::empty(),
55548            _decode,
55549        )
55550    }
55551
55552    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
55553        BaseNetworkSocketSetIpv6TrafficClassResult,
55554        fidl::encoding::DefaultFuchsiaResourceDialect,
55555    >;
55556    fn r#set_ipv6_traffic_class(
55557        &self,
55558        mut value: &OptionalUint8,
55559    ) -> Self::SetIpv6TrafficClassResponseFut {
55560        fn _decode(
55561            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55562        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
55563            let _response = fidl::client::decode_transaction_body::<
55564                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55565                fidl::encoding::DefaultFuchsiaResourceDialect,
55566                0x6af077800c5a0b4f,
55567            >(_buf?)?;
55568            Ok(_response.map(|x| x))
55569        }
55570        self.client.send_query_and_decode::<
55571            BaseNetworkSocketSetIpv6TrafficClassRequest,
55572            BaseNetworkSocketSetIpv6TrafficClassResult,
55573        >(
55574            (value,),
55575            0x6af077800c5a0b4f,
55576            fidl::encoding::DynamicFlags::empty(),
55577            _decode,
55578        )
55579    }
55580
55581    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
55582        BaseNetworkSocketGetIpv6TrafficClassResult,
55583        fidl::encoding::DefaultFuchsiaResourceDialect,
55584    >;
55585    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
55586        fn _decode(
55587            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55588        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
55589            let _response = fidl::client::decode_transaction_body::<
55590                fidl::encoding::ResultType<
55591                    BaseNetworkSocketGetIpv6TrafficClassResponse,
55592                    fidl_fuchsia_posix::Errno,
55593                >,
55594                fidl::encoding::DefaultFuchsiaResourceDialect,
55595                0x6baf6eed8fc2f04,
55596            >(_buf?)?;
55597            Ok(_response.map(|x| x.value))
55598        }
55599        self.client.send_query_and_decode::<
55600            fidl::encoding::EmptyPayload,
55601            BaseNetworkSocketGetIpv6TrafficClassResult,
55602        >(
55603            (),
55604            0x6baf6eed8fc2f04,
55605            fidl::encoding::DynamicFlags::empty(),
55606            _decode,
55607        )
55608    }
55609
55610    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
55611        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
55612        fidl::encoding::DefaultFuchsiaResourceDialect,
55613    >;
55614    fn r#set_ipv6_receive_packet_info(
55615        &self,
55616        mut value: bool,
55617    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
55618        fn _decode(
55619            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55620        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
55621            let _response = fidl::client::decode_transaction_body::<
55622                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55623                fidl::encoding::DefaultFuchsiaResourceDialect,
55624                0x19259775b1a92768,
55625            >(_buf?)?;
55626            Ok(_response.map(|x| x))
55627        }
55628        self.client.send_query_and_decode::<
55629            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
55630            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
55631        >(
55632            (value,),
55633            0x19259775b1a92768,
55634            fidl::encoding::DynamicFlags::empty(),
55635            _decode,
55636        )
55637    }
55638
55639    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
55640        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
55641        fidl::encoding::DefaultFuchsiaResourceDialect,
55642    >;
55643    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
55644        fn _decode(
55645            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55646        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
55647            let _response = fidl::client::decode_transaction_body::<
55648                fidl::encoding::ResultType<
55649                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
55650                    fidl_fuchsia_posix::Errno,
55651                >,
55652                fidl::encoding::DefaultFuchsiaResourceDialect,
55653                0x7acd4a2775baec75,
55654            >(_buf?)?;
55655            Ok(_response.map(|x| x.value))
55656        }
55657        self.client.send_query_and_decode::<
55658            fidl::encoding::EmptyPayload,
55659            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
55660        >(
55661            (),
55662            0x7acd4a2775baec75,
55663            fidl::encoding::DynamicFlags::empty(),
55664            _decode,
55665        )
55666    }
55667
55668    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
55669        BaseNetworkSocketGetOriginalDestinationResult,
55670        fidl::encoding::DefaultFuchsiaResourceDialect,
55671    >;
55672    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
55673        fn _decode(
55674            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55675        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
55676            let _response = fidl::client::decode_transaction_body::<
55677                fidl::encoding::ResultType<
55678                    BaseNetworkSocketGetOriginalDestinationResponse,
55679                    fidl_fuchsia_posix::Errno,
55680                >,
55681                fidl::encoding::DefaultFuchsiaResourceDialect,
55682                0x38bf28f0dafdbac0,
55683            >(_buf?)?;
55684            Ok(_response.map(|x| x.value))
55685        }
55686        self.client.send_query_and_decode::<
55687            fidl::encoding::EmptyPayload,
55688            BaseNetworkSocketGetOriginalDestinationResult,
55689        >(
55690            (),
55691            0x38bf28f0dafdbac0,
55692            fidl::encoding::DynamicFlags::empty(),
55693            _decode,
55694        )
55695    }
55696
55697    type DescribeResponseFut = fidl::client::QueryResponseFut<
55698        StreamSocketDescribeResponse,
55699        fidl::encoding::DefaultFuchsiaResourceDialect,
55700    >;
55701    fn r#describe(&self) -> Self::DescribeResponseFut {
55702        fn _decode(
55703            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55704        ) -> Result<StreamSocketDescribeResponse, fidl::Error> {
55705            let _response = fidl::client::decode_transaction_body::<
55706                StreamSocketDescribeResponse,
55707                fidl::encoding::DefaultFuchsiaResourceDialect,
55708                0x29e22969a7dadc32,
55709            >(_buf?)?;
55710            Ok(_response)
55711        }
55712        self.client
55713            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketDescribeResponse>(
55714                (),
55715                0x29e22969a7dadc32,
55716                fidl::encoding::DynamicFlags::empty(),
55717                _decode,
55718            )
55719    }
55720
55721    type ListenResponseFut = fidl::client::QueryResponseFut<
55722        StreamSocketListenResult,
55723        fidl::encoding::DefaultFuchsiaResourceDialect,
55724    >;
55725    fn r#listen(&self, mut backlog: i16) -> Self::ListenResponseFut {
55726        fn _decode(
55727            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55728        ) -> Result<StreamSocketListenResult, fidl::Error> {
55729            let _response = fidl::client::decode_transaction_body::<
55730                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55731                fidl::encoding::DefaultFuchsiaResourceDialect,
55732                0x3d0a65ced3d10108,
55733            >(_buf?)?;
55734            Ok(_response.map(|x| x))
55735        }
55736        self.client.send_query_and_decode::<StreamSocketListenRequest, StreamSocketListenResult>(
55737            (backlog,),
55738            0x3d0a65ced3d10108,
55739            fidl::encoding::DynamicFlags::empty(),
55740            _decode,
55741        )
55742    }
55743
55744    type AcceptResponseFut = fidl::client::QueryResponseFut<
55745        StreamSocketAcceptResult,
55746        fidl::encoding::DefaultFuchsiaResourceDialect,
55747    >;
55748    fn r#accept(&self, mut want_addr: bool) -> Self::AcceptResponseFut {
55749        fn _decode(
55750            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55751        ) -> Result<StreamSocketAcceptResult, fidl::Error> {
55752            let _response = fidl::client::decode_transaction_body::<
55753                fidl::encoding::ResultType<StreamSocketAcceptResponse, fidl_fuchsia_posix::Errno>,
55754                fidl::encoding::DefaultFuchsiaResourceDialect,
55755                0x5ab7ad620424c163,
55756            >(_buf?)?;
55757            Ok(_response.map(|x| (x.addr, x.s)))
55758        }
55759        self.client.send_query_and_decode::<StreamSocketAcceptRequest, StreamSocketAcceptResult>(
55760            (want_addr,),
55761            0x5ab7ad620424c163,
55762            fidl::encoding::DynamicFlags::empty(),
55763            _decode,
55764        )
55765    }
55766
55767    type GetInfoResponseFut = fidl::client::QueryResponseFut<
55768        StreamSocketGetInfoResult,
55769        fidl::encoding::DefaultFuchsiaResourceDialect,
55770    >;
55771    fn r#get_info(&self) -> Self::GetInfoResponseFut {
55772        fn _decode(
55773            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55774        ) -> Result<StreamSocketGetInfoResult, fidl::Error> {
55775            let _response = fidl::client::decode_transaction_body::<
55776                fidl::encoding::ResultType<StreamSocketGetInfoResponse, fidl_fuchsia_posix::Errno>,
55777                fidl::encoding::DefaultFuchsiaResourceDialect,
55778                0x87cfa55d19f878f,
55779            >(_buf?)?;
55780            Ok(_response.map(|x| (x.domain, x.proto)))
55781        }
55782        self.client
55783            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetInfoResult>(
55784                (),
55785                0x87cfa55d19f878f,
55786                fidl::encoding::DynamicFlags::empty(),
55787                _decode,
55788            )
55789    }
55790
55791    type SetTcpNoDelayResponseFut = fidl::client::QueryResponseFut<
55792        StreamSocketSetTcpNoDelayResult,
55793        fidl::encoding::DefaultFuchsiaResourceDialect,
55794    >;
55795    fn r#set_tcp_no_delay(&self, mut value: bool) -> Self::SetTcpNoDelayResponseFut {
55796        fn _decode(
55797            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55798        ) -> Result<StreamSocketSetTcpNoDelayResult, fidl::Error> {
55799            let _response = fidl::client::decode_transaction_body::<
55800                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55801                fidl::encoding::DefaultFuchsiaResourceDialect,
55802                0x5a59b778f7333ada,
55803            >(_buf?)?;
55804            Ok(_response.map(|x| x))
55805        }
55806        self.client.send_query_and_decode::<
55807            StreamSocketSetTcpNoDelayRequest,
55808            StreamSocketSetTcpNoDelayResult,
55809        >(
55810            (value,),
55811            0x5a59b778f7333ada,
55812            fidl::encoding::DynamicFlags::empty(),
55813            _decode,
55814        )
55815    }
55816
55817    type GetTcpNoDelayResponseFut = fidl::client::QueryResponseFut<
55818        StreamSocketGetTcpNoDelayResult,
55819        fidl::encoding::DefaultFuchsiaResourceDialect,
55820    >;
55821    fn r#get_tcp_no_delay(&self) -> Self::GetTcpNoDelayResponseFut {
55822        fn _decode(
55823            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55824        ) -> Result<StreamSocketGetTcpNoDelayResult, fidl::Error> {
55825            let _response = fidl::client::decode_transaction_body::<
55826                fidl::encoding::ResultType<
55827                    StreamSocketGetTcpNoDelayResponse,
55828                    fidl_fuchsia_posix::Errno,
55829                >,
55830                fidl::encoding::DefaultFuchsiaResourceDialect,
55831                0xac219a3218b0799,
55832            >(_buf?)?;
55833            Ok(_response.map(|x| x.value))
55834        }
55835        self.client
55836            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpNoDelayResult>(
55837                (),
55838                0xac219a3218b0799,
55839                fidl::encoding::DynamicFlags::empty(),
55840                _decode,
55841            )
55842    }
55843
55844    type SetTcpMaxSegmentResponseFut = fidl::client::QueryResponseFut<
55845        StreamSocketSetTcpMaxSegmentResult,
55846        fidl::encoding::DefaultFuchsiaResourceDialect,
55847    >;
55848    fn r#set_tcp_max_segment(&self, mut value_bytes: u32) -> Self::SetTcpMaxSegmentResponseFut {
55849        fn _decode(
55850            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55851        ) -> Result<StreamSocketSetTcpMaxSegmentResult, fidl::Error> {
55852            let _response = fidl::client::decode_transaction_body::<
55853                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55854                fidl::encoding::DefaultFuchsiaResourceDialect,
55855                0xb3d30c498266d18,
55856            >(_buf?)?;
55857            Ok(_response.map(|x| x))
55858        }
55859        self.client.send_query_and_decode::<
55860            StreamSocketSetTcpMaxSegmentRequest,
55861            StreamSocketSetTcpMaxSegmentResult,
55862        >(
55863            (value_bytes,),
55864            0xb3d30c498266d18,
55865            fidl::encoding::DynamicFlags::empty(),
55866            _decode,
55867        )
55868    }
55869
55870    type GetTcpMaxSegmentResponseFut = fidl::client::QueryResponseFut<
55871        StreamSocketGetTcpMaxSegmentResult,
55872        fidl::encoding::DefaultFuchsiaResourceDialect,
55873    >;
55874    fn r#get_tcp_max_segment(&self) -> Self::GetTcpMaxSegmentResponseFut {
55875        fn _decode(
55876            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55877        ) -> Result<StreamSocketGetTcpMaxSegmentResult, fidl::Error> {
55878            let _response = fidl::client::decode_transaction_body::<
55879                fidl::encoding::ResultType<
55880                    StreamSocketGetTcpMaxSegmentResponse,
55881                    fidl_fuchsia_posix::Errno,
55882                >,
55883                fidl::encoding::DefaultFuchsiaResourceDialect,
55884                0x637404d1b4b9982c,
55885            >(_buf?)?;
55886            Ok(_response.map(|x| x.value_bytes))
55887        }
55888        self.client.send_query_and_decode::<
55889            fidl::encoding::EmptyPayload,
55890            StreamSocketGetTcpMaxSegmentResult,
55891        >(
55892            (),
55893            0x637404d1b4b9982c,
55894            fidl::encoding::DynamicFlags::empty(),
55895            _decode,
55896        )
55897    }
55898
55899    type SetTcpCorkResponseFut = fidl::client::QueryResponseFut<
55900        StreamSocketSetTcpCorkResult,
55901        fidl::encoding::DefaultFuchsiaResourceDialect,
55902    >;
55903    fn r#set_tcp_cork(&self, mut value: bool) -> Self::SetTcpCorkResponseFut {
55904        fn _decode(
55905            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55906        ) -> Result<StreamSocketSetTcpCorkResult, fidl::Error> {
55907            let _response = fidl::client::decode_transaction_body::<
55908                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55909                fidl::encoding::DefaultFuchsiaResourceDialect,
55910                0x62e26891541143a0,
55911            >(_buf?)?;
55912            Ok(_response.map(|x| x))
55913        }
55914        self.client
55915            .send_query_and_decode::<StreamSocketSetTcpCorkRequest, StreamSocketSetTcpCorkResult>(
55916                (value,),
55917                0x62e26891541143a0,
55918                fidl::encoding::DynamicFlags::empty(),
55919                _decode,
55920            )
55921    }
55922
55923    type GetTcpCorkResponseFut = fidl::client::QueryResponseFut<
55924        StreamSocketGetTcpCorkResult,
55925        fidl::encoding::DefaultFuchsiaResourceDialect,
55926    >;
55927    fn r#get_tcp_cork(&self) -> Self::GetTcpCorkResponseFut {
55928        fn _decode(
55929            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55930        ) -> Result<StreamSocketGetTcpCorkResult, fidl::Error> {
55931            let _response = fidl::client::decode_transaction_body::<
55932                fidl::encoding::ResultType<
55933                    StreamSocketGetTcpCorkResponse,
55934                    fidl_fuchsia_posix::Errno,
55935                >,
55936                fidl::encoding::DefaultFuchsiaResourceDialect,
55937                0x435bb232e0e74f32,
55938            >(_buf?)?;
55939            Ok(_response.map(|x| x.value))
55940        }
55941        self.client
55942            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpCorkResult>(
55943                (),
55944                0x435bb232e0e74f32,
55945                fidl::encoding::DynamicFlags::empty(),
55946                _decode,
55947            )
55948    }
55949
55950    type SetTcpKeepAliveIdleResponseFut = fidl::client::QueryResponseFut<
55951        StreamSocketSetTcpKeepAliveIdleResult,
55952        fidl::encoding::DefaultFuchsiaResourceDialect,
55953    >;
55954    fn r#set_tcp_keep_alive_idle(
55955        &self,
55956        mut value_secs: u32,
55957    ) -> Self::SetTcpKeepAliveIdleResponseFut {
55958        fn _decode(
55959            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55960        ) -> Result<StreamSocketSetTcpKeepAliveIdleResult, fidl::Error> {
55961            let _response = fidl::client::decode_transaction_body::<
55962                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
55963                fidl::encoding::DefaultFuchsiaResourceDialect,
55964                0x196d053d8363c42,
55965            >(_buf?)?;
55966            Ok(_response.map(|x| x))
55967        }
55968        self.client.send_query_and_decode::<
55969            StreamSocketSetTcpKeepAliveIdleRequest,
55970            StreamSocketSetTcpKeepAliveIdleResult,
55971        >(
55972            (value_secs,),
55973            0x196d053d8363c42,
55974            fidl::encoding::DynamicFlags::empty(),
55975            _decode,
55976        )
55977    }
55978
55979    type GetTcpKeepAliveIdleResponseFut = fidl::client::QueryResponseFut<
55980        StreamSocketGetTcpKeepAliveIdleResult,
55981        fidl::encoding::DefaultFuchsiaResourceDialect,
55982    >;
55983    fn r#get_tcp_keep_alive_idle(&self) -> Self::GetTcpKeepAliveIdleResponseFut {
55984        fn _decode(
55985            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
55986        ) -> Result<StreamSocketGetTcpKeepAliveIdleResult, fidl::Error> {
55987            let _response = fidl::client::decode_transaction_body::<
55988                fidl::encoding::ResultType<
55989                    StreamSocketGetTcpKeepAliveIdleResponse,
55990                    fidl_fuchsia_posix::Errno,
55991                >,
55992                fidl::encoding::DefaultFuchsiaResourceDialect,
55993                0x35ec58564879dac,
55994            >(_buf?)?;
55995            Ok(_response.map(|x| x.value_secs))
55996        }
55997        self.client.send_query_and_decode::<
55998            fidl::encoding::EmptyPayload,
55999            StreamSocketGetTcpKeepAliveIdleResult,
56000        >(
56001            (),
56002            0x35ec58564879dac,
56003            fidl::encoding::DynamicFlags::empty(),
56004            _decode,
56005        )
56006    }
56007
56008    type SetTcpKeepAliveIntervalResponseFut = fidl::client::QueryResponseFut<
56009        StreamSocketSetTcpKeepAliveIntervalResult,
56010        fidl::encoding::DefaultFuchsiaResourceDialect,
56011    >;
56012    fn r#set_tcp_keep_alive_interval(
56013        &self,
56014        mut value_secs: u32,
56015    ) -> Self::SetTcpKeepAliveIntervalResponseFut {
56016        fn _decode(
56017            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56018        ) -> Result<StreamSocketSetTcpKeepAliveIntervalResult, fidl::Error> {
56019            let _response = fidl::client::decode_transaction_body::<
56020                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56021                fidl::encoding::DefaultFuchsiaResourceDialect,
56022                0x485ffbc2da1243f2,
56023            >(_buf?)?;
56024            Ok(_response.map(|x| x))
56025        }
56026        self.client.send_query_and_decode::<
56027            StreamSocketSetTcpKeepAliveIntervalRequest,
56028            StreamSocketSetTcpKeepAliveIntervalResult,
56029        >(
56030            (value_secs,),
56031            0x485ffbc2da1243f2,
56032            fidl::encoding::DynamicFlags::empty(),
56033            _decode,
56034        )
56035    }
56036
56037    type GetTcpKeepAliveIntervalResponseFut = fidl::client::QueryResponseFut<
56038        StreamSocketGetTcpKeepAliveIntervalResult,
56039        fidl::encoding::DefaultFuchsiaResourceDialect,
56040    >;
56041    fn r#get_tcp_keep_alive_interval(&self) -> Self::GetTcpKeepAliveIntervalResponseFut {
56042        fn _decode(
56043            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56044        ) -> Result<StreamSocketGetTcpKeepAliveIntervalResult, fidl::Error> {
56045            let _response = fidl::client::decode_transaction_body::<
56046                fidl::encoding::ResultType<
56047                    StreamSocketGetTcpKeepAliveIntervalResponse,
56048                    fidl_fuchsia_posix::Errno,
56049                >,
56050                fidl::encoding::DefaultFuchsiaResourceDialect,
56051                0x264eaf46306b284,
56052            >(_buf?)?;
56053            Ok(_response.map(|x| x.value_secs))
56054        }
56055        self.client.send_query_and_decode::<
56056            fidl::encoding::EmptyPayload,
56057            StreamSocketGetTcpKeepAliveIntervalResult,
56058        >(
56059            (),
56060            0x264eaf46306b284,
56061            fidl::encoding::DynamicFlags::empty(),
56062            _decode,
56063        )
56064    }
56065
56066    type SetTcpKeepAliveCountResponseFut = fidl::client::QueryResponseFut<
56067        StreamSocketSetTcpKeepAliveCountResult,
56068        fidl::encoding::DefaultFuchsiaResourceDialect,
56069    >;
56070    fn r#set_tcp_keep_alive_count(&self, mut value: u32) -> Self::SetTcpKeepAliveCountResponseFut {
56071        fn _decode(
56072            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56073        ) -> Result<StreamSocketSetTcpKeepAliveCountResult, fidl::Error> {
56074            let _response = fidl::client::decode_transaction_body::<
56075                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56076                fidl::encoding::DefaultFuchsiaResourceDialect,
56077                0x2ab2e8c111708421,
56078            >(_buf?)?;
56079            Ok(_response.map(|x| x))
56080        }
56081        self.client.send_query_and_decode::<
56082            StreamSocketSetTcpKeepAliveCountRequest,
56083            StreamSocketSetTcpKeepAliveCountResult,
56084        >(
56085            (value,),
56086            0x2ab2e8c111708421,
56087            fidl::encoding::DynamicFlags::empty(),
56088            _decode,
56089        )
56090    }
56091
56092    type GetTcpKeepAliveCountResponseFut = fidl::client::QueryResponseFut<
56093        StreamSocketGetTcpKeepAliveCountResult,
56094        fidl::encoding::DefaultFuchsiaResourceDialect,
56095    >;
56096    fn r#get_tcp_keep_alive_count(&self) -> Self::GetTcpKeepAliveCountResponseFut {
56097        fn _decode(
56098            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56099        ) -> Result<StreamSocketGetTcpKeepAliveCountResult, fidl::Error> {
56100            let _response = fidl::client::decode_transaction_body::<
56101                fidl::encoding::ResultType<
56102                    StreamSocketGetTcpKeepAliveCountResponse,
56103                    fidl_fuchsia_posix::Errno,
56104                >,
56105                fidl::encoding::DefaultFuchsiaResourceDialect,
56106                0x2f176ae271fe7a09,
56107            >(_buf?)?;
56108            Ok(_response.map(|x| x.value))
56109        }
56110        self.client.send_query_and_decode::<
56111            fidl::encoding::EmptyPayload,
56112            StreamSocketGetTcpKeepAliveCountResult,
56113        >(
56114            (),
56115            0x2f176ae271fe7a09,
56116            fidl::encoding::DynamicFlags::empty(),
56117            _decode,
56118        )
56119    }
56120
56121    type SetTcpSynCountResponseFut = fidl::client::QueryResponseFut<
56122        StreamSocketSetTcpSynCountResult,
56123        fidl::encoding::DefaultFuchsiaResourceDialect,
56124    >;
56125    fn r#set_tcp_syn_count(&self, mut value: u32) -> Self::SetTcpSynCountResponseFut {
56126        fn _decode(
56127            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56128        ) -> Result<StreamSocketSetTcpSynCountResult, fidl::Error> {
56129            let _response = fidl::client::decode_transaction_body::<
56130                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56131                fidl::encoding::DefaultFuchsiaResourceDialect,
56132                0x4dcd6ab5573c1eb3,
56133            >(_buf?)?;
56134            Ok(_response.map(|x| x))
56135        }
56136        self.client.send_query_and_decode::<
56137            StreamSocketSetTcpSynCountRequest,
56138            StreamSocketSetTcpSynCountResult,
56139        >(
56140            (value,),
56141            0x4dcd6ab5573c1eb3,
56142            fidl::encoding::DynamicFlags::empty(),
56143            _decode,
56144        )
56145    }
56146
56147    type GetTcpSynCountResponseFut = fidl::client::QueryResponseFut<
56148        StreamSocketGetTcpSynCountResult,
56149        fidl::encoding::DefaultFuchsiaResourceDialect,
56150    >;
56151    fn r#get_tcp_syn_count(&self) -> Self::GetTcpSynCountResponseFut {
56152        fn _decode(
56153            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56154        ) -> Result<StreamSocketGetTcpSynCountResult, fidl::Error> {
56155            let _response = fidl::client::decode_transaction_body::<
56156                fidl::encoding::ResultType<
56157                    StreamSocketGetTcpSynCountResponse,
56158                    fidl_fuchsia_posix::Errno,
56159                >,
56160                fidl::encoding::DefaultFuchsiaResourceDialect,
56161                0x7d457cba8f5f3ee6,
56162            >(_buf?)?;
56163            Ok(_response.map(|x| x.value))
56164        }
56165        self.client.send_query_and_decode::<
56166            fidl::encoding::EmptyPayload,
56167            StreamSocketGetTcpSynCountResult,
56168        >(
56169            (),
56170            0x7d457cba8f5f3ee6,
56171            fidl::encoding::DynamicFlags::empty(),
56172            _decode,
56173        )
56174    }
56175
56176    type SetTcpLingerResponseFut = fidl::client::QueryResponseFut<
56177        StreamSocketSetTcpLingerResult,
56178        fidl::encoding::DefaultFuchsiaResourceDialect,
56179    >;
56180    fn r#set_tcp_linger(&self, mut value_secs: &OptionalUint32) -> Self::SetTcpLingerResponseFut {
56181        fn _decode(
56182            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56183        ) -> Result<StreamSocketSetTcpLingerResult, fidl::Error> {
56184            let _response = fidl::client::decode_transaction_body::<
56185                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56186                fidl::encoding::DefaultFuchsiaResourceDialect,
56187                0xd5cc1e8654d36e4,
56188            >(_buf?)?;
56189            Ok(_response.map(|x| x))
56190        }
56191        self.client.send_query_and_decode::<
56192            StreamSocketSetTcpLingerRequest,
56193            StreamSocketSetTcpLingerResult,
56194        >(
56195            (value_secs,),
56196            0xd5cc1e8654d36e4,
56197            fidl::encoding::DynamicFlags::empty(),
56198            _decode,
56199        )
56200    }
56201
56202    type GetTcpLingerResponseFut = fidl::client::QueryResponseFut<
56203        StreamSocketGetTcpLingerResult,
56204        fidl::encoding::DefaultFuchsiaResourceDialect,
56205    >;
56206    fn r#get_tcp_linger(&self) -> Self::GetTcpLingerResponseFut {
56207        fn _decode(
56208            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56209        ) -> Result<StreamSocketGetTcpLingerResult, fidl::Error> {
56210            let _response = fidl::client::decode_transaction_body::<
56211                fidl::encoding::ResultType<
56212                    StreamSocketGetTcpLingerResponse,
56213                    fidl_fuchsia_posix::Errno,
56214                >,
56215                fidl::encoding::DefaultFuchsiaResourceDialect,
56216                0xad870d311cf30eb,
56217            >(_buf?)?;
56218            Ok(_response.map(|x| x.value_secs))
56219        }
56220        self.client
56221            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpLingerResult>(
56222                (),
56223                0xad870d311cf30eb,
56224                fidl::encoding::DynamicFlags::empty(),
56225                _decode,
56226            )
56227    }
56228
56229    type SetTcpDeferAcceptResponseFut = fidl::client::QueryResponseFut<
56230        StreamSocketSetTcpDeferAcceptResult,
56231        fidl::encoding::DefaultFuchsiaResourceDialect,
56232    >;
56233    fn r#set_tcp_defer_accept(&self, mut value_secs: u32) -> Self::SetTcpDeferAcceptResponseFut {
56234        fn _decode(
56235            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56236        ) -> Result<StreamSocketSetTcpDeferAcceptResult, fidl::Error> {
56237            let _response = fidl::client::decode_transaction_body::<
56238                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56239                fidl::encoding::DefaultFuchsiaResourceDialect,
56240                0x15092f181e57c404,
56241            >(_buf?)?;
56242            Ok(_response.map(|x| x))
56243        }
56244        self.client.send_query_and_decode::<
56245            StreamSocketSetTcpDeferAcceptRequest,
56246            StreamSocketSetTcpDeferAcceptResult,
56247        >(
56248            (value_secs,),
56249            0x15092f181e57c404,
56250            fidl::encoding::DynamicFlags::empty(),
56251            _decode,
56252        )
56253    }
56254
56255    type GetTcpDeferAcceptResponseFut = fidl::client::QueryResponseFut<
56256        StreamSocketGetTcpDeferAcceptResult,
56257        fidl::encoding::DefaultFuchsiaResourceDialect,
56258    >;
56259    fn r#get_tcp_defer_accept(&self) -> Self::GetTcpDeferAcceptResponseFut {
56260        fn _decode(
56261            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56262        ) -> Result<StreamSocketGetTcpDeferAcceptResult, fidl::Error> {
56263            let _response = fidl::client::decode_transaction_body::<
56264                fidl::encoding::ResultType<
56265                    StreamSocketGetTcpDeferAcceptResponse,
56266                    fidl_fuchsia_posix::Errno,
56267                >,
56268                fidl::encoding::DefaultFuchsiaResourceDialect,
56269                0x64589790842cb7c6,
56270            >(_buf?)?;
56271            Ok(_response.map(|x| x.value_secs))
56272        }
56273        self.client.send_query_and_decode::<
56274            fidl::encoding::EmptyPayload,
56275            StreamSocketGetTcpDeferAcceptResult,
56276        >(
56277            (),
56278            0x64589790842cb7c6,
56279            fidl::encoding::DynamicFlags::empty(),
56280            _decode,
56281        )
56282    }
56283
56284    type SetTcpWindowClampResponseFut = fidl::client::QueryResponseFut<
56285        StreamSocketSetTcpWindowClampResult,
56286        fidl::encoding::DefaultFuchsiaResourceDialect,
56287    >;
56288    fn r#set_tcp_window_clamp(&self, mut value: u32) -> Self::SetTcpWindowClampResponseFut {
56289        fn _decode(
56290            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56291        ) -> Result<StreamSocketSetTcpWindowClampResult, fidl::Error> {
56292            let _response = fidl::client::decode_transaction_body::<
56293                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56294                fidl::encoding::DefaultFuchsiaResourceDialect,
56295                0x4a26ce07d847f1c6,
56296            >(_buf?)?;
56297            Ok(_response.map(|x| x))
56298        }
56299        self.client.send_query_and_decode::<
56300            StreamSocketSetTcpWindowClampRequest,
56301            StreamSocketSetTcpWindowClampResult,
56302        >(
56303            (value,),
56304            0x4a26ce07d847f1c6,
56305            fidl::encoding::DynamicFlags::empty(),
56306            _decode,
56307        )
56308    }
56309
56310    type GetTcpWindowClampResponseFut = fidl::client::QueryResponseFut<
56311        StreamSocketGetTcpWindowClampResult,
56312        fidl::encoding::DefaultFuchsiaResourceDialect,
56313    >;
56314    fn r#get_tcp_window_clamp(&self) -> Self::GetTcpWindowClampResponseFut {
56315        fn _decode(
56316            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56317        ) -> Result<StreamSocketGetTcpWindowClampResult, fidl::Error> {
56318            let _response = fidl::client::decode_transaction_body::<
56319                fidl::encoding::ResultType<
56320                    StreamSocketGetTcpWindowClampResponse,
56321                    fidl_fuchsia_posix::Errno,
56322                >,
56323                fidl::encoding::DefaultFuchsiaResourceDialect,
56324                0x2df6b636bf0a6a4e,
56325            >(_buf?)?;
56326            Ok(_response.map(|x| x.value))
56327        }
56328        self.client.send_query_and_decode::<
56329            fidl::encoding::EmptyPayload,
56330            StreamSocketGetTcpWindowClampResult,
56331        >(
56332            (),
56333            0x2df6b636bf0a6a4e,
56334            fidl::encoding::DynamicFlags::empty(),
56335            _decode,
56336        )
56337    }
56338
56339    type GetTcpInfoResponseFut = fidl::client::QueryResponseFut<
56340        StreamSocketGetTcpInfoResult,
56341        fidl::encoding::DefaultFuchsiaResourceDialect,
56342    >;
56343    fn r#get_tcp_info(&self) -> Self::GetTcpInfoResponseFut {
56344        fn _decode(
56345            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56346        ) -> Result<StreamSocketGetTcpInfoResult, fidl::Error> {
56347            let _response = fidl::client::decode_transaction_body::<
56348                fidl::encoding::ResultType<
56349                    StreamSocketGetTcpInfoResponse,
56350                    fidl_fuchsia_posix::Errno,
56351                >,
56352                fidl::encoding::DefaultFuchsiaResourceDialect,
56353                0x1ffb123d9f03ead2,
56354            >(_buf?)?;
56355            Ok(_response.map(|x| x.info))
56356        }
56357        self.client
56358            .send_query_and_decode::<fidl::encoding::EmptyPayload, StreamSocketGetTcpInfoResult>(
56359                (),
56360                0x1ffb123d9f03ead2,
56361                fidl::encoding::DynamicFlags::empty(),
56362                _decode,
56363            )
56364    }
56365
56366    type SetTcpQuickAckResponseFut = fidl::client::QueryResponseFut<
56367        StreamSocketSetTcpQuickAckResult,
56368        fidl::encoding::DefaultFuchsiaResourceDialect,
56369    >;
56370    fn r#set_tcp_quick_ack(&self, mut value: bool) -> Self::SetTcpQuickAckResponseFut {
56371        fn _decode(
56372            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56373        ) -> Result<StreamSocketSetTcpQuickAckResult, fidl::Error> {
56374            let _response = fidl::client::decode_transaction_body::<
56375                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56376                fidl::encoding::DefaultFuchsiaResourceDialect,
56377                0x6fa811be8fde7457,
56378            >(_buf?)?;
56379            Ok(_response.map(|x| x))
56380        }
56381        self.client.send_query_and_decode::<
56382            StreamSocketSetTcpQuickAckRequest,
56383            StreamSocketSetTcpQuickAckResult,
56384        >(
56385            (value,),
56386            0x6fa811be8fde7457,
56387            fidl::encoding::DynamicFlags::empty(),
56388            _decode,
56389        )
56390    }
56391
56392    type GetTcpQuickAckResponseFut = fidl::client::QueryResponseFut<
56393        StreamSocketGetTcpQuickAckResult,
56394        fidl::encoding::DefaultFuchsiaResourceDialect,
56395    >;
56396    fn r#get_tcp_quick_ack(&self) -> Self::GetTcpQuickAckResponseFut {
56397        fn _decode(
56398            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56399        ) -> Result<StreamSocketGetTcpQuickAckResult, fidl::Error> {
56400            let _response = fidl::client::decode_transaction_body::<
56401                fidl::encoding::ResultType<
56402                    StreamSocketGetTcpQuickAckResponse,
56403                    fidl_fuchsia_posix::Errno,
56404                >,
56405                fidl::encoding::DefaultFuchsiaResourceDialect,
56406                0x7356a949bef2df32,
56407            >(_buf?)?;
56408            Ok(_response.map(|x| x.value))
56409        }
56410        self.client.send_query_and_decode::<
56411            fidl::encoding::EmptyPayload,
56412            StreamSocketGetTcpQuickAckResult,
56413        >(
56414            (),
56415            0x7356a949bef2df32,
56416            fidl::encoding::DynamicFlags::empty(),
56417            _decode,
56418        )
56419    }
56420
56421    type SetTcpCongestionResponseFut = fidl::client::QueryResponseFut<
56422        StreamSocketSetTcpCongestionResult,
56423        fidl::encoding::DefaultFuchsiaResourceDialect,
56424    >;
56425    fn r#set_tcp_congestion(
56426        &self,
56427        mut value: TcpCongestionControl,
56428    ) -> Self::SetTcpCongestionResponseFut {
56429        fn _decode(
56430            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56431        ) -> Result<StreamSocketSetTcpCongestionResult, fidl::Error> {
56432            let _response = fidl::client::decode_transaction_body::<
56433                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56434                fidl::encoding::DefaultFuchsiaResourceDialect,
56435                0x7924c6eabde7819e,
56436            >(_buf?)?;
56437            Ok(_response.map(|x| x))
56438        }
56439        self.client.send_query_and_decode::<
56440            StreamSocketSetTcpCongestionRequest,
56441            StreamSocketSetTcpCongestionResult,
56442        >(
56443            (value,),
56444            0x7924c6eabde7819e,
56445            fidl::encoding::DynamicFlags::empty(),
56446            _decode,
56447        )
56448    }
56449
56450    type GetTcpCongestionResponseFut = fidl::client::QueryResponseFut<
56451        StreamSocketGetTcpCongestionResult,
56452        fidl::encoding::DefaultFuchsiaResourceDialect,
56453    >;
56454    fn r#get_tcp_congestion(&self) -> Self::GetTcpCongestionResponseFut {
56455        fn _decode(
56456            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56457        ) -> Result<StreamSocketGetTcpCongestionResult, fidl::Error> {
56458            let _response = fidl::client::decode_transaction_body::<
56459                fidl::encoding::ResultType<
56460                    StreamSocketGetTcpCongestionResponse,
56461                    fidl_fuchsia_posix::Errno,
56462                >,
56463                fidl::encoding::DefaultFuchsiaResourceDialect,
56464                0x11e16397e1b72a47,
56465            >(_buf?)?;
56466            Ok(_response.map(|x| x.value))
56467        }
56468        self.client.send_query_and_decode::<
56469            fidl::encoding::EmptyPayload,
56470            StreamSocketGetTcpCongestionResult,
56471        >(
56472            (),
56473            0x11e16397e1b72a47,
56474            fidl::encoding::DynamicFlags::empty(),
56475            _decode,
56476        )
56477    }
56478
56479    type SetTcpUserTimeoutResponseFut = fidl::client::QueryResponseFut<
56480        StreamSocketSetTcpUserTimeoutResult,
56481        fidl::encoding::DefaultFuchsiaResourceDialect,
56482    >;
56483    fn r#set_tcp_user_timeout(&self, mut value_millis: u32) -> Self::SetTcpUserTimeoutResponseFut {
56484        fn _decode(
56485            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56486        ) -> Result<StreamSocketSetTcpUserTimeoutResult, fidl::Error> {
56487            let _response = fidl::client::decode_transaction_body::<
56488                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
56489                fidl::encoding::DefaultFuchsiaResourceDialect,
56490                0x6b459e81c3741a60,
56491            >(_buf?)?;
56492            Ok(_response.map(|x| x))
56493        }
56494        self.client.send_query_and_decode::<
56495            StreamSocketSetTcpUserTimeoutRequest,
56496            StreamSocketSetTcpUserTimeoutResult,
56497        >(
56498            (value_millis,),
56499            0x6b459e81c3741a60,
56500            fidl::encoding::DynamicFlags::empty(),
56501            _decode,
56502        )
56503    }
56504
56505    type GetTcpUserTimeoutResponseFut = fidl::client::QueryResponseFut<
56506        StreamSocketGetTcpUserTimeoutResult,
56507        fidl::encoding::DefaultFuchsiaResourceDialect,
56508    >;
56509    fn r#get_tcp_user_timeout(&self) -> Self::GetTcpUserTimeoutResponseFut {
56510        fn _decode(
56511            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
56512        ) -> Result<StreamSocketGetTcpUserTimeoutResult, fidl::Error> {
56513            let _response = fidl::client::decode_transaction_body::<
56514                fidl::encoding::ResultType<
56515                    StreamSocketGetTcpUserTimeoutResponse,
56516                    fidl_fuchsia_posix::Errno,
56517                >,
56518                fidl::encoding::DefaultFuchsiaResourceDialect,
56519                0x24bbd5858ad8c380,
56520            >(_buf?)?;
56521            Ok(_response.map(|x| x.value_millis))
56522        }
56523        self.client.send_query_and_decode::<
56524            fidl::encoding::EmptyPayload,
56525            StreamSocketGetTcpUserTimeoutResult,
56526        >(
56527            (),
56528            0x24bbd5858ad8c380,
56529            fidl::encoding::DynamicFlags::empty(),
56530            _decode,
56531        )
56532    }
56533}
56534
56535pub struct StreamSocketEventStream {
56536    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
56537}
56538
56539impl std::marker::Unpin for StreamSocketEventStream {}
56540
56541impl futures::stream::FusedStream for StreamSocketEventStream {
56542    fn is_terminated(&self) -> bool {
56543        self.event_receiver.is_terminated()
56544    }
56545}
56546
56547impl futures::Stream for StreamSocketEventStream {
56548    type Item = Result<StreamSocketEvent, fidl::Error>;
56549
56550    fn poll_next(
56551        mut self: std::pin::Pin<&mut Self>,
56552        cx: &mut std::task::Context<'_>,
56553    ) -> std::task::Poll<Option<Self::Item>> {
56554        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
56555            &mut self.event_receiver,
56556            cx
56557        )?) {
56558            Some(buf) => std::task::Poll::Ready(Some(StreamSocketEvent::decode(buf))),
56559            None => std::task::Poll::Ready(None),
56560        }
56561    }
56562}
56563
56564#[derive(Debug)]
56565pub enum StreamSocketEvent {}
56566
56567impl StreamSocketEvent {
56568    /// Decodes a message buffer as a [`StreamSocketEvent`].
56569    fn decode(
56570        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
56571    ) -> Result<StreamSocketEvent, fidl::Error> {
56572        let (bytes, _handles) = buf.split_mut();
56573        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
56574        debug_assert_eq!(tx_header.tx_id, 0);
56575        match tx_header.ordinal {
56576            _ => Err(fidl::Error::UnknownOrdinal {
56577                ordinal: tx_header.ordinal,
56578                protocol_name: <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
56579            }),
56580        }
56581    }
56582}
56583
56584/// A Stream of incoming requests for fuchsia.posix.socket/StreamSocket.
56585pub struct StreamSocketRequestStream {
56586    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
56587    is_terminated: bool,
56588}
56589
56590impl std::marker::Unpin for StreamSocketRequestStream {}
56591
56592impl futures::stream::FusedStream for StreamSocketRequestStream {
56593    fn is_terminated(&self) -> bool {
56594        self.is_terminated
56595    }
56596}
56597
56598impl fidl::endpoints::RequestStream for StreamSocketRequestStream {
56599    type Protocol = StreamSocketMarker;
56600    type ControlHandle = StreamSocketControlHandle;
56601
56602    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
56603        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
56604    }
56605
56606    fn control_handle(&self) -> Self::ControlHandle {
56607        StreamSocketControlHandle { inner: self.inner.clone() }
56608    }
56609
56610    fn into_inner(
56611        self,
56612    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
56613    {
56614        (self.inner, self.is_terminated)
56615    }
56616
56617    fn from_inner(
56618        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
56619        is_terminated: bool,
56620    ) -> Self {
56621        Self { inner, is_terminated }
56622    }
56623}
56624
56625impl futures::Stream for StreamSocketRequestStream {
56626    type Item = Result<StreamSocketRequest, fidl::Error>;
56627
56628    fn poll_next(
56629        mut self: std::pin::Pin<&mut Self>,
56630        cx: &mut std::task::Context<'_>,
56631    ) -> std::task::Poll<Option<Self::Item>> {
56632        let this = &mut *self;
56633        if this.inner.check_shutdown(cx) {
56634            this.is_terminated = true;
56635            return std::task::Poll::Ready(None);
56636        }
56637        if this.is_terminated {
56638            panic!("polled StreamSocketRequestStream after completion");
56639        }
56640        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
56641            |bytes, handles| {
56642                match this.inner.channel().read_etc(cx, bytes, handles) {
56643                    std::task::Poll::Ready(Ok(())) => {}
56644                    std::task::Poll::Pending => return std::task::Poll::Pending,
56645                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
56646                        this.is_terminated = true;
56647                        return std::task::Poll::Ready(None);
56648                    }
56649                    std::task::Poll::Ready(Err(e)) => {
56650                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
56651                            e.into(),
56652                        ))));
56653                    }
56654                }
56655
56656                // A message has been received from the channel
56657                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
56658
56659                std::task::Poll::Ready(Some(match header.ordinal {
56660                    0x20d8a7aba2168a79 => {
56661                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
56662                        let mut req = fidl::new_empty!(
56663                            fidl_fuchsia_unknown::CloneableCloneRequest,
56664                            fidl::encoding::DefaultFuchsiaResourceDialect
56665                        );
56666                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
56667                        let control_handle =
56668                            StreamSocketControlHandle { inner: this.inner.clone() };
56669                        Ok(StreamSocketRequest::Clone { request: req.request, control_handle })
56670                    }
56671                    0x5ac5d459ad7f657e => {
56672                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56673                        let mut req = fidl::new_empty!(
56674                            fidl::encoding::EmptyPayload,
56675                            fidl::encoding::DefaultFuchsiaResourceDialect
56676                        );
56677                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56678                        let control_handle =
56679                            StreamSocketControlHandle { inner: this.inner.clone() };
56680                        Ok(StreamSocketRequest::Close {
56681                            responder: StreamSocketCloseResponder {
56682                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56683                                tx_id: header.tx_id,
56684                            },
56685                        })
56686                    }
56687                    0x2658edee9decfc06 => {
56688                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56689                        let mut req = fidl::new_empty!(
56690                            fidl::encoding::EmptyPayload,
56691                            fidl::encoding::DefaultFuchsiaResourceDialect
56692                        );
56693                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56694                        let control_handle =
56695                            StreamSocketControlHandle { inner: this.inner.clone() };
56696                        Ok(StreamSocketRequest::Query {
56697                            responder: StreamSocketQueryResponder {
56698                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56699                                tx_id: header.tx_id,
56700                            },
56701                        })
56702                    }
56703                    0x1fd74ee8b9a4a876 => {
56704                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56705                        let mut req = fidl::new_empty!(
56706                            BaseSocketSetReuseAddressRequest,
56707                            fidl::encoding::DefaultFuchsiaResourceDialect
56708                        );
56709                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
56710                        let control_handle =
56711                            StreamSocketControlHandle { inner: this.inner.clone() };
56712                        Ok(StreamSocketRequest::SetReuseAddress {
56713                            value: req.value,
56714
56715                            responder: StreamSocketSetReuseAddressResponder {
56716                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56717                                tx_id: header.tx_id,
56718                            },
56719                        })
56720                    }
56721                    0x67b7206b8d1bc0a5 => {
56722                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56723                        let mut req = fidl::new_empty!(
56724                            fidl::encoding::EmptyPayload,
56725                            fidl::encoding::DefaultFuchsiaResourceDialect
56726                        );
56727                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56728                        let control_handle =
56729                            StreamSocketControlHandle { inner: this.inner.clone() };
56730                        Ok(StreamSocketRequest::GetReuseAddress {
56731                            responder: StreamSocketGetReuseAddressResponder {
56732                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56733                                tx_id: header.tx_id,
56734                            },
56735                        })
56736                    }
56737                    0x5aad39b33e5f6ebb => {
56738                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56739                        let mut req = fidl::new_empty!(
56740                            fidl::encoding::EmptyPayload,
56741                            fidl::encoding::DefaultFuchsiaResourceDialect
56742                        );
56743                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56744                        let control_handle =
56745                            StreamSocketControlHandle { inner: this.inner.clone() };
56746                        Ok(StreamSocketRequest::GetError {
56747                            responder: StreamSocketGetErrorResponder {
56748                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56749                                tx_id: header.tx_id,
56750                            },
56751                        })
56752                    }
56753                    0x6023e081ce3cd947 => {
56754                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56755                        let mut req = fidl::new_empty!(
56756                            BaseSocketSetBroadcastRequest,
56757                            fidl::encoding::DefaultFuchsiaResourceDialect
56758                        );
56759                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
56760                        let control_handle =
56761                            StreamSocketControlHandle { inner: this.inner.clone() };
56762                        Ok(StreamSocketRequest::SetBroadcast {
56763                            value: req.value,
56764
56765                            responder: StreamSocketSetBroadcastResponder {
56766                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56767                                tx_id: header.tx_id,
56768                            },
56769                        })
56770                    }
56771                    0x68796fc556f9780d => {
56772                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56773                        let mut req = fidl::new_empty!(
56774                            fidl::encoding::EmptyPayload,
56775                            fidl::encoding::DefaultFuchsiaResourceDialect
56776                        );
56777                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56778                        let control_handle =
56779                            StreamSocketControlHandle { inner: this.inner.clone() };
56780                        Ok(StreamSocketRequest::GetBroadcast {
56781                            responder: StreamSocketGetBroadcastResponder {
56782                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56783                                tx_id: header.tx_id,
56784                            },
56785                        })
56786                    }
56787                    0x756eac32d73a7a70 => {
56788                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56789                        let mut req = fidl::new_empty!(
56790                            BaseSocketSetSendBufferRequest,
56791                            fidl::encoding::DefaultFuchsiaResourceDialect
56792                        );
56793                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
56794                        let control_handle =
56795                            StreamSocketControlHandle { inner: this.inner.clone() };
56796                        Ok(StreamSocketRequest::SetSendBuffer {
56797                            value_bytes: req.value_bytes,
56798
56799                            responder: StreamSocketSetSendBufferResponder {
56800                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56801                                tx_id: header.tx_id,
56802                            },
56803                        })
56804                    }
56805                    0x78a52fd9c7b2410b => {
56806                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56807                        let mut req = fidl::new_empty!(
56808                            fidl::encoding::EmptyPayload,
56809                            fidl::encoding::DefaultFuchsiaResourceDialect
56810                        );
56811                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56812                        let control_handle =
56813                            StreamSocketControlHandle { inner: this.inner.clone() };
56814                        Ok(StreamSocketRequest::GetSendBuffer {
56815                            responder: StreamSocketGetSendBufferResponder {
56816                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56817                                tx_id: header.tx_id,
56818                            },
56819                        })
56820                    }
56821                    0x6b0cf2f1919c7001 => {
56822                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56823                        let mut req = fidl::new_empty!(
56824                            BaseSocketSetReceiveBufferRequest,
56825                            fidl::encoding::DefaultFuchsiaResourceDialect
56826                        );
56827                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
56828                        let control_handle =
56829                            StreamSocketControlHandle { inner: this.inner.clone() };
56830                        Ok(StreamSocketRequest::SetReceiveBuffer {
56831                            value_bytes: req.value_bytes,
56832
56833                            responder: StreamSocketSetReceiveBufferResponder {
56834                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56835                                tx_id: header.tx_id,
56836                            },
56837                        })
56838                    }
56839                    0x14c1a4b64f709e5c => {
56840                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56841                        let mut req = fidl::new_empty!(
56842                            fidl::encoding::EmptyPayload,
56843                            fidl::encoding::DefaultFuchsiaResourceDialect
56844                        );
56845                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56846                        let control_handle =
56847                            StreamSocketControlHandle { inner: this.inner.clone() };
56848                        Ok(StreamSocketRequest::GetReceiveBuffer {
56849                            responder: StreamSocketGetReceiveBufferResponder {
56850                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56851                                tx_id: header.tx_id,
56852                            },
56853                        })
56854                    }
56855                    0x572df8f0b920d2c7 => {
56856                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56857                        let mut req = fidl::new_empty!(
56858                            BaseSocketSetKeepAliveRequest,
56859                            fidl::encoding::DefaultFuchsiaResourceDialect
56860                        );
56861                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
56862                        let control_handle =
56863                            StreamSocketControlHandle { inner: this.inner.clone() };
56864                        Ok(StreamSocketRequest::SetKeepAlive {
56865                            value: req.value,
56866
56867                            responder: StreamSocketSetKeepAliveResponder {
56868                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56869                                tx_id: header.tx_id,
56870                            },
56871                        })
56872                    }
56873                    0x2dd29d3215f2c9d2 => {
56874                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56875                        let mut req = fidl::new_empty!(
56876                            fidl::encoding::EmptyPayload,
56877                            fidl::encoding::DefaultFuchsiaResourceDialect
56878                        );
56879                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56880                        let control_handle =
56881                            StreamSocketControlHandle { inner: this.inner.clone() };
56882                        Ok(StreamSocketRequest::GetKeepAlive {
56883                            responder: StreamSocketGetKeepAliveResponder {
56884                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56885                                tx_id: header.tx_id,
56886                            },
56887                        })
56888                    }
56889                    0x3ecb49968bee439 => {
56890                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56891                        let mut req = fidl::new_empty!(
56892                            BaseSocketSetOutOfBandInlineRequest,
56893                            fidl::encoding::DefaultFuchsiaResourceDialect
56894                        );
56895                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
56896                        let control_handle =
56897                            StreamSocketControlHandle { inner: this.inner.clone() };
56898                        Ok(StreamSocketRequest::SetOutOfBandInline {
56899                            value: req.value,
56900
56901                            responder: StreamSocketSetOutOfBandInlineResponder {
56902                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56903                                tx_id: header.tx_id,
56904                            },
56905                        })
56906                    }
56907                    0x348c1ab3aeca1745 => {
56908                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56909                        let mut req = fidl::new_empty!(
56910                            fidl::encoding::EmptyPayload,
56911                            fidl::encoding::DefaultFuchsiaResourceDialect
56912                        );
56913                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56914                        let control_handle =
56915                            StreamSocketControlHandle { inner: this.inner.clone() };
56916                        Ok(StreamSocketRequest::GetOutOfBandInline {
56917                            responder: StreamSocketGetOutOfBandInlineResponder {
56918                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56919                                tx_id: header.tx_id,
56920                            },
56921                        })
56922                    }
56923                    0x6bbf00c53a4c78c2 => {
56924                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56925                        let mut req = fidl::new_empty!(
56926                            BaseSocketSetNoCheckRequest,
56927                            fidl::encoding::DefaultFuchsiaResourceDialect
56928                        );
56929                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
56930                        let control_handle =
56931                            StreamSocketControlHandle { inner: this.inner.clone() };
56932                        Ok(StreamSocketRequest::SetNoCheck {
56933                            value: req.value,
56934
56935                            responder: StreamSocketSetNoCheckResponder {
56936                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56937                                tx_id: header.tx_id,
56938                            },
56939                        })
56940                    }
56941                    0x2cd4249286417694 => {
56942                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56943                        let mut req = fidl::new_empty!(
56944                            fidl::encoding::EmptyPayload,
56945                            fidl::encoding::DefaultFuchsiaResourceDialect
56946                        );
56947                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56948                        let control_handle =
56949                            StreamSocketControlHandle { inner: this.inner.clone() };
56950                        Ok(StreamSocketRequest::GetNoCheck {
56951                            responder: StreamSocketGetNoCheckResponder {
56952                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56953                                tx_id: header.tx_id,
56954                            },
56955                        })
56956                    }
56957                    0x45386351246e998e => {
56958                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56959                        let mut req = fidl::new_empty!(
56960                            BaseSocketSetLingerRequest,
56961                            fidl::encoding::DefaultFuchsiaResourceDialect
56962                        );
56963                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
56964                        let control_handle =
56965                            StreamSocketControlHandle { inner: this.inner.clone() };
56966                        Ok(StreamSocketRequest::SetLinger {
56967                            linger: req.linger,
56968                            length_secs: req.length_secs,
56969
56970                            responder: StreamSocketSetLingerResponder {
56971                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56972                                tx_id: header.tx_id,
56973                            },
56974                        })
56975                    }
56976                    0x48eb20fc5ccb0e45 => {
56977                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56978                        let mut req = fidl::new_empty!(
56979                            fidl::encoding::EmptyPayload,
56980                            fidl::encoding::DefaultFuchsiaResourceDialect
56981                        );
56982                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
56983                        let control_handle =
56984                            StreamSocketControlHandle { inner: this.inner.clone() };
56985                        Ok(StreamSocketRequest::GetLinger {
56986                            responder: StreamSocketGetLingerResponder {
56987                                control_handle: std::mem::ManuallyDrop::new(control_handle),
56988                                tx_id: header.tx_id,
56989                            },
56990                        })
56991                    }
56992                    0x24dd3e5cb36d9ccb => {
56993                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
56994                        let mut req = fidl::new_empty!(
56995                            BaseSocketSetReusePortRequest,
56996                            fidl::encoding::DefaultFuchsiaResourceDialect
56997                        );
56998                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
56999                        let control_handle =
57000                            StreamSocketControlHandle { inner: this.inner.clone() };
57001                        Ok(StreamSocketRequest::SetReusePort {
57002                            value: req.value,
57003
57004                            responder: StreamSocketSetReusePortResponder {
57005                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57006                                tx_id: header.tx_id,
57007                            },
57008                        })
57009                    }
57010                    0x7a112c1ab54ff828 => {
57011                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57012                        let mut req = fidl::new_empty!(
57013                            fidl::encoding::EmptyPayload,
57014                            fidl::encoding::DefaultFuchsiaResourceDialect
57015                        );
57016                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57017                        let control_handle =
57018                            StreamSocketControlHandle { inner: this.inner.clone() };
57019                        Ok(StreamSocketRequest::GetReusePort {
57020                            responder: StreamSocketGetReusePortResponder {
57021                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57022                                tx_id: header.tx_id,
57023                            },
57024                        })
57025                    }
57026                    0x67ce6db6c2ec8966 => {
57027                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57028                        let mut req = fidl::new_empty!(
57029                            fidl::encoding::EmptyPayload,
57030                            fidl::encoding::DefaultFuchsiaResourceDialect
57031                        );
57032                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57033                        let control_handle =
57034                            StreamSocketControlHandle { inner: this.inner.clone() };
57035                        Ok(StreamSocketRequest::GetAcceptConn {
57036                            responder: StreamSocketGetAcceptConnResponder {
57037                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57038                                tx_id: header.tx_id,
57039                            },
57040                        })
57041                    }
57042                    0x2118b483f28aafc4 => {
57043                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57044                        let mut req = fidl::new_empty!(
57045                            BaseSocketSetBindToDeviceRequest,
57046                            fidl::encoding::DefaultFuchsiaResourceDialect
57047                        );
57048                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
57049                        let control_handle =
57050                            StreamSocketControlHandle { inner: this.inner.clone() };
57051                        Ok(StreamSocketRequest::SetBindToDevice {
57052                            value: req.value,
57053
57054                            responder: StreamSocketSetBindToDeviceResponder {
57055                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57056                                tx_id: header.tx_id,
57057                            },
57058                        })
57059                    }
57060                    0x1ab1fbf0ef7906c8 => {
57061                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57062                        let mut req = fidl::new_empty!(
57063                            fidl::encoding::EmptyPayload,
57064                            fidl::encoding::DefaultFuchsiaResourceDialect
57065                        );
57066                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57067                        let control_handle =
57068                            StreamSocketControlHandle { inner: this.inner.clone() };
57069                        Ok(StreamSocketRequest::GetBindToDevice {
57070                            responder: StreamSocketGetBindToDeviceResponder {
57071                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57072                                tx_id: header.tx_id,
57073                            },
57074                        })
57075                    }
57076                    0x6e387a0def00821 => {
57077                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57078                        let mut req = fidl::new_empty!(
57079                            BaseSocketSetBindToInterfaceIndexRequest,
57080                            fidl::encoding::DefaultFuchsiaResourceDialect
57081                        );
57082                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
57083                        let control_handle =
57084                            StreamSocketControlHandle { inner: this.inner.clone() };
57085                        Ok(StreamSocketRequest::SetBindToInterfaceIndex {
57086                            value: req.value,
57087
57088                            responder: StreamSocketSetBindToInterfaceIndexResponder {
57089                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57090                                tx_id: header.tx_id,
57091                            },
57092                        })
57093                    }
57094                    0x59c31dd3e3078295 => {
57095                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57096                        let mut req = fidl::new_empty!(
57097                            fidl::encoding::EmptyPayload,
57098                            fidl::encoding::DefaultFuchsiaResourceDialect
57099                        );
57100                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57101                        let control_handle =
57102                            StreamSocketControlHandle { inner: this.inner.clone() };
57103                        Ok(StreamSocketRequest::GetBindToInterfaceIndex {
57104                            responder: StreamSocketGetBindToInterfaceIndexResponder {
57105                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57106                                tx_id: header.tx_id,
57107                            },
57108                        })
57109                    }
57110                    0x285d6516c263d839 => {
57111                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57112                        let mut req = fidl::new_empty!(
57113                            BaseSocketSetTimestampRequest,
57114                            fidl::encoding::DefaultFuchsiaResourceDialect
57115                        );
57116                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
57117                        let control_handle =
57118                            StreamSocketControlHandle { inner: this.inner.clone() };
57119                        Ok(StreamSocketRequest::SetTimestamp {
57120                            value: req.value,
57121
57122                            responder: StreamSocketSetTimestampResponder {
57123                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57124                                tx_id: header.tx_id,
57125                            },
57126                        })
57127                    }
57128                    0x49f2fffbbcc2bd27 => {
57129                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57130                        let mut req = fidl::new_empty!(
57131                            fidl::encoding::EmptyPayload,
57132                            fidl::encoding::DefaultFuchsiaResourceDialect
57133                        );
57134                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57135                        let control_handle =
57136                            StreamSocketControlHandle { inner: this.inner.clone() };
57137                        Ok(StreamSocketRequest::GetTimestamp {
57138                            responder: StreamSocketGetTimestampResponder {
57139                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57140                                tx_id: header.tx_id,
57141                            },
57142                        })
57143                    }
57144                    0x6ead6de09f653236 => {
57145                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57146                        let mut req = fidl::new_empty!(
57147                            BaseSocketSetMarkRequest,
57148                            fidl::encoding::DefaultFuchsiaResourceDialect
57149                        );
57150                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
57151                        let control_handle =
57152                            StreamSocketControlHandle { inner: this.inner.clone() };
57153                        Ok(StreamSocketRequest::SetMark {
57154                            domain: req.domain,
57155                            mark: req.mark,
57156
57157                            responder: StreamSocketSetMarkResponder {
57158                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57159                                tx_id: header.tx_id,
57160                            },
57161                        })
57162                    }
57163                    0x57a2752c61d93d47 => {
57164                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57165                        let mut req = fidl::new_empty!(
57166                            BaseSocketGetMarkRequest,
57167                            fidl::encoding::DefaultFuchsiaResourceDialect
57168                        );
57169                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
57170                        let control_handle =
57171                            StreamSocketControlHandle { inner: this.inner.clone() };
57172                        Ok(StreamSocketRequest::GetMark {
57173                            domain: req.domain,
57174
57175                            responder: StreamSocketGetMarkResponder {
57176                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57177                                tx_id: header.tx_id,
57178                            },
57179                        })
57180                    }
57181                    0x2c2f47fd8f924e52 => {
57182                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57183                        let mut req = fidl::new_empty!(
57184                            fidl::encoding::EmptyPayload,
57185                            fidl::encoding::DefaultFuchsiaResourceDialect
57186                        );
57187                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57188                        let control_handle =
57189                            StreamSocketControlHandle { inner: this.inner.clone() };
57190                        Ok(StreamSocketRequest::GetCookie {
57191                            responder: StreamSocketGetCookieResponder {
57192                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57193                                tx_id: header.tx_id,
57194                            },
57195                        })
57196                    }
57197                    0x4bc6400ae92125d => {
57198                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57199                        let mut req = fidl::new_empty!(
57200                            BaseNetworkSocketBindRequest,
57201                            fidl::encoding::DefaultFuchsiaResourceDialect
57202                        );
57203                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
57204                        let control_handle =
57205                            StreamSocketControlHandle { inner: this.inner.clone() };
57206                        Ok(StreamSocketRequest::Bind {
57207                            addr: req.addr,
57208
57209                            responder: StreamSocketBindResponder {
57210                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57211                                tx_id: header.tx_id,
57212                            },
57213                        })
57214                    }
57215                    0x5f05f19bfdd38871 => {
57216                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57217                        let mut req = fidl::new_empty!(
57218                            BaseNetworkSocketConnectRequest,
57219                            fidl::encoding::DefaultFuchsiaResourceDialect
57220                        );
57221                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
57222                        let control_handle =
57223                            StreamSocketControlHandle { inner: this.inner.clone() };
57224                        Ok(StreamSocketRequest::Connect {
57225                            addr: req.addr,
57226
57227                            responder: StreamSocketConnectResponder {
57228                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57229                                tx_id: header.tx_id,
57230                            },
57231                        })
57232                    }
57233                    0x74e63b91f7b29b2 => {
57234                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57235                        let mut req = fidl::new_empty!(
57236                            fidl::encoding::EmptyPayload,
57237                            fidl::encoding::DefaultFuchsiaResourceDialect
57238                        );
57239                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57240                        let control_handle =
57241                            StreamSocketControlHandle { inner: this.inner.clone() };
57242                        Ok(StreamSocketRequest::Disconnect {
57243                            responder: StreamSocketDisconnectResponder {
57244                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57245                                tx_id: header.tx_id,
57246                            },
57247                        })
57248                    }
57249                    0x475f23f84a1a4f85 => {
57250                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57251                        let mut req = fidl::new_empty!(
57252                            fidl::encoding::EmptyPayload,
57253                            fidl::encoding::DefaultFuchsiaResourceDialect
57254                        );
57255                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57256                        let control_handle =
57257                            StreamSocketControlHandle { inner: this.inner.clone() };
57258                        Ok(StreamSocketRequest::GetSockName {
57259                            responder: StreamSocketGetSockNameResponder {
57260                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57261                                tx_id: header.tx_id,
57262                            },
57263                        })
57264                    }
57265                    0x1ffecf4bd5b6432e => {
57266                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57267                        let mut req = fidl::new_empty!(
57268                            fidl::encoding::EmptyPayload,
57269                            fidl::encoding::DefaultFuchsiaResourceDialect
57270                        );
57271                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57272                        let control_handle =
57273                            StreamSocketControlHandle { inner: this.inner.clone() };
57274                        Ok(StreamSocketRequest::GetPeerName {
57275                            responder: StreamSocketGetPeerNameResponder {
57276                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57277                                tx_id: header.tx_id,
57278                            },
57279                        })
57280                    }
57281                    0x247f38b6db68c336 => {
57282                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57283                        let mut req = fidl::new_empty!(
57284                            BaseNetworkSocketShutdownRequest,
57285                            fidl::encoding::DefaultFuchsiaResourceDialect
57286                        );
57287                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
57288                        let control_handle =
57289                            StreamSocketControlHandle { inner: this.inner.clone() };
57290                        Ok(StreamSocketRequest::Shutdown {
57291                            mode: req.mode,
57292
57293                            responder: StreamSocketShutdownResponder {
57294                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57295                                tx_id: header.tx_id,
57296                            },
57297                        })
57298                    }
57299                    0x995c600475b6d46 => {
57300                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57301                        let mut req = fidl::new_empty!(
57302                            BaseNetworkSocketSetIpTypeOfServiceRequest,
57303                            fidl::encoding::DefaultFuchsiaResourceDialect
57304                        );
57305                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
57306                        let control_handle =
57307                            StreamSocketControlHandle { inner: this.inner.clone() };
57308                        Ok(StreamSocketRequest::SetIpTypeOfService {
57309                            value: req.value,
57310
57311                            responder: StreamSocketSetIpTypeOfServiceResponder {
57312                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57313                                tx_id: header.tx_id,
57314                            },
57315                        })
57316                    }
57317                    0x3814a04259f75fcb => {
57318                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57319                        let mut req = fidl::new_empty!(
57320                            fidl::encoding::EmptyPayload,
57321                            fidl::encoding::DefaultFuchsiaResourceDialect
57322                        );
57323                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57324                        let control_handle =
57325                            StreamSocketControlHandle { inner: this.inner.clone() };
57326                        Ok(StreamSocketRequest::GetIpTypeOfService {
57327                            responder: StreamSocketGetIpTypeOfServiceResponder {
57328                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57329                                tx_id: header.tx_id,
57330                            },
57331                        })
57332                    }
57333                    0x29e2424b433ae1ef => {
57334                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57335                        let mut req = fidl::new_empty!(
57336                            BaseNetworkSocketSetIpTtlRequest,
57337                            fidl::encoding::DefaultFuchsiaResourceDialect
57338                        );
57339                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
57340                        let control_handle =
57341                            StreamSocketControlHandle { inner: this.inner.clone() };
57342                        Ok(StreamSocketRequest::SetIpTtl {
57343                            value: req.value,
57344
57345                            responder: StreamSocketSetIpTtlResponder {
57346                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57347                                tx_id: header.tx_id,
57348                            },
57349                        })
57350                    }
57351                    0x47e47fa1f24da471 => {
57352                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57353                        let mut req = fidl::new_empty!(
57354                            fidl::encoding::EmptyPayload,
57355                            fidl::encoding::DefaultFuchsiaResourceDialect
57356                        );
57357                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57358                        let control_handle =
57359                            StreamSocketControlHandle { inner: this.inner.clone() };
57360                        Ok(StreamSocketRequest::GetIpTtl {
57361                            responder: StreamSocketGetIpTtlResponder {
57362                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57363                                tx_id: header.tx_id,
57364                            },
57365                        })
57366                    }
57367                    0x392d16bee20c0e16 => {
57368                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57369                        let mut req = fidl::new_empty!(
57370                            BaseNetworkSocketSetIpPacketInfoRequest,
57371                            fidl::encoding::DefaultFuchsiaResourceDialect
57372                        );
57373                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
57374                        let control_handle =
57375                            StreamSocketControlHandle { inner: this.inner.clone() };
57376                        Ok(StreamSocketRequest::SetIpPacketInfo {
57377                            value: req.value,
57378
57379                            responder: StreamSocketSetIpPacketInfoResponder {
57380                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57381                                tx_id: header.tx_id,
57382                            },
57383                        })
57384                    }
57385                    0x54b505f242280740 => {
57386                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57387                        let mut req = fidl::new_empty!(
57388                            fidl::encoding::EmptyPayload,
57389                            fidl::encoding::DefaultFuchsiaResourceDialect
57390                        );
57391                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57392                        let control_handle =
57393                            StreamSocketControlHandle { inner: this.inner.clone() };
57394                        Ok(StreamSocketRequest::GetIpPacketInfo {
57395                            responder: StreamSocketGetIpPacketInfoResponder {
57396                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57397                                tx_id: header.tx_id,
57398                            },
57399                        })
57400                    }
57401                    0x6c4f6714995f84ef => {
57402                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57403                        let mut req = fidl::new_empty!(
57404                            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
57405                            fidl::encoding::DefaultFuchsiaResourceDialect
57406                        );
57407                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
57408                        let control_handle =
57409                            StreamSocketControlHandle { inner: this.inner.clone() };
57410                        Ok(StreamSocketRequest::SetIpReceiveTypeOfService {
57411                            value: req.value,
57412
57413                            responder: StreamSocketSetIpReceiveTypeOfServiceResponder {
57414                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57415                                tx_id: header.tx_id,
57416                            },
57417                        })
57418                    }
57419                    0x4158ba7dc2795960 => {
57420                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57421                        let mut req = fidl::new_empty!(
57422                            fidl::encoding::EmptyPayload,
57423                            fidl::encoding::DefaultFuchsiaResourceDialect
57424                        );
57425                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57426                        let control_handle =
57427                            StreamSocketControlHandle { inner: this.inner.clone() };
57428                        Ok(StreamSocketRequest::GetIpReceiveTypeOfService {
57429                            responder: StreamSocketGetIpReceiveTypeOfServiceResponder {
57430                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57431                                tx_id: header.tx_id,
57432                            },
57433                        })
57434                    }
57435                    0x46f15be0ce0ab82b => {
57436                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57437                        let mut req = fidl::new_empty!(
57438                            BaseNetworkSocketSetIpReceiveTtlRequest,
57439                            fidl::encoding::DefaultFuchsiaResourceDialect
57440                        );
57441                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
57442                        let control_handle =
57443                            StreamSocketControlHandle { inner: this.inner.clone() };
57444                        Ok(StreamSocketRequest::SetIpReceiveTtl {
57445                            value: req.value,
57446
57447                            responder: StreamSocketSetIpReceiveTtlResponder {
57448                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57449                                tx_id: header.tx_id,
57450                            },
57451                        })
57452                    }
57453                    0x678ddd5a5dfa2eb5 => {
57454                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57455                        let mut req = fidl::new_empty!(
57456                            fidl::encoding::EmptyPayload,
57457                            fidl::encoding::DefaultFuchsiaResourceDialect
57458                        );
57459                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57460                        let control_handle =
57461                            StreamSocketControlHandle { inner: this.inner.clone() };
57462                        Ok(StreamSocketRequest::GetIpReceiveTtl {
57463                            responder: StreamSocketGetIpReceiveTtlResponder {
57464                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57465                                tx_id: header.tx_id,
57466                            },
57467                        })
57468                    }
57469                    0x752fbfa9b12befe => {
57470                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57471                        let mut req = fidl::new_empty!(
57472                            BaseNetworkSocketSetIpMulticastInterfaceRequest,
57473                            fidl::encoding::DefaultFuchsiaResourceDialect
57474                        );
57475                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
57476                        let control_handle =
57477                            StreamSocketControlHandle { inner: this.inner.clone() };
57478                        Ok(StreamSocketRequest::SetIpMulticastInterface {
57479                            iface: req.iface,
57480                            address: req.address,
57481
57482                            responder: StreamSocketSetIpMulticastInterfaceResponder {
57483                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57484                                tx_id: header.tx_id,
57485                            },
57486                        })
57487                    }
57488                    0x320bd14c4df046c4 => {
57489                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57490                        let mut req = fidl::new_empty!(
57491                            fidl::encoding::EmptyPayload,
57492                            fidl::encoding::DefaultFuchsiaResourceDialect
57493                        );
57494                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57495                        let control_handle =
57496                            StreamSocketControlHandle { inner: this.inner.clone() };
57497                        Ok(StreamSocketRequest::GetIpMulticastInterface {
57498                            responder: StreamSocketGetIpMulticastInterfaceResponder {
57499                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57500                                tx_id: header.tx_id,
57501                            },
57502                        })
57503                    }
57504                    0x63134d53772916a1 => {
57505                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57506                        let mut req = fidl::new_empty!(
57507                            BaseNetworkSocketSetIpMulticastTtlRequest,
57508                            fidl::encoding::DefaultFuchsiaResourceDialect
57509                        );
57510                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
57511                        let control_handle =
57512                            StreamSocketControlHandle { inner: this.inner.clone() };
57513                        Ok(StreamSocketRequest::SetIpMulticastTtl {
57514                            value: req.value,
57515
57516                            responder: StreamSocketSetIpMulticastTtlResponder {
57517                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57518                                tx_id: header.tx_id,
57519                            },
57520                        })
57521                    }
57522                    0x4665cd378f39e1a => {
57523                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57524                        let mut req = fidl::new_empty!(
57525                            fidl::encoding::EmptyPayload,
57526                            fidl::encoding::DefaultFuchsiaResourceDialect
57527                        );
57528                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57529                        let control_handle =
57530                            StreamSocketControlHandle { inner: this.inner.clone() };
57531                        Ok(StreamSocketRequest::GetIpMulticastTtl {
57532                            responder: StreamSocketGetIpMulticastTtlResponder {
57533                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57534                                tx_id: header.tx_id,
57535                            },
57536                        })
57537                    }
57538                    0x20c55c11f00943ea => {
57539                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57540                        let mut req = fidl::new_empty!(
57541                            BaseNetworkSocketSetIpMulticastLoopbackRequest,
57542                            fidl::encoding::DefaultFuchsiaResourceDialect
57543                        );
57544                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
57545                        let control_handle =
57546                            StreamSocketControlHandle { inner: this.inner.clone() };
57547                        Ok(StreamSocketRequest::SetIpMulticastLoopback {
57548                            value: req.value,
57549
57550                            responder: StreamSocketSetIpMulticastLoopbackResponder {
57551                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57552                                tx_id: header.tx_id,
57553                            },
57554                        })
57555                    }
57556                    0x3b6b26ff558298f2 => {
57557                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57558                        let mut req = fidl::new_empty!(
57559                            fidl::encoding::EmptyPayload,
57560                            fidl::encoding::DefaultFuchsiaResourceDialect
57561                        );
57562                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57563                        let control_handle =
57564                            StreamSocketControlHandle { inner: this.inner.clone() };
57565                        Ok(StreamSocketRequest::GetIpMulticastLoopback {
57566                            responder: StreamSocketGetIpMulticastLoopbackResponder {
57567                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57568                                tx_id: header.tx_id,
57569                            },
57570                        })
57571                    }
57572                    0x76bc7df115a3b4d0 => {
57573                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57574                        let mut req = fidl::new_empty!(
57575                            BaseNetworkSocketAddIpMembershipRequest,
57576                            fidl::encoding::DefaultFuchsiaResourceDialect
57577                        );
57578                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
57579                        let control_handle =
57580                            StreamSocketControlHandle { inner: this.inner.clone() };
57581                        Ok(StreamSocketRequest::AddIpMembership {
57582                            membership: req.membership,
57583
57584                            responder: StreamSocketAddIpMembershipResponder {
57585                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57586                                tx_id: header.tx_id,
57587                            },
57588                        })
57589                    }
57590                    0x2888f3099188d03 => {
57591                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57592                        let mut req = fidl::new_empty!(
57593                            BaseNetworkSocketDropIpMembershipRequest,
57594                            fidl::encoding::DefaultFuchsiaResourceDialect
57595                        );
57596                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
57597                        let control_handle =
57598                            StreamSocketControlHandle { inner: this.inner.clone() };
57599                        Ok(StreamSocketRequest::DropIpMembership {
57600                            membership: req.membership,
57601
57602                            responder: StreamSocketDropIpMembershipResponder {
57603                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57604                                tx_id: header.tx_id,
57605                            },
57606                        })
57607                    }
57608                    0x1ae532b0c066e3a0 => {
57609                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57610                        let mut req = fidl::new_empty!(
57611                            BaseNetworkSocketSetIpTransparentRequest,
57612                            fidl::encoding::DefaultFuchsiaResourceDialect
57613                        );
57614                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
57615                        let control_handle =
57616                            StreamSocketControlHandle { inner: this.inner.clone() };
57617                        Ok(StreamSocketRequest::SetIpTransparent {
57618                            value: req.value,
57619
57620                            responder: StreamSocketSetIpTransparentResponder {
57621                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57622                                tx_id: header.tx_id,
57623                            },
57624                        })
57625                    }
57626                    0x51d43695962ebfb5 => {
57627                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57628                        let mut req = fidl::new_empty!(
57629                            fidl::encoding::EmptyPayload,
57630                            fidl::encoding::DefaultFuchsiaResourceDialect
57631                        );
57632                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57633                        let control_handle =
57634                            StreamSocketControlHandle { inner: this.inner.clone() };
57635                        Ok(StreamSocketRequest::GetIpTransparent {
57636                            responder: StreamSocketGetIpTransparentResponder {
57637                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57638                                tx_id: header.tx_id,
57639                            },
57640                        })
57641                    }
57642                    0x4722b4ce52f7840 => {
57643                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57644                        let mut req = fidl::new_empty!(
57645                            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
57646                            fidl::encoding::DefaultFuchsiaResourceDialect
57647                        );
57648                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
57649                        let control_handle =
57650                            StreamSocketControlHandle { inner: this.inner.clone() };
57651                        Ok(StreamSocketRequest::SetIpReceiveOriginalDestinationAddress {
57652                            value: req.value,
57653
57654                            responder:
57655                                StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
57656                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
57657                                    tx_id: header.tx_id,
57658                                },
57659                        })
57660                    }
57661                    0x2a0e7dc5d6bfdfe9 => {
57662                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57663                        let mut req = fidl::new_empty!(
57664                            fidl::encoding::EmptyPayload,
57665                            fidl::encoding::DefaultFuchsiaResourceDialect
57666                        );
57667                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57668                        let control_handle =
57669                            StreamSocketControlHandle { inner: this.inner.clone() };
57670                        Ok(StreamSocketRequest::GetIpReceiveOriginalDestinationAddress {
57671                            responder:
57672                                StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
57673                                    control_handle: std::mem::ManuallyDrop::new(control_handle),
57674                                    tx_id: header.tx_id,
57675                                },
57676                        })
57677                    }
57678                    0x7c94727acb4ea4b3 => {
57679                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57680                        let mut req = fidl::new_empty!(
57681                            BaseNetworkSocketAddIpv6MembershipRequest,
57682                            fidl::encoding::DefaultFuchsiaResourceDialect
57683                        );
57684                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
57685                        let control_handle =
57686                            StreamSocketControlHandle { inner: this.inner.clone() };
57687                        Ok(StreamSocketRequest::AddIpv6Membership {
57688                            membership: req.membership,
57689
57690                            responder: StreamSocketAddIpv6MembershipResponder {
57691                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57692                                tx_id: header.tx_id,
57693                            },
57694                        })
57695                    }
57696                    0x42104c70ccaba304 => {
57697                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57698                        let mut req = fidl::new_empty!(
57699                            BaseNetworkSocketDropIpv6MembershipRequest,
57700                            fidl::encoding::DefaultFuchsiaResourceDialect
57701                        );
57702                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
57703                        let control_handle =
57704                            StreamSocketControlHandle { inner: this.inner.clone() };
57705                        Ok(StreamSocketRequest::DropIpv6Membership {
57706                            membership: req.membership,
57707
57708                            responder: StreamSocketDropIpv6MembershipResponder {
57709                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57710                                tx_id: header.tx_id,
57711                            },
57712                        })
57713                    }
57714                    0x135f76db3774ab3b => {
57715                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57716                        let mut req = fidl::new_empty!(
57717                            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
57718                            fidl::encoding::DefaultFuchsiaResourceDialect
57719                        );
57720                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
57721                        let control_handle =
57722                            StreamSocketControlHandle { inner: this.inner.clone() };
57723                        Ok(StreamSocketRequest::SetIpv6MulticastInterface {
57724                            value: req.value,
57725
57726                            responder: StreamSocketSetIpv6MulticastInterfaceResponder {
57727                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57728                                tx_id: header.tx_id,
57729                            },
57730                        })
57731                    }
57732                    0x1f26fcdd348f1882 => {
57733                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57734                        let mut req = fidl::new_empty!(
57735                            fidl::encoding::EmptyPayload,
57736                            fidl::encoding::DefaultFuchsiaResourceDialect
57737                        );
57738                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57739                        let control_handle =
57740                            StreamSocketControlHandle { inner: this.inner.clone() };
57741                        Ok(StreamSocketRequest::GetIpv6MulticastInterface {
57742                            responder: StreamSocketGetIpv6MulticastInterfaceResponder {
57743                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57744                                tx_id: header.tx_id,
57745                            },
57746                        })
57747                    }
57748                    0x157d51e98f462859 => {
57749                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57750                        let mut req = fidl::new_empty!(
57751                            BaseNetworkSocketSetIpv6UnicastHopsRequest,
57752                            fidl::encoding::DefaultFuchsiaResourceDialect
57753                        );
57754                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
57755                        let control_handle =
57756                            StreamSocketControlHandle { inner: this.inner.clone() };
57757                        Ok(StreamSocketRequest::SetIpv6UnicastHops {
57758                            value: req.value,
57759
57760                            responder: StreamSocketSetIpv6UnicastHopsResponder {
57761                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57762                                tx_id: header.tx_id,
57763                            },
57764                        })
57765                    }
57766                    0x21f4641cad8bd8d2 => {
57767                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57768                        let mut req = fidl::new_empty!(
57769                            fidl::encoding::EmptyPayload,
57770                            fidl::encoding::DefaultFuchsiaResourceDialect
57771                        );
57772                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57773                        let control_handle =
57774                            StreamSocketControlHandle { inner: this.inner.clone() };
57775                        Ok(StreamSocketRequest::GetIpv6UnicastHops {
57776                            responder: StreamSocketGetIpv6UnicastHopsResponder {
57777                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57778                                tx_id: header.tx_id,
57779                            },
57780                        })
57781                    }
57782                    0x5c24808ed2e84a1e => {
57783                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57784                        let mut req = fidl::new_empty!(
57785                            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
57786                            fidl::encoding::DefaultFuchsiaResourceDialect
57787                        );
57788                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
57789                        let control_handle =
57790                            StreamSocketControlHandle { inner: this.inner.clone() };
57791                        Ok(StreamSocketRequest::SetIpv6ReceiveHopLimit {
57792                            value: req.value,
57793
57794                            responder: StreamSocketSetIpv6ReceiveHopLimitResponder {
57795                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57796                                tx_id: header.tx_id,
57797                            },
57798                        })
57799                    }
57800                    0x341e06689885b4c0 => {
57801                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57802                        let mut req = fidl::new_empty!(
57803                            fidl::encoding::EmptyPayload,
57804                            fidl::encoding::DefaultFuchsiaResourceDialect
57805                        );
57806                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57807                        let control_handle =
57808                            StreamSocketControlHandle { inner: this.inner.clone() };
57809                        Ok(StreamSocketRequest::GetIpv6ReceiveHopLimit {
57810                            responder: StreamSocketGetIpv6ReceiveHopLimitResponder {
57811                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57812                                tx_id: header.tx_id,
57813                            },
57814                        })
57815                    }
57816                    0x25b9cd4d181f82c1 => {
57817                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57818                        let mut req = fidl::new_empty!(
57819                            BaseNetworkSocketSetIpv6MulticastHopsRequest,
57820                            fidl::encoding::DefaultFuchsiaResourceDialect
57821                        );
57822                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
57823                        let control_handle =
57824                            StreamSocketControlHandle { inner: this.inner.clone() };
57825                        Ok(StreamSocketRequest::SetIpv6MulticastHops {
57826                            value: req.value,
57827
57828                            responder: StreamSocketSetIpv6MulticastHopsResponder {
57829                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57830                                tx_id: header.tx_id,
57831                            },
57832                        })
57833                    }
57834                    0x52916948a365012a => {
57835                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57836                        let mut req = fidl::new_empty!(
57837                            fidl::encoding::EmptyPayload,
57838                            fidl::encoding::DefaultFuchsiaResourceDialect
57839                        );
57840                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57841                        let control_handle =
57842                            StreamSocketControlHandle { inner: this.inner.clone() };
57843                        Ok(StreamSocketRequest::GetIpv6MulticastHops {
57844                            responder: StreamSocketGetIpv6MulticastHopsResponder {
57845                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57846                                tx_id: header.tx_id,
57847                            },
57848                        })
57849                    }
57850                    0x55701c409ff41b40 => {
57851                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57852                        let mut req = fidl::new_empty!(
57853                            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
57854                            fidl::encoding::DefaultFuchsiaResourceDialect
57855                        );
57856                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
57857                        let control_handle =
57858                            StreamSocketControlHandle { inner: this.inner.clone() };
57859                        Ok(StreamSocketRequest::SetIpv6MulticastLoopback {
57860                            value: req.value,
57861
57862                            responder: StreamSocketSetIpv6MulticastLoopbackResponder {
57863                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57864                                tx_id: header.tx_id,
57865                            },
57866                        })
57867                    }
57868                    0x4415b701fde319c3 => {
57869                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57870                        let mut req = fidl::new_empty!(
57871                            fidl::encoding::EmptyPayload,
57872                            fidl::encoding::DefaultFuchsiaResourceDialect
57873                        );
57874                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57875                        let control_handle =
57876                            StreamSocketControlHandle { inner: this.inner.clone() };
57877                        Ok(StreamSocketRequest::GetIpv6MulticastLoopback {
57878                            responder: StreamSocketGetIpv6MulticastLoopbackResponder {
57879                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57880                                tx_id: header.tx_id,
57881                            },
57882                        })
57883                    }
57884                    0x4873f1364758cbba => {
57885                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57886                        let mut req = fidl::new_empty!(
57887                            BaseNetworkSocketSetIpv6OnlyRequest,
57888                            fidl::encoding::DefaultFuchsiaResourceDialect
57889                        );
57890                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
57891                        let control_handle =
57892                            StreamSocketControlHandle { inner: this.inner.clone() };
57893                        Ok(StreamSocketRequest::SetIpv6Only {
57894                            value: req.value,
57895
57896                            responder: StreamSocketSetIpv6OnlyResponder {
57897                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57898                                tx_id: header.tx_id,
57899                            },
57900                        })
57901                    }
57902                    0x4aa3340a1a26b89c => {
57903                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57904                        let mut req = fidl::new_empty!(
57905                            fidl::encoding::EmptyPayload,
57906                            fidl::encoding::DefaultFuchsiaResourceDialect
57907                        );
57908                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57909                        let control_handle =
57910                            StreamSocketControlHandle { inner: this.inner.clone() };
57911                        Ok(StreamSocketRequest::GetIpv6Only {
57912                            responder: StreamSocketGetIpv6OnlyResponder {
57913                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57914                                tx_id: header.tx_id,
57915                            },
57916                        })
57917                    }
57918                    0x58f07c8788d099a0 => {
57919                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57920                        let mut req = fidl::new_empty!(
57921                            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
57922                            fidl::encoding::DefaultFuchsiaResourceDialect
57923                        );
57924                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
57925                        let control_handle =
57926                            StreamSocketControlHandle { inner: this.inner.clone() };
57927                        Ok(StreamSocketRequest::SetIpv6ReceiveTrafficClass {
57928                            value: req.value,
57929
57930                            responder: StreamSocketSetIpv6ReceiveTrafficClassResponder {
57931                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57932                                tx_id: header.tx_id,
57933                            },
57934                        })
57935                    }
57936                    0x2e334df1da553ffa => {
57937                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57938                        let mut req = fidl::new_empty!(
57939                            fidl::encoding::EmptyPayload,
57940                            fidl::encoding::DefaultFuchsiaResourceDialect
57941                        );
57942                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57943                        let control_handle =
57944                            StreamSocketControlHandle { inner: this.inner.clone() };
57945                        Ok(StreamSocketRequest::GetIpv6ReceiveTrafficClass {
57946                            responder: StreamSocketGetIpv6ReceiveTrafficClassResponder {
57947                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57948                                tx_id: header.tx_id,
57949                            },
57950                        })
57951                    }
57952                    0x6af077800c5a0b4f => {
57953                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57954                        let mut req = fidl::new_empty!(
57955                            BaseNetworkSocketSetIpv6TrafficClassRequest,
57956                            fidl::encoding::DefaultFuchsiaResourceDialect
57957                        );
57958                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
57959                        let control_handle =
57960                            StreamSocketControlHandle { inner: this.inner.clone() };
57961                        Ok(StreamSocketRequest::SetIpv6TrafficClass {
57962                            value: req.value,
57963
57964                            responder: StreamSocketSetIpv6TrafficClassResponder {
57965                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57966                                tx_id: header.tx_id,
57967                            },
57968                        })
57969                    }
57970                    0x6baf6eed8fc2f04 => {
57971                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57972                        let mut req = fidl::new_empty!(
57973                            fidl::encoding::EmptyPayload,
57974                            fidl::encoding::DefaultFuchsiaResourceDialect
57975                        );
57976                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
57977                        let control_handle =
57978                            StreamSocketControlHandle { inner: this.inner.clone() };
57979                        Ok(StreamSocketRequest::GetIpv6TrafficClass {
57980                            responder: StreamSocketGetIpv6TrafficClassResponder {
57981                                control_handle: std::mem::ManuallyDrop::new(control_handle),
57982                                tx_id: header.tx_id,
57983                            },
57984                        })
57985                    }
57986                    0x19259775b1a92768 => {
57987                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
57988                        let mut req = fidl::new_empty!(
57989                            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
57990                            fidl::encoding::DefaultFuchsiaResourceDialect
57991                        );
57992                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
57993                        let control_handle =
57994                            StreamSocketControlHandle { inner: this.inner.clone() };
57995                        Ok(StreamSocketRequest::SetIpv6ReceivePacketInfo {
57996                            value: req.value,
57997
57998                            responder: StreamSocketSetIpv6ReceivePacketInfoResponder {
57999                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58000                                tx_id: header.tx_id,
58001                            },
58002                        })
58003                    }
58004                    0x7acd4a2775baec75 => {
58005                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58006                        let mut req = fidl::new_empty!(
58007                            fidl::encoding::EmptyPayload,
58008                            fidl::encoding::DefaultFuchsiaResourceDialect
58009                        );
58010                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58011                        let control_handle =
58012                            StreamSocketControlHandle { inner: this.inner.clone() };
58013                        Ok(StreamSocketRequest::GetIpv6ReceivePacketInfo {
58014                            responder: StreamSocketGetIpv6ReceivePacketInfoResponder {
58015                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58016                                tx_id: header.tx_id,
58017                            },
58018                        })
58019                    }
58020                    0x38bf28f0dafdbac0 => {
58021                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58022                        let mut req = fidl::new_empty!(
58023                            fidl::encoding::EmptyPayload,
58024                            fidl::encoding::DefaultFuchsiaResourceDialect
58025                        );
58026                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58027                        let control_handle =
58028                            StreamSocketControlHandle { inner: this.inner.clone() };
58029                        Ok(StreamSocketRequest::GetOriginalDestination {
58030                            responder: StreamSocketGetOriginalDestinationResponder {
58031                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58032                                tx_id: header.tx_id,
58033                            },
58034                        })
58035                    }
58036                    0x29e22969a7dadc32 => {
58037                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58038                        let mut req = fidl::new_empty!(
58039                            fidl::encoding::EmptyPayload,
58040                            fidl::encoding::DefaultFuchsiaResourceDialect
58041                        );
58042                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58043                        let control_handle =
58044                            StreamSocketControlHandle { inner: this.inner.clone() };
58045                        Ok(StreamSocketRequest::Describe {
58046                            responder: StreamSocketDescribeResponder {
58047                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58048                                tx_id: header.tx_id,
58049                            },
58050                        })
58051                    }
58052                    0x3d0a65ced3d10108 => {
58053                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58054                        let mut req = fidl::new_empty!(
58055                            StreamSocketListenRequest,
58056                            fidl::encoding::DefaultFuchsiaResourceDialect
58057                        );
58058                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketListenRequest>(&header, _body_bytes, handles, &mut req)?;
58059                        let control_handle =
58060                            StreamSocketControlHandle { inner: this.inner.clone() };
58061                        Ok(StreamSocketRequest::Listen {
58062                            backlog: req.backlog,
58063
58064                            responder: StreamSocketListenResponder {
58065                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58066                                tx_id: header.tx_id,
58067                            },
58068                        })
58069                    }
58070                    0x5ab7ad620424c163 => {
58071                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58072                        let mut req = fidl::new_empty!(
58073                            StreamSocketAcceptRequest,
58074                            fidl::encoding::DefaultFuchsiaResourceDialect
58075                        );
58076                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketAcceptRequest>(&header, _body_bytes, handles, &mut req)?;
58077                        let control_handle =
58078                            StreamSocketControlHandle { inner: this.inner.clone() };
58079                        Ok(StreamSocketRequest::Accept {
58080                            want_addr: req.want_addr,
58081
58082                            responder: StreamSocketAcceptResponder {
58083                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58084                                tx_id: header.tx_id,
58085                            },
58086                        })
58087                    }
58088                    0x87cfa55d19f878f => {
58089                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58090                        let mut req = fidl::new_empty!(
58091                            fidl::encoding::EmptyPayload,
58092                            fidl::encoding::DefaultFuchsiaResourceDialect
58093                        );
58094                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58095                        let control_handle =
58096                            StreamSocketControlHandle { inner: this.inner.clone() };
58097                        Ok(StreamSocketRequest::GetInfo {
58098                            responder: StreamSocketGetInfoResponder {
58099                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58100                                tx_id: header.tx_id,
58101                            },
58102                        })
58103                    }
58104                    0x5a59b778f7333ada => {
58105                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58106                        let mut req = fidl::new_empty!(
58107                            StreamSocketSetTcpNoDelayRequest,
58108                            fidl::encoding::DefaultFuchsiaResourceDialect
58109                        );
58110                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpNoDelayRequest>(&header, _body_bytes, handles, &mut req)?;
58111                        let control_handle =
58112                            StreamSocketControlHandle { inner: this.inner.clone() };
58113                        Ok(StreamSocketRequest::SetTcpNoDelay {
58114                            value: req.value,
58115
58116                            responder: StreamSocketSetTcpNoDelayResponder {
58117                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58118                                tx_id: header.tx_id,
58119                            },
58120                        })
58121                    }
58122                    0xac219a3218b0799 => {
58123                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58124                        let mut req = fidl::new_empty!(
58125                            fidl::encoding::EmptyPayload,
58126                            fidl::encoding::DefaultFuchsiaResourceDialect
58127                        );
58128                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58129                        let control_handle =
58130                            StreamSocketControlHandle { inner: this.inner.clone() };
58131                        Ok(StreamSocketRequest::GetTcpNoDelay {
58132                            responder: StreamSocketGetTcpNoDelayResponder {
58133                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58134                                tx_id: header.tx_id,
58135                            },
58136                        })
58137                    }
58138                    0xb3d30c498266d18 => {
58139                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58140                        let mut req = fidl::new_empty!(
58141                            StreamSocketSetTcpMaxSegmentRequest,
58142                            fidl::encoding::DefaultFuchsiaResourceDialect
58143                        );
58144                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpMaxSegmentRequest>(&header, _body_bytes, handles, &mut req)?;
58145                        let control_handle =
58146                            StreamSocketControlHandle { inner: this.inner.clone() };
58147                        Ok(StreamSocketRequest::SetTcpMaxSegment {
58148                            value_bytes: req.value_bytes,
58149
58150                            responder: StreamSocketSetTcpMaxSegmentResponder {
58151                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58152                                tx_id: header.tx_id,
58153                            },
58154                        })
58155                    }
58156                    0x637404d1b4b9982c => {
58157                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58158                        let mut req = fidl::new_empty!(
58159                            fidl::encoding::EmptyPayload,
58160                            fidl::encoding::DefaultFuchsiaResourceDialect
58161                        );
58162                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58163                        let control_handle =
58164                            StreamSocketControlHandle { inner: this.inner.clone() };
58165                        Ok(StreamSocketRequest::GetTcpMaxSegment {
58166                            responder: StreamSocketGetTcpMaxSegmentResponder {
58167                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58168                                tx_id: header.tx_id,
58169                            },
58170                        })
58171                    }
58172                    0x62e26891541143a0 => {
58173                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58174                        let mut req = fidl::new_empty!(
58175                            StreamSocketSetTcpCorkRequest,
58176                            fidl::encoding::DefaultFuchsiaResourceDialect
58177                        );
58178                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpCorkRequest>(&header, _body_bytes, handles, &mut req)?;
58179                        let control_handle =
58180                            StreamSocketControlHandle { inner: this.inner.clone() };
58181                        Ok(StreamSocketRequest::SetTcpCork {
58182                            value: req.value,
58183
58184                            responder: StreamSocketSetTcpCorkResponder {
58185                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58186                                tx_id: header.tx_id,
58187                            },
58188                        })
58189                    }
58190                    0x435bb232e0e74f32 => {
58191                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58192                        let mut req = fidl::new_empty!(
58193                            fidl::encoding::EmptyPayload,
58194                            fidl::encoding::DefaultFuchsiaResourceDialect
58195                        );
58196                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58197                        let control_handle =
58198                            StreamSocketControlHandle { inner: this.inner.clone() };
58199                        Ok(StreamSocketRequest::GetTcpCork {
58200                            responder: StreamSocketGetTcpCorkResponder {
58201                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58202                                tx_id: header.tx_id,
58203                            },
58204                        })
58205                    }
58206                    0x196d053d8363c42 => {
58207                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58208                        let mut req = fidl::new_empty!(
58209                            StreamSocketSetTcpKeepAliveIdleRequest,
58210                            fidl::encoding::DefaultFuchsiaResourceDialect
58211                        );
58212                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpKeepAliveIdleRequest>(&header, _body_bytes, handles, &mut req)?;
58213                        let control_handle =
58214                            StreamSocketControlHandle { inner: this.inner.clone() };
58215                        Ok(StreamSocketRequest::SetTcpKeepAliveIdle {
58216                            value_secs: req.value_secs,
58217
58218                            responder: StreamSocketSetTcpKeepAliveIdleResponder {
58219                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58220                                tx_id: header.tx_id,
58221                            },
58222                        })
58223                    }
58224                    0x35ec58564879dac => {
58225                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58226                        let mut req = fidl::new_empty!(
58227                            fidl::encoding::EmptyPayload,
58228                            fidl::encoding::DefaultFuchsiaResourceDialect
58229                        );
58230                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58231                        let control_handle =
58232                            StreamSocketControlHandle { inner: this.inner.clone() };
58233                        Ok(StreamSocketRequest::GetTcpKeepAliveIdle {
58234                            responder: StreamSocketGetTcpKeepAliveIdleResponder {
58235                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58236                                tx_id: header.tx_id,
58237                            },
58238                        })
58239                    }
58240                    0x485ffbc2da1243f2 => {
58241                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58242                        let mut req = fidl::new_empty!(
58243                            StreamSocketSetTcpKeepAliveIntervalRequest,
58244                            fidl::encoding::DefaultFuchsiaResourceDialect
58245                        );
58246                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpKeepAliveIntervalRequest>(&header, _body_bytes, handles, &mut req)?;
58247                        let control_handle =
58248                            StreamSocketControlHandle { inner: this.inner.clone() };
58249                        Ok(StreamSocketRequest::SetTcpKeepAliveInterval {
58250                            value_secs: req.value_secs,
58251
58252                            responder: StreamSocketSetTcpKeepAliveIntervalResponder {
58253                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58254                                tx_id: header.tx_id,
58255                            },
58256                        })
58257                    }
58258                    0x264eaf46306b284 => {
58259                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58260                        let mut req = fidl::new_empty!(
58261                            fidl::encoding::EmptyPayload,
58262                            fidl::encoding::DefaultFuchsiaResourceDialect
58263                        );
58264                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58265                        let control_handle =
58266                            StreamSocketControlHandle { inner: this.inner.clone() };
58267                        Ok(StreamSocketRequest::GetTcpKeepAliveInterval {
58268                            responder: StreamSocketGetTcpKeepAliveIntervalResponder {
58269                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58270                                tx_id: header.tx_id,
58271                            },
58272                        })
58273                    }
58274                    0x2ab2e8c111708421 => {
58275                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58276                        let mut req = fidl::new_empty!(
58277                            StreamSocketSetTcpKeepAliveCountRequest,
58278                            fidl::encoding::DefaultFuchsiaResourceDialect
58279                        );
58280                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpKeepAliveCountRequest>(&header, _body_bytes, handles, &mut req)?;
58281                        let control_handle =
58282                            StreamSocketControlHandle { inner: this.inner.clone() };
58283                        Ok(StreamSocketRequest::SetTcpKeepAliveCount {
58284                            value: req.value,
58285
58286                            responder: StreamSocketSetTcpKeepAliveCountResponder {
58287                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58288                                tx_id: header.tx_id,
58289                            },
58290                        })
58291                    }
58292                    0x2f176ae271fe7a09 => {
58293                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58294                        let mut req = fidl::new_empty!(
58295                            fidl::encoding::EmptyPayload,
58296                            fidl::encoding::DefaultFuchsiaResourceDialect
58297                        );
58298                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58299                        let control_handle =
58300                            StreamSocketControlHandle { inner: this.inner.clone() };
58301                        Ok(StreamSocketRequest::GetTcpKeepAliveCount {
58302                            responder: StreamSocketGetTcpKeepAliveCountResponder {
58303                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58304                                tx_id: header.tx_id,
58305                            },
58306                        })
58307                    }
58308                    0x4dcd6ab5573c1eb3 => {
58309                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58310                        let mut req = fidl::new_empty!(
58311                            StreamSocketSetTcpSynCountRequest,
58312                            fidl::encoding::DefaultFuchsiaResourceDialect
58313                        );
58314                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpSynCountRequest>(&header, _body_bytes, handles, &mut req)?;
58315                        let control_handle =
58316                            StreamSocketControlHandle { inner: this.inner.clone() };
58317                        Ok(StreamSocketRequest::SetTcpSynCount {
58318                            value: req.value,
58319
58320                            responder: StreamSocketSetTcpSynCountResponder {
58321                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58322                                tx_id: header.tx_id,
58323                            },
58324                        })
58325                    }
58326                    0x7d457cba8f5f3ee6 => {
58327                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58328                        let mut req = fidl::new_empty!(
58329                            fidl::encoding::EmptyPayload,
58330                            fidl::encoding::DefaultFuchsiaResourceDialect
58331                        );
58332                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58333                        let control_handle =
58334                            StreamSocketControlHandle { inner: this.inner.clone() };
58335                        Ok(StreamSocketRequest::GetTcpSynCount {
58336                            responder: StreamSocketGetTcpSynCountResponder {
58337                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58338                                tx_id: header.tx_id,
58339                            },
58340                        })
58341                    }
58342                    0xd5cc1e8654d36e4 => {
58343                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58344                        let mut req = fidl::new_empty!(
58345                            StreamSocketSetTcpLingerRequest,
58346                            fidl::encoding::DefaultFuchsiaResourceDialect
58347                        );
58348                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpLingerRequest>(&header, _body_bytes, handles, &mut req)?;
58349                        let control_handle =
58350                            StreamSocketControlHandle { inner: this.inner.clone() };
58351                        Ok(StreamSocketRequest::SetTcpLinger {
58352                            value_secs: req.value_secs,
58353
58354                            responder: StreamSocketSetTcpLingerResponder {
58355                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58356                                tx_id: header.tx_id,
58357                            },
58358                        })
58359                    }
58360                    0xad870d311cf30eb => {
58361                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58362                        let mut req = fidl::new_empty!(
58363                            fidl::encoding::EmptyPayload,
58364                            fidl::encoding::DefaultFuchsiaResourceDialect
58365                        );
58366                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58367                        let control_handle =
58368                            StreamSocketControlHandle { inner: this.inner.clone() };
58369                        Ok(StreamSocketRequest::GetTcpLinger {
58370                            responder: StreamSocketGetTcpLingerResponder {
58371                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58372                                tx_id: header.tx_id,
58373                            },
58374                        })
58375                    }
58376                    0x15092f181e57c404 => {
58377                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58378                        let mut req = fidl::new_empty!(
58379                            StreamSocketSetTcpDeferAcceptRequest,
58380                            fidl::encoding::DefaultFuchsiaResourceDialect
58381                        );
58382                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpDeferAcceptRequest>(&header, _body_bytes, handles, &mut req)?;
58383                        let control_handle =
58384                            StreamSocketControlHandle { inner: this.inner.clone() };
58385                        Ok(StreamSocketRequest::SetTcpDeferAccept {
58386                            value_secs: req.value_secs,
58387
58388                            responder: StreamSocketSetTcpDeferAcceptResponder {
58389                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58390                                tx_id: header.tx_id,
58391                            },
58392                        })
58393                    }
58394                    0x64589790842cb7c6 => {
58395                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58396                        let mut req = fidl::new_empty!(
58397                            fidl::encoding::EmptyPayload,
58398                            fidl::encoding::DefaultFuchsiaResourceDialect
58399                        );
58400                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58401                        let control_handle =
58402                            StreamSocketControlHandle { inner: this.inner.clone() };
58403                        Ok(StreamSocketRequest::GetTcpDeferAccept {
58404                            responder: StreamSocketGetTcpDeferAcceptResponder {
58405                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58406                                tx_id: header.tx_id,
58407                            },
58408                        })
58409                    }
58410                    0x4a26ce07d847f1c6 => {
58411                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58412                        let mut req = fidl::new_empty!(
58413                            StreamSocketSetTcpWindowClampRequest,
58414                            fidl::encoding::DefaultFuchsiaResourceDialect
58415                        );
58416                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpWindowClampRequest>(&header, _body_bytes, handles, &mut req)?;
58417                        let control_handle =
58418                            StreamSocketControlHandle { inner: this.inner.clone() };
58419                        Ok(StreamSocketRequest::SetTcpWindowClamp {
58420                            value: req.value,
58421
58422                            responder: StreamSocketSetTcpWindowClampResponder {
58423                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58424                                tx_id: header.tx_id,
58425                            },
58426                        })
58427                    }
58428                    0x2df6b636bf0a6a4e => {
58429                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58430                        let mut req = fidl::new_empty!(
58431                            fidl::encoding::EmptyPayload,
58432                            fidl::encoding::DefaultFuchsiaResourceDialect
58433                        );
58434                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58435                        let control_handle =
58436                            StreamSocketControlHandle { inner: this.inner.clone() };
58437                        Ok(StreamSocketRequest::GetTcpWindowClamp {
58438                            responder: StreamSocketGetTcpWindowClampResponder {
58439                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58440                                tx_id: header.tx_id,
58441                            },
58442                        })
58443                    }
58444                    0x1ffb123d9f03ead2 => {
58445                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58446                        let mut req = fidl::new_empty!(
58447                            fidl::encoding::EmptyPayload,
58448                            fidl::encoding::DefaultFuchsiaResourceDialect
58449                        );
58450                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58451                        let control_handle =
58452                            StreamSocketControlHandle { inner: this.inner.clone() };
58453                        Ok(StreamSocketRequest::GetTcpInfo {
58454                            responder: StreamSocketGetTcpInfoResponder {
58455                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58456                                tx_id: header.tx_id,
58457                            },
58458                        })
58459                    }
58460                    0x6fa811be8fde7457 => {
58461                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58462                        let mut req = fidl::new_empty!(
58463                            StreamSocketSetTcpQuickAckRequest,
58464                            fidl::encoding::DefaultFuchsiaResourceDialect
58465                        );
58466                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpQuickAckRequest>(&header, _body_bytes, handles, &mut req)?;
58467                        let control_handle =
58468                            StreamSocketControlHandle { inner: this.inner.clone() };
58469                        Ok(StreamSocketRequest::SetTcpQuickAck {
58470                            value: req.value,
58471
58472                            responder: StreamSocketSetTcpQuickAckResponder {
58473                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58474                                tx_id: header.tx_id,
58475                            },
58476                        })
58477                    }
58478                    0x7356a949bef2df32 => {
58479                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58480                        let mut req = fidl::new_empty!(
58481                            fidl::encoding::EmptyPayload,
58482                            fidl::encoding::DefaultFuchsiaResourceDialect
58483                        );
58484                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58485                        let control_handle =
58486                            StreamSocketControlHandle { inner: this.inner.clone() };
58487                        Ok(StreamSocketRequest::GetTcpQuickAck {
58488                            responder: StreamSocketGetTcpQuickAckResponder {
58489                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58490                                tx_id: header.tx_id,
58491                            },
58492                        })
58493                    }
58494                    0x7924c6eabde7819e => {
58495                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58496                        let mut req = fidl::new_empty!(
58497                            StreamSocketSetTcpCongestionRequest,
58498                            fidl::encoding::DefaultFuchsiaResourceDialect
58499                        );
58500                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpCongestionRequest>(&header, _body_bytes, handles, &mut req)?;
58501                        let control_handle =
58502                            StreamSocketControlHandle { inner: this.inner.clone() };
58503                        Ok(StreamSocketRequest::SetTcpCongestion {
58504                            value: req.value,
58505
58506                            responder: StreamSocketSetTcpCongestionResponder {
58507                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58508                                tx_id: header.tx_id,
58509                            },
58510                        })
58511                    }
58512                    0x11e16397e1b72a47 => {
58513                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58514                        let mut req = fidl::new_empty!(
58515                            fidl::encoding::EmptyPayload,
58516                            fidl::encoding::DefaultFuchsiaResourceDialect
58517                        );
58518                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58519                        let control_handle =
58520                            StreamSocketControlHandle { inner: this.inner.clone() };
58521                        Ok(StreamSocketRequest::GetTcpCongestion {
58522                            responder: StreamSocketGetTcpCongestionResponder {
58523                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58524                                tx_id: header.tx_id,
58525                            },
58526                        })
58527                    }
58528                    0x6b459e81c3741a60 => {
58529                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58530                        let mut req = fidl::new_empty!(
58531                            StreamSocketSetTcpUserTimeoutRequest,
58532                            fidl::encoding::DefaultFuchsiaResourceDialect
58533                        );
58534                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<StreamSocketSetTcpUserTimeoutRequest>(&header, _body_bytes, handles, &mut req)?;
58535                        let control_handle =
58536                            StreamSocketControlHandle { inner: this.inner.clone() };
58537                        Ok(StreamSocketRequest::SetTcpUserTimeout {
58538                            value_millis: req.value_millis,
58539
58540                            responder: StreamSocketSetTcpUserTimeoutResponder {
58541                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58542                                tx_id: header.tx_id,
58543                            },
58544                        })
58545                    }
58546                    0x24bbd5858ad8c380 => {
58547                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
58548                        let mut req = fidl::new_empty!(
58549                            fidl::encoding::EmptyPayload,
58550                            fidl::encoding::DefaultFuchsiaResourceDialect
58551                        );
58552                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
58553                        let control_handle =
58554                            StreamSocketControlHandle { inner: this.inner.clone() };
58555                        Ok(StreamSocketRequest::GetTcpUserTimeout {
58556                            responder: StreamSocketGetTcpUserTimeoutResponder {
58557                                control_handle: std::mem::ManuallyDrop::new(control_handle),
58558                                tx_id: header.tx_id,
58559                            },
58560                        })
58561                    }
58562                    _ => Err(fidl::Error::UnknownOrdinal {
58563                        ordinal: header.ordinal,
58564                        protocol_name:
58565                            <StreamSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
58566                    }),
58567                }))
58568            },
58569        )
58570    }
58571}
58572
58573/// A stream socket.
58574///
58575/// All methods on this type are nonblocking; their exact behaviors match their
58576/// Linux counterparts.
58577///
58578/// *Warning:* This protocol is not yet ready for direct use by clients.
58579/// Instead, clients should use the BSD sockets API to interact with sockets.
58580/// We plan to change this protocol substantially and clients that couple
58581/// directly to this protocol will make those changes more difficult.
58582#[derive(Debug)]
58583pub enum StreamSocketRequest {
58584    Clone {
58585        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
58586        control_handle: StreamSocketControlHandle,
58587    },
58588    /// Terminates the connection.
58589    ///
58590    /// After calling `Close`, the client must not send any other requests.
58591    ///
58592    /// Servers, after sending the status response, should close the connection
58593    /// regardless of status and without sending an epitaph.
58594    ///
58595    /// Closing the client end of the channel should be semantically equivalent
58596    /// to calling `Close` without knowing when the close has completed or its
58597    /// status.
58598    Close {
58599        responder: StreamSocketCloseResponder,
58600    },
58601    Query {
58602        responder: StreamSocketQueryResponder,
58603    },
58604    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
58605    SetReuseAddress {
58606        value: bool,
58607        responder: StreamSocketSetReuseAddressResponder,
58608    },
58609    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
58610    GetReuseAddress {
58611        responder: StreamSocketGetReuseAddressResponder,
58612    },
58613    /// Get `SOL_SOCKET` -> `SO_ERROR`.
58614    /// Returns the last error if there is an error set on the socket.
58615    GetError {
58616        responder: StreamSocketGetErrorResponder,
58617    },
58618    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
58619    SetBroadcast {
58620        value: bool,
58621        responder: StreamSocketSetBroadcastResponder,
58622    },
58623    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
58624    GetBroadcast {
58625        responder: StreamSocketGetBroadcastResponder,
58626    },
58627    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
58628    SetSendBuffer {
58629        value_bytes: u64,
58630        responder: StreamSocketSetSendBufferResponder,
58631    },
58632    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
58633    GetSendBuffer {
58634        responder: StreamSocketGetSendBufferResponder,
58635    },
58636    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
58637    SetReceiveBuffer {
58638        value_bytes: u64,
58639        responder: StreamSocketSetReceiveBufferResponder,
58640    },
58641    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
58642    GetReceiveBuffer {
58643        responder: StreamSocketGetReceiveBufferResponder,
58644    },
58645    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
58646    SetKeepAlive {
58647        value: bool,
58648        responder: StreamSocketSetKeepAliveResponder,
58649    },
58650    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
58651    GetKeepAlive {
58652        responder: StreamSocketGetKeepAliveResponder,
58653    },
58654    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
58655    SetOutOfBandInline {
58656        value: bool,
58657        responder: StreamSocketSetOutOfBandInlineResponder,
58658    },
58659    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
58660    GetOutOfBandInline {
58661        responder: StreamSocketGetOutOfBandInlineResponder,
58662    },
58663    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
58664    SetNoCheck {
58665        value: bool,
58666        responder: StreamSocketSetNoCheckResponder,
58667    },
58668    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
58669    GetNoCheck {
58670        responder: StreamSocketGetNoCheckResponder,
58671    },
58672    /// Set `SOL_SOCKET` -> `SO_LINGER`.
58673    SetLinger {
58674        linger: bool,
58675        length_secs: u32,
58676        responder: StreamSocketSetLingerResponder,
58677    },
58678    /// Get `SOL_SOCKET` -> `SO_LINGER`.
58679    GetLinger {
58680        responder: StreamSocketGetLingerResponder,
58681    },
58682    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
58683    SetReusePort {
58684        value: bool,
58685        responder: StreamSocketSetReusePortResponder,
58686    },
58687    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
58688    GetReusePort {
58689        responder: StreamSocketGetReusePortResponder,
58690    },
58691    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
58692    GetAcceptConn {
58693        responder: StreamSocketGetAcceptConnResponder,
58694    },
58695    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
58696    SetBindToDevice {
58697        value: String,
58698        responder: StreamSocketSetBindToDeviceResponder,
58699    },
58700    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
58701    GetBindToDevice {
58702        responder: StreamSocketGetBindToDeviceResponder,
58703    },
58704    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
58705    /// If `value` is 0, this clears the bound interface.
58706    SetBindToInterfaceIndex {
58707        value: u64,
58708        responder: StreamSocketSetBindToInterfaceIndexResponder,
58709    },
58710    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
58711    GetBindToInterfaceIndex {
58712        responder: StreamSocketGetBindToInterfaceIndexResponder,
58713    },
58714    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
58715    SetTimestamp {
58716        value: TimestampOption,
58717        responder: StreamSocketSetTimestampResponder,
58718    },
58719    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
58720    GetTimestamp {
58721        responder: StreamSocketGetTimestampResponder,
58722    },
58723    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
58724    /// unlike the standard SO_MARK, this API has multiple mark domains and each
58725    /// mark can be set independently in each domain.
58726    SetMark {
58727        domain: fidl_fuchsia_net::MarkDomain,
58728        mark: OptionalUint32,
58729        responder: StreamSocketSetMarkResponder,
58730    },
58731    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
58732    /// unlike the standard SO_MARK, this API has multiple mark domains and each
58733    /// mark can be retrieved independently in each domain.
58734    GetMark {
58735        domain: fidl_fuchsia_net::MarkDomain,
58736        responder: StreamSocketGetMarkResponder,
58737    },
58738    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
58739    GetCookie {
58740        responder: StreamSocketGetCookieResponder,
58741    },
58742    /// Sets the local address used for the socket.
58743    Bind {
58744        addr: fidl_fuchsia_net::SocketAddress,
58745        responder: StreamSocketBindResponder,
58746    },
58747    /// Initiates a connection to a remote address.
58748    Connect {
58749        addr: fidl_fuchsia_net::SocketAddress,
58750        responder: StreamSocketConnectResponder,
58751    },
58752    /// Clears connection information from this socket.
58753    Disconnect {
58754        responder: StreamSocketDisconnectResponder,
58755    },
58756    /// Retrieves the local socket address.
58757    GetSockName {
58758        responder: StreamSocketGetSockNameResponder,
58759    },
58760    /// Retrieves the remote socket address.
58761    GetPeerName {
58762        responder: StreamSocketGetPeerNameResponder,
58763    },
58764    /// Shuts down part of the socket.
58765    Shutdown {
58766        mode: ShutdownMode,
58767        responder: StreamSocketShutdownResponder,
58768    },
58769    /// Set `SOL_IP` -> `IP_TOS`.
58770    SetIpTypeOfService {
58771        value: u8,
58772        responder: StreamSocketSetIpTypeOfServiceResponder,
58773    },
58774    /// Get `SOL_IP` -> `IP_TOS`.
58775    GetIpTypeOfService {
58776        responder: StreamSocketGetIpTypeOfServiceResponder,
58777    },
58778    /// Set `SOL_IP` -> `IP_TTL`.
58779    SetIpTtl {
58780        value: OptionalUint8,
58781        responder: StreamSocketSetIpTtlResponder,
58782    },
58783    /// Get `SOL_IP` -> `IP_TTL`.
58784    GetIpTtl {
58785        responder: StreamSocketGetIpTtlResponder,
58786    },
58787    /// Set `SOL_IP` -> `IP_PKTINFO`.
58788    SetIpPacketInfo {
58789        value: bool,
58790        responder: StreamSocketSetIpPacketInfoResponder,
58791    },
58792    /// Get `SOL_IP` -> `IP_PKTINFO`.
58793    GetIpPacketInfo {
58794        responder: StreamSocketGetIpPacketInfoResponder,
58795    },
58796    /// Set `SOL_IP` -> `IP_RECVTOS`.
58797    SetIpReceiveTypeOfService {
58798        value: bool,
58799        responder: StreamSocketSetIpReceiveTypeOfServiceResponder,
58800    },
58801    /// Get `SOL_IP` -> `IP_RECVTOS`.
58802    GetIpReceiveTypeOfService {
58803        responder: StreamSocketGetIpReceiveTypeOfServiceResponder,
58804    },
58805    /// Set `SOL_IP` -> `IP_RECVTTL`.
58806    SetIpReceiveTtl {
58807        value: bool,
58808        responder: StreamSocketSetIpReceiveTtlResponder,
58809    },
58810    /// Get `SOL_IP` -> `IP_RECVTTL`.
58811    GetIpReceiveTtl {
58812        responder: StreamSocketGetIpReceiveTtlResponder,
58813    },
58814    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
58815    SetIpMulticastInterface {
58816        iface: u64,
58817        address: fidl_fuchsia_net::Ipv4Address,
58818        responder: StreamSocketSetIpMulticastInterfaceResponder,
58819    },
58820    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
58821    GetIpMulticastInterface {
58822        responder: StreamSocketGetIpMulticastInterfaceResponder,
58823    },
58824    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
58825    SetIpMulticastTtl {
58826        value: OptionalUint8,
58827        responder: StreamSocketSetIpMulticastTtlResponder,
58828    },
58829    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
58830    GetIpMulticastTtl {
58831        responder: StreamSocketGetIpMulticastTtlResponder,
58832    },
58833    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
58834    SetIpMulticastLoopback {
58835        value: bool,
58836        responder: StreamSocketSetIpMulticastLoopbackResponder,
58837    },
58838    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
58839    GetIpMulticastLoopback {
58840        responder: StreamSocketGetIpMulticastLoopbackResponder,
58841    },
58842    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
58843    AddIpMembership {
58844        membership: IpMulticastMembership,
58845        responder: StreamSocketAddIpMembershipResponder,
58846    },
58847    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
58848    DropIpMembership {
58849        membership: IpMulticastMembership,
58850        responder: StreamSocketDropIpMembershipResponder,
58851    },
58852    /// Set `SOL_IP` -> `IP_TRANSPARENT`
58853    SetIpTransparent {
58854        value: bool,
58855        responder: StreamSocketSetIpTransparentResponder,
58856    },
58857    /// Get `SOL_IP` -> `IP_TRANSPARENT`
58858    GetIpTransparent {
58859        responder: StreamSocketGetIpTransparentResponder,
58860    },
58861    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
58862    SetIpReceiveOriginalDestinationAddress {
58863        value: bool,
58864        responder: StreamSocketSetIpReceiveOriginalDestinationAddressResponder,
58865    },
58866    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
58867    GetIpReceiveOriginalDestinationAddress {
58868        responder: StreamSocketGetIpReceiveOriginalDestinationAddressResponder,
58869    },
58870    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
58871    AddIpv6Membership {
58872        membership: Ipv6MulticastMembership,
58873        responder: StreamSocketAddIpv6MembershipResponder,
58874    },
58875    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
58876    DropIpv6Membership {
58877        membership: Ipv6MulticastMembership,
58878        responder: StreamSocketDropIpv6MembershipResponder,
58879    },
58880    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
58881    SetIpv6MulticastInterface {
58882        value: u64,
58883        responder: StreamSocketSetIpv6MulticastInterfaceResponder,
58884    },
58885    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
58886    GetIpv6MulticastInterface {
58887        responder: StreamSocketGetIpv6MulticastInterfaceResponder,
58888    },
58889    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
58890    SetIpv6UnicastHops {
58891        value: OptionalUint8,
58892        responder: StreamSocketSetIpv6UnicastHopsResponder,
58893    },
58894    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
58895    GetIpv6UnicastHops {
58896        responder: StreamSocketGetIpv6UnicastHopsResponder,
58897    },
58898    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
58899    SetIpv6ReceiveHopLimit {
58900        value: bool,
58901        responder: StreamSocketSetIpv6ReceiveHopLimitResponder,
58902    },
58903    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
58904    GetIpv6ReceiveHopLimit {
58905        responder: StreamSocketGetIpv6ReceiveHopLimitResponder,
58906    },
58907    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
58908    SetIpv6MulticastHops {
58909        value: OptionalUint8,
58910        responder: StreamSocketSetIpv6MulticastHopsResponder,
58911    },
58912    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
58913    GetIpv6MulticastHops {
58914        responder: StreamSocketGetIpv6MulticastHopsResponder,
58915    },
58916    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
58917    SetIpv6MulticastLoopback {
58918        value: bool,
58919        responder: StreamSocketSetIpv6MulticastLoopbackResponder,
58920    },
58921    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
58922    GetIpv6MulticastLoopback {
58923        responder: StreamSocketGetIpv6MulticastLoopbackResponder,
58924    },
58925    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
58926    SetIpv6Only {
58927        value: bool,
58928        responder: StreamSocketSetIpv6OnlyResponder,
58929    },
58930    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
58931    GetIpv6Only {
58932        responder: StreamSocketGetIpv6OnlyResponder,
58933    },
58934    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
58935    SetIpv6ReceiveTrafficClass {
58936        value: bool,
58937        responder: StreamSocketSetIpv6ReceiveTrafficClassResponder,
58938    },
58939    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
58940    GetIpv6ReceiveTrafficClass {
58941        responder: StreamSocketGetIpv6ReceiveTrafficClassResponder,
58942    },
58943    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
58944    SetIpv6TrafficClass {
58945        value: OptionalUint8,
58946        responder: StreamSocketSetIpv6TrafficClassResponder,
58947    },
58948    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
58949    GetIpv6TrafficClass {
58950        responder: StreamSocketGetIpv6TrafficClassResponder,
58951    },
58952    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
58953    SetIpv6ReceivePacketInfo {
58954        value: bool,
58955        responder: StreamSocketSetIpv6ReceivePacketInfoResponder,
58956    },
58957    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
58958    GetIpv6ReceivePacketInfo {
58959        responder: StreamSocketGetIpv6ReceivePacketInfoResponder,
58960    },
58961    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
58962    GetOriginalDestination {
58963        responder: StreamSocketGetOriginalDestinationResponder,
58964    },
58965    Describe {
58966        responder: StreamSocketDescribeResponder,
58967    },
58968    /// Begins listening for new incoming connections. At most `backlog`
58969    /// connections will be buffered.
58970    Listen {
58971        backlog: i16,
58972        responder: StreamSocketListenResponder,
58973    },
58974    /// Accepts a buffered incoming connection.
58975    Accept {
58976        want_addr: bool,
58977        responder: StreamSocketAcceptResponder,
58978    },
58979    /// Retrieves creation information from the socket.
58980    GetInfo {
58981        responder: StreamSocketGetInfoResponder,
58982    },
58983    /// Set `SOL_TCP` -> `TCP_NODELAY`.
58984    SetTcpNoDelay {
58985        value: bool,
58986        responder: StreamSocketSetTcpNoDelayResponder,
58987    },
58988    /// Get `SOL_TCP` -> `TCP_NODELAY`.
58989    GetTcpNoDelay {
58990        responder: StreamSocketGetTcpNoDelayResponder,
58991    },
58992    /// Set `SOL_TCP` -> `TCP_MAXSEG`.
58993    SetTcpMaxSegment {
58994        value_bytes: u32,
58995        responder: StreamSocketSetTcpMaxSegmentResponder,
58996    },
58997    /// Get `SOL_TCP` -> `TCP_MAXSEG`.
58998    GetTcpMaxSegment {
58999        responder: StreamSocketGetTcpMaxSegmentResponder,
59000    },
59001    /// Set `SOL_TCP` -> `TCP_CORK`.
59002    SetTcpCork {
59003        value: bool,
59004        responder: StreamSocketSetTcpCorkResponder,
59005    },
59006    /// Get `SOL_TCP` -> `TCP_CORK`.
59007    GetTcpCork {
59008        responder: StreamSocketGetTcpCorkResponder,
59009    },
59010    /// Set `SOL_TCP` -> `TCP_KEEPIDLE`.
59011    SetTcpKeepAliveIdle {
59012        value_secs: u32,
59013        responder: StreamSocketSetTcpKeepAliveIdleResponder,
59014    },
59015    /// Get `SOL_TCP` -> `TCP_KEEPIDLE`.
59016    GetTcpKeepAliveIdle {
59017        responder: StreamSocketGetTcpKeepAliveIdleResponder,
59018    },
59019    /// Set `SOL_TCP` -> `TCP_KEEPINTVL`.
59020    SetTcpKeepAliveInterval {
59021        value_secs: u32,
59022        responder: StreamSocketSetTcpKeepAliveIntervalResponder,
59023    },
59024    /// Get `SOL_TCP` -> `TCP_KEEPINTVL`.
59025    GetTcpKeepAliveInterval {
59026        responder: StreamSocketGetTcpKeepAliveIntervalResponder,
59027    },
59028    /// Set `SOL_TCP` -> `TCP_KEEPCNT`.
59029    SetTcpKeepAliveCount {
59030        value: u32,
59031        responder: StreamSocketSetTcpKeepAliveCountResponder,
59032    },
59033    /// Get `SOL_TCP` -> `TCP_KEEPCNT`.
59034    GetTcpKeepAliveCount {
59035        responder: StreamSocketGetTcpKeepAliveCountResponder,
59036    },
59037    /// Set `SOL_TCP` -> `TCP_SYNCNT`.
59038    SetTcpSynCount {
59039        value: u32,
59040        responder: StreamSocketSetTcpSynCountResponder,
59041    },
59042    /// Get `SOL_TCP` -> `TCP_SYNCNT`.
59043    GetTcpSynCount {
59044        responder: StreamSocketGetTcpSynCountResponder,
59045    },
59046    /// Set `SOL_TCP` -> `TCP_LINGER2`.
59047    SetTcpLinger {
59048        value_secs: OptionalUint32,
59049        responder: StreamSocketSetTcpLingerResponder,
59050    },
59051    /// Get `SOL_TCP` -> `TCP_LINGER2`.
59052    GetTcpLinger {
59053        responder: StreamSocketGetTcpLingerResponder,
59054    },
59055    /// Set `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
59056    SetTcpDeferAccept {
59057        value_secs: u32,
59058        responder: StreamSocketSetTcpDeferAcceptResponder,
59059    },
59060    /// Get `SOL_TCP` -> `TCP_DEFER_ACCEPT`.
59061    GetTcpDeferAccept {
59062        responder: StreamSocketGetTcpDeferAcceptResponder,
59063    },
59064    /// Set `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
59065    SetTcpWindowClamp {
59066        value: u32,
59067        responder: StreamSocketSetTcpWindowClampResponder,
59068    },
59069    /// Get `SOL_TCP` -> `TCP_WINDOW_CLAMP`.
59070    GetTcpWindowClamp {
59071        responder: StreamSocketGetTcpWindowClampResponder,
59072    },
59073    /// Get `SOL_TCP` -> `TCP_INFO`.
59074    GetTcpInfo {
59075        responder: StreamSocketGetTcpInfoResponder,
59076    },
59077    /// Set `SOL_TCP` -> `TCP_QUICKACK`.
59078    SetTcpQuickAck {
59079        value: bool,
59080        responder: StreamSocketSetTcpQuickAckResponder,
59081    },
59082    /// Get `SOL_TCP` -> `TCP_QUICKACK`.
59083    GetTcpQuickAck {
59084        responder: StreamSocketGetTcpQuickAckResponder,
59085    },
59086    /// Set `SOL_TCP` -> `TCP_CONGESTION`.
59087    SetTcpCongestion {
59088        value: TcpCongestionControl,
59089        responder: StreamSocketSetTcpCongestionResponder,
59090    },
59091    /// Get `SOL_TCP` -> `TCP_CONGESTION`.
59092    GetTcpCongestion {
59093        responder: StreamSocketGetTcpCongestionResponder,
59094    },
59095    /// Set `SOL_TCP` -> `TCP_USER_TIMEOUT`.
59096    SetTcpUserTimeout {
59097        value_millis: u32,
59098        responder: StreamSocketSetTcpUserTimeoutResponder,
59099    },
59100    /// Get `SOL_TCP` -> `TCP_USER_TIMEOUT`.
59101    GetTcpUserTimeout {
59102        responder: StreamSocketGetTcpUserTimeoutResponder,
59103    },
59104}
59105
59106impl StreamSocketRequest {
59107    #[allow(irrefutable_let_patterns)]
59108    pub fn into_clone(
59109        self,
59110    ) -> Option<(
59111        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
59112        StreamSocketControlHandle,
59113    )> {
59114        if let StreamSocketRequest::Clone { request, control_handle } = self {
59115            Some((request, control_handle))
59116        } else {
59117            None
59118        }
59119    }
59120
59121    #[allow(irrefutable_let_patterns)]
59122    pub fn into_close(self) -> Option<(StreamSocketCloseResponder)> {
59123        if let StreamSocketRequest::Close { responder } = self { Some((responder)) } else { None }
59124    }
59125
59126    #[allow(irrefutable_let_patterns)]
59127    pub fn into_query(self) -> Option<(StreamSocketQueryResponder)> {
59128        if let StreamSocketRequest::Query { responder } = self { Some((responder)) } else { None }
59129    }
59130
59131    #[allow(irrefutable_let_patterns)]
59132    pub fn into_set_reuse_address(self) -> Option<(bool, StreamSocketSetReuseAddressResponder)> {
59133        if let StreamSocketRequest::SetReuseAddress { value, responder } = self {
59134            Some((value, responder))
59135        } else {
59136            None
59137        }
59138    }
59139
59140    #[allow(irrefutable_let_patterns)]
59141    pub fn into_get_reuse_address(self) -> Option<(StreamSocketGetReuseAddressResponder)> {
59142        if let StreamSocketRequest::GetReuseAddress { responder } = self {
59143            Some((responder))
59144        } else {
59145            None
59146        }
59147    }
59148
59149    #[allow(irrefutable_let_patterns)]
59150    pub fn into_get_error(self) -> Option<(StreamSocketGetErrorResponder)> {
59151        if let StreamSocketRequest::GetError { responder } = self {
59152            Some((responder))
59153        } else {
59154            None
59155        }
59156    }
59157
59158    #[allow(irrefutable_let_patterns)]
59159    pub fn into_set_broadcast(self) -> Option<(bool, StreamSocketSetBroadcastResponder)> {
59160        if let StreamSocketRequest::SetBroadcast { value, responder } = self {
59161            Some((value, responder))
59162        } else {
59163            None
59164        }
59165    }
59166
59167    #[allow(irrefutable_let_patterns)]
59168    pub fn into_get_broadcast(self) -> Option<(StreamSocketGetBroadcastResponder)> {
59169        if let StreamSocketRequest::GetBroadcast { responder } = self {
59170            Some((responder))
59171        } else {
59172            None
59173        }
59174    }
59175
59176    #[allow(irrefutable_let_patterns)]
59177    pub fn into_set_send_buffer(self) -> Option<(u64, StreamSocketSetSendBufferResponder)> {
59178        if let StreamSocketRequest::SetSendBuffer { value_bytes, responder } = self {
59179            Some((value_bytes, responder))
59180        } else {
59181            None
59182        }
59183    }
59184
59185    #[allow(irrefutable_let_patterns)]
59186    pub fn into_get_send_buffer(self) -> Option<(StreamSocketGetSendBufferResponder)> {
59187        if let StreamSocketRequest::GetSendBuffer { responder } = self {
59188            Some((responder))
59189        } else {
59190            None
59191        }
59192    }
59193
59194    #[allow(irrefutable_let_patterns)]
59195    pub fn into_set_receive_buffer(self) -> Option<(u64, StreamSocketSetReceiveBufferResponder)> {
59196        if let StreamSocketRequest::SetReceiveBuffer { value_bytes, responder } = self {
59197            Some((value_bytes, responder))
59198        } else {
59199            None
59200        }
59201    }
59202
59203    #[allow(irrefutable_let_patterns)]
59204    pub fn into_get_receive_buffer(self) -> Option<(StreamSocketGetReceiveBufferResponder)> {
59205        if let StreamSocketRequest::GetReceiveBuffer { responder } = self {
59206            Some((responder))
59207        } else {
59208            None
59209        }
59210    }
59211
59212    #[allow(irrefutable_let_patterns)]
59213    pub fn into_set_keep_alive(self) -> Option<(bool, StreamSocketSetKeepAliveResponder)> {
59214        if let StreamSocketRequest::SetKeepAlive { value, responder } = self {
59215            Some((value, responder))
59216        } else {
59217            None
59218        }
59219    }
59220
59221    #[allow(irrefutable_let_patterns)]
59222    pub fn into_get_keep_alive(self) -> Option<(StreamSocketGetKeepAliveResponder)> {
59223        if let StreamSocketRequest::GetKeepAlive { responder } = self {
59224            Some((responder))
59225        } else {
59226            None
59227        }
59228    }
59229
59230    #[allow(irrefutable_let_patterns)]
59231    pub fn into_set_out_of_band_inline(
59232        self,
59233    ) -> Option<(bool, StreamSocketSetOutOfBandInlineResponder)> {
59234        if let StreamSocketRequest::SetOutOfBandInline { value, responder } = self {
59235            Some((value, responder))
59236        } else {
59237            None
59238        }
59239    }
59240
59241    #[allow(irrefutable_let_patterns)]
59242    pub fn into_get_out_of_band_inline(self) -> Option<(StreamSocketGetOutOfBandInlineResponder)> {
59243        if let StreamSocketRequest::GetOutOfBandInline { responder } = self {
59244            Some((responder))
59245        } else {
59246            None
59247        }
59248    }
59249
59250    #[allow(irrefutable_let_patterns)]
59251    pub fn into_set_no_check(self) -> Option<(bool, StreamSocketSetNoCheckResponder)> {
59252        if let StreamSocketRequest::SetNoCheck { value, responder } = self {
59253            Some((value, responder))
59254        } else {
59255            None
59256        }
59257    }
59258
59259    #[allow(irrefutable_let_patterns)]
59260    pub fn into_get_no_check(self) -> Option<(StreamSocketGetNoCheckResponder)> {
59261        if let StreamSocketRequest::GetNoCheck { responder } = self {
59262            Some((responder))
59263        } else {
59264            None
59265        }
59266    }
59267
59268    #[allow(irrefutable_let_patterns)]
59269    pub fn into_set_linger(self) -> Option<(bool, u32, StreamSocketSetLingerResponder)> {
59270        if let StreamSocketRequest::SetLinger { linger, length_secs, responder } = self {
59271            Some((linger, length_secs, responder))
59272        } else {
59273            None
59274        }
59275    }
59276
59277    #[allow(irrefutable_let_patterns)]
59278    pub fn into_get_linger(self) -> Option<(StreamSocketGetLingerResponder)> {
59279        if let StreamSocketRequest::GetLinger { responder } = self {
59280            Some((responder))
59281        } else {
59282            None
59283        }
59284    }
59285
59286    #[allow(irrefutable_let_patterns)]
59287    pub fn into_set_reuse_port(self) -> Option<(bool, StreamSocketSetReusePortResponder)> {
59288        if let StreamSocketRequest::SetReusePort { value, responder } = self {
59289            Some((value, responder))
59290        } else {
59291            None
59292        }
59293    }
59294
59295    #[allow(irrefutable_let_patterns)]
59296    pub fn into_get_reuse_port(self) -> Option<(StreamSocketGetReusePortResponder)> {
59297        if let StreamSocketRequest::GetReusePort { responder } = self {
59298            Some((responder))
59299        } else {
59300            None
59301        }
59302    }
59303
59304    #[allow(irrefutable_let_patterns)]
59305    pub fn into_get_accept_conn(self) -> Option<(StreamSocketGetAcceptConnResponder)> {
59306        if let StreamSocketRequest::GetAcceptConn { responder } = self {
59307            Some((responder))
59308        } else {
59309            None
59310        }
59311    }
59312
59313    #[allow(irrefutable_let_patterns)]
59314    pub fn into_set_bind_to_device(self) -> Option<(String, StreamSocketSetBindToDeviceResponder)> {
59315        if let StreamSocketRequest::SetBindToDevice { value, responder } = self {
59316            Some((value, responder))
59317        } else {
59318            None
59319        }
59320    }
59321
59322    #[allow(irrefutable_let_patterns)]
59323    pub fn into_get_bind_to_device(self) -> Option<(StreamSocketGetBindToDeviceResponder)> {
59324        if let StreamSocketRequest::GetBindToDevice { responder } = self {
59325            Some((responder))
59326        } else {
59327            None
59328        }
59329    }
59330
59331    #[allow(irrefutable_let_patterns)]
59332    pub fn into_set_bind_to_interface_index(
59333        self,
59334    ) -> Option<(u64, StreamSocketSetBindToInterfaceIndexResponder)> {
59335        if let StreamSocketRequest::SetBindToInterfaceIndex { value, responder } = self {
59336            Some((value, responder))
59337        } else {
59338            None
59339        }
59340    }
59341
59342    #[allow(irrefutable_let_patterns)]
59343    pub fn into_get_bind_to_interface_index(
59344        self,
59345    ) -> Option<(StreamSocketGetBindToInterfaceIndexResponder)> {
59346        if let StreamSocketRequest::GetBindToInterfaceIndex { responder } = self {
59347            Some((responder))
59348        } else {
59349            None
59350        }
59351    }
59352
59353    #[allow(irrefutable_let_patterns)]
59354    pub fn into_set_timestamp(
59355        self,
59356    ) -> Option<(TimestampOption, StreamSocketSetTimestampResponder)> {
59357        if let StreamSocketRequest::SetTimestamp { value, responder } = self {
59358            Some((value, responder))
59359        } else {
59360            None
59361        }
59362    }
59363
59364    #[allow(irrefutable_let_patterns)]
59365    pub fn into_get_timestamp(self) -> Option<(StreamSocketGetTimestampResponder)> {
59366        if let StreamSocketRequest::GetTimestamp { responder } = self {
59367            Some((responder))
59368        } else {
59369            None
59370        }
59371    }
59372
59373    #[allow(irrefutable_let_patterns)]
59374    pub fn into_set_mark(
59375        self,
59376    ) -> Option<(fidl_fuchsia_net::MarkDomain, OptionalUint32, StreamSocketSetMarkResponder)> {
59377        if let StreamSocketRequest::SetMark { domain, mark, responder } = self {
59378            Some((domain, mark, responder))
59379        } else {
59380            None
59381        }
59382    }
59383
59384    #[allow(irrefutable_let_patterns)]
59385    pub fn into_get_mark(
59386        self,
59387    ) -> Option<(fidl_fuchsia_net::MarkDomain, StreamSocketGetMarkResponder)> {
59388        if let StreamSocketRequest::GetMark { domain, responder } = self {
59389            Some((domain, responder))
59390        } else {
59391            None
59392        }
59393    }
59394
59395    #[allow(irrefutable_let_patterns)]
59396    pub fn into_get_cookie(self) -> Option<(StreamSocketGetCookieResponder)> {
59397        if let StreamSocketRequest::GetCookie { responder } = self {
59398            Some((responder))
59399        } else {
59400            None
59401        }
59402    }
59403
59404    #[allow(irrefutable_let_patterns)]
59405    pub fn into_bind(self) -> Option<(fidl_fuchsia_net::SocketAddress, StreamSocketBindResponder)> {
59406        if let StreamSocketRequest::Bind { addr, responder } = self {
59407            Some((addr, responder))
59408        } else {
59409            None
59410        }
59411    }
59412
59413    #[allow(irrefutable_let_patterns)]
59414    pub fn into_connect(
59415        self,
59416    ) -> Option<(fidl_fuchsia_net::SocketAddress, StreamSocketConnectResponder)> {
59417        if let StreamSocketRequest::Connect { addr, responder } = self {
59418            Some((addr, responder))
59419        } else {
59420            None
59421        }
59422    }
59423
59424    #[allow(irrefutable_let_patterns)]
59425    pub fn into_disconnect(self) -> Option<(StreamSocketDisconnectResponder)> {
59426        if let StreamSocketRequest::Disconnect { responder } = self {
59427            Some((responder))
59428        } else {
59429            None
59430        }
59431    }
59432
59433    #[allow(irrefutable_let_patterns)]
59434    pub fn into_get_sock_name(self) -> Option<(StreamSocketGetSockNameResponder)> {
59435        if let StreamSocketRequest::GetSockName { responder } = self {
59436            Some((responder))
59437        } else {
59438            None
59439        }
59440    }
59441
59442    #[allow(irrefutable_let_patterns)]
59443    pub fn into_get_peer_name(self) -> Option<(StreamSocketGetPeerNameResponder)> {
59444        if let StreamSocketRequest::GetPeerName { responder } = self {
59445            Some((responder))
59446        } else {
59447            None
59448        }
59449    }
59450
59451    #[allow(irrefutable_let_patterns)]
59452    pub fn into_shutdown(self) -> Option<(ShutdownMode, StreamSocketShutdownResponder)> {
59453        if let StreamSocketRequest::Shutdown { mode, responder } = self {
59454            Some((mode, responder))
59455        } else {
59456            None
59457        }
59458    }
59459
59460    #[allow(irrefutable_let_patterns)]
59461    pub fn into_set_ip_type_of_service(
59462        self,
59463    ) -> Option<(u8, StreamSocketSetIpTypeOfServiceResponder)> {
59464        if let StreamSocketRequest::SetIpTypeOfService { value, responder } = self {
59465            Some((value, responder))
59466        } else {
59467            None
59468        }
59469    }
59470
59471    #[allow(irrefutable_let_patterns)]
59472    pub fn into_get_ip_type_of_service(self) -> Option<(StreamSocketGetIpTypeOfServiceResponder)> {
59473        if let StreamSocketRequest::GetIpTypeOfService { responder } = self {
59474            Some((responder))
59475        } else {
59476            None
59477        }
59478    }
59479
59480    #[allow(irrefutable_let_patterns)]
59481    pub fn into_set_ip_ttl(self) -> Option<(OptionalUint8, StreamSocketSetIpTtlResponder)> {
59482        if let StreamSocketRequest::SetIpTtl { value, responder } = self {
59483            Some((value, responder))
59484        } else {
59485            None
59486        }
59487    }
59488
59489    #[allow(irrefutable_let_patterns)]
59490    pub fn into_get_ip_ttl(self) -> Option<(StreamSocketGetIpTtlResponder)> {
59491        if let StreamSocketRequest::GetIpTtl { responder } = self {
59492            Some((responder))
59493        } else {
59494            None
59495        }
59496    }
59497
59498    #[allow(irrefutable_let_patterns)]
59499    pub fn into_set_ip_packet_info(self) -> Option<(bool, StreamSocketSetIpPacketInfoResponder)> {
59500        if let StreamSocketRequest::SetIpPacketInfo { value, responder } = self {
59501            Some((value, responder))
59502        } else {
59503            None
59504        }
59505    }
59506
59507    #[allow(irrefutable_let_patterns)]
59508    pub fn into_get_ip_packet_info(self) -> Option<(StreamSocketGetIpPacketInfoResponder)> {
59509        if let StreamSocketRequest::GetIpPacketInfo { responder } = self {
59510            Some((responder))
59511        } else {
59512            None
59513        }
59514    }
59515
59516    #[allow(irrefutable_let_patterns)]
59517    pub fn into_set_ip_receive_type_of_service(
59518        self,
59519    ) -> Option<(bool, StreamSocketSetIpReceiveTypeOfServiceResponder)> {
59520        if let StreamSocketRequest::SetIpReceiveTypeOfService { value, responder } = self {
59521            Some((value, responder))
59522        } else {
59523            None
59524        }
59525    }
59526
59527    #[allow(irrefutable_let_patterns)]
59528    pub fn into_get_ip_receive_type_of_service(
59529        self,
59530    ) -> Option<(StreamSocketGetIpReceiveTypeOfServiceResponder)> {
59531        if let StreamSocketRequest::GetIpReceiveTypeOfService { responder } = self {
59532            Some((responder))
59533        } else {
59534            None
59535        }
59536    }
59537
59538    #[allow(irrefutable_let_patterns)]
59539    pub fn into_set_ip_receive_ttl(self) -> Option<(bool, StreamSocketSetIpReceiveTtlResponder)> {
59540        if let StreamSocketRequest::SetIpReceiveTtl { value, responder } = self {
59541            Some((value, responder))
59542        } else {
59543            None
59544        }
59545    }
59546
59547    #[allow(irrefutable_let_patterns)]
59548    pub fn into_get_ip_receive_ttl(self) -> Option<(StreamSocketGetIpReceiveTtlResponder)> {
59549        if let StreamSocketRequest::GetIpReceiveTtl { responder } = self {
59550            Some((responder))
59551        } else {
59552            None
59553        }
59554    }
59555
59556    #[allow(irrefutable_let_patterns)]
59557    pub fn into_set_ip_multicast_interface(
59558        self,
59559    ) -> Option<(u64, fidl_fuchsia_net::Ipv4Address, StreamSocketSetIpMulticastInterfaceResponder)>
59560    {
59561        if let StreamSocketRequest::SetIpMulticastInterface { iface, address, responder } = self {
59562            Some((iface, address, responder))
59563        } else {
59564            None
59565        }
59566    }
59567
59568    #[allow(irrefutable_let_patterns)]
59569    pub fn into_get_ip_multicast_interface(
59570        self,
59571    ) -> Option<(StreamSocketGetIpMulticastInterfaceResponder)> {
59572        if let StreamSocketRequest::GetIpMulticastInterface { responder } = self {
59573            Some((responder))
59574        } else {
59575            None
59576        }
59577    }
59578
59579    #[allow(irrefutable_let_patterns)]
59580    pub fn into_set_ip_multicast_ttl(
59581        self,
59582    ) -> Option<(OptionalUint8, StreamSocketSetIpMulticastTtlResponder)> {
59583        if let StreamSocketRequest::SetIpMulticastTtl { value, responder } = self {
59584            Some((value, responder))
59585        } else {
59586            None
59587        }
59588    }
59589
59590    #[allow(irrefutable_let_patterns)]
59591    pub fn into_get_ip_multicast_ttl(self) -> Option<(StreamSocketGetIpMulticastTtlResponder)> {
59592        if let StreamSocketRequest::GetIpMulticastTtl { responder } = self {
59593            Some((responder))
59594        } else {
59595            None
59596        }
59597    }
59598
59599    #[allow(irrefutable_let_patterns)]
59600    pub fn into_set_ip_multicast_loopback(
59601        self,
59602    ) -> Option<(bool, StreamSocketSetIpMulticastLoopbackResponder)> {
59603        if let StreamSocketRequest::SetIpMulticastLoopback { value, responder } = self {
59604            Some((value, responder))
59605        } else {
59606            None
59607        }
59608    }
59609
59610    #[allow(irrefutable_let_patterns)]
59611    pub fn into_get_ip_multicast_loopback(
59612        self,
59613    ) -> Option<(StreamSocketGetIpMulticastLoopbackResponder)> {
59614        if let StreamSocketRequest::GetIpMulticastLoopback { responder } = self {
59615            Some((responder))
59616        } else {
59617            None
59618        }
59619    }
59620
59621    #[allow(irrefutable_let_patterns)]
59622    pub fn into_add_ip_membership(
59623        self,
59624    ) -> Option<(IpMulticastMembership, StreamSocketAddIpMembershipResponder)> {
59625        if let StreamSocketRequest::AddIpMembership { membership, responder } = self {
59626            Some((membership, responder))
59627        } else {
59628            None
59629        }
59630    }
59631
59632    #[allow(irrefutable_let_patterns)]
59633    pub fn into_drop_ip_membership(
59634        self,
59635    ) -> Option<(IpMulticastMembership, StreamSocketDropIpMembershipResponder)> {
59636        if let StreamSocketRequest::DropIpMembership { membership, responder } = self {
59637            Some((membership, responder))
59638        } else {
59639            None
59640        }
59641    }
59642
59643    #[allow(irrefutable_let_patterns)]
59644    pub fn into_set_ip_transparent(self) -> Option<(bool, StreamSocketSetIpTransparentResponder)> {
59645        if let StreamSocketRequest::SetIpTransparent { value, responder } = self {
59646            Some((value, responder))
59647        } else {
59648            None
59649        }
59650    }
59651
59652    #[allow(irrefutable_let_patterns)]
59653    pub fn into_get_ip_transparent(self) -> Option<(StreamSocketGetIpTransparentResponder)> {
59654        if let StreamSocketRequest::GetIpTransparent { responder } = self {
59655            Some((responder))
59656        } else {
59657            None
59658        }
59659    }
59660
59661    #[allow(irrefutable_let_patterns)]
59662    pub fn into_set_ip_receive_original_destination_address(
59663        self,
59664    ) -> Option<(bool, StreamSocketSetIpReceiveOriginalDestinationAddressResponder)> {
59665        if let StreamSocketRequest::SetIpReceiveOriginalDestinationAddress { value, responder } =
59666            self
59667        {
59668            Some((value, responder))
59669        } else {
59670            None
59671        }
59672    }
59673
59674    #[allow(irrefutable_let_patterns)]
59675    pub fn into_get_ip_receive_original_destination_address(
59676        self,
59677    ) -> Option<(StreamSocketGetIpReceiveOriginalDestinationAddressResponder)> {
59678        if let StreamSocketRequest::GetIpReceiveOriginalDestinationAddress { responder } = self {
59679            Some((responder))
59680        } else {
59681            None
59682        }
59683    }
59684
59685    #[allow(irrefutable_let_patterns)]
59686    pub fn into_add_ipv6_membership(
59687        self,
59688    ) -> Option<(Ipv6MulticastMembership, StreamSocketAddIpv6MembershipResponder)> {
59689        if let StreamSocketRequest::AddIpv6Membership { membership, responder } = self {
59690            Some((membership, responder))
59691        } else {
59692            None
59693        }
59694    }
59695
59696    #[allow(irrefutable_let_patterns)]
59697    pub fn into_drop_ipv6_membership(
59698        self,
59699    ) -> Option<(Ipv6MulticastMembership, StreamSocketDropIpv6MembershipResponder)> {
59700        if let StreamSocketRequest::DropIpv6Membership { membership, responder } = self {
59701            Some((membership, responder))
59702        } else {
59703            None
59704        }
59705    }
59706
59707    #[allow(irrefutable_let_patterns)]
59708    pub fn into_set_ipv6_multicast_interface(
59709        self,
59710    ) -> Option<(u64, StreamSocketSetIpv6MulticastInterfaceResponder)> {
59711        if let StreamSocketRequest::SetIpv6MulticastInterface { value, responder } = self {
59712            Some((value, responder))
59713        } else {
59714            None
59715        }
59716    }
59717
59718    #[allow(irrefutable_let_patterns)]
59719    pub fn into_get_ipv6_multicast_interface(
59720        self,
59721    ) -> Option<(StreamSocketGetIpv6MulticastInterfaceResponder)> {
59722        if let StreamSocketRequest::GetIpv6MulticastInterface { responder } = self {
59723            Some((responder))
59724        } else {
59725            None
59726        }
59727    }
59728
59729    #[allow(irrefutable_let_patterns)]
59730    pub fn into_set_ipv6_unicast_hops(
59731        self,
59732    ) -> Option<(OptionalUint8, StreamSocketSetIpv6UnicastHopsResponder)> {
59733        if let StreamSocketRequest::SetIpv6UnicastHops { value, responder } = self {
59734            Some((value, responder))
59735        } else {
59736            None
59737        }
59738    }
59739
59740    #[allow(irrefutable_let_patterns)]
59741    pub fn into_get_ipv6_unicast_hops(self) -> Option<(StreamSocketGetIpv6UnicastHopsResponder)> {
59742        if let StreamSocketRequest::GetIpv6UnicastHops { responder } = self {
59743            Some((responder))
59744        } else {
59745            None
59746        }
59747    }
59748
59749    #[allow(irrefutable_let_patterns)]
59750    pub fn into_set_ipv6_receive_hop_limit(
59751        self,
59752    ) -> Option<(bool, StreamSocketSetIpv6ReceiveHopLimitResponder)> {
59753        if let StreamSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self {
59754            Some((value, responder))
59755        } else {
59756            None
59757        }
59758    }
59759
59760    #[allow(irrefutable_let_patterns)]
59761    pub fn into_get_ipv6_receive_hop_limit(
59762        self,
59763    ) -> Option<(StreamSocketGetIpv6ReceiveHopLimitResponder)> {
59764        if let StreamSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
59765            Some((responder))
59766        } else {
59767            None
59768        }
59769    }
59770
59771    #[allow(irrefutable_let_patterns)]
59772    pub fn into_set_ipv6_multicast_hops(
59773        self,
59774    ) -> Option<(OptionalUint8, StreamSocketSetIpv6MulticastHopsResponder)> {
59775        if let StreamSocketRequest::SetIpv6MulticastHops { value, responder } = self {
59776            Some((value, responder))
59777        } else {
59778            None
59779        }
59780    }
59781
59782    #[allow(irrefutable_let_patterns)]
59783    pub fn into_get_ipv6_multicast_hops(
59784        self,
59785    ) -> Option<(StreamSocketGetIpv6MulticastHopsResponder)> {
59786        if let StreamSocketRequest::GetIpv6MulticastHops { responder } = self {
59787            Some((responder))
59788        } else {
59789            None
59790        }
59791    }
59792
59793    #[allow(irrefutable_let_patterns)]
59794    pub fn into_set_ipv6_multicast_loopback(
59795        self,
59796    ) -> Option<(bool, StreamSocketSetIpv6MulticastLoopbackResponder)> {
59797        if let StreamSocketRequest::SetIpv6MulticastLoopback { value, responder } = self {
59798            Some((value, responder))
59799        } else {
59800            None
59801        }
59802    }
59803
59804    #[allow(irrefutable_let_patterns)]
59805    pub fn into_get_ipv6_multicast_loopback(
59806        self,
59807    ) -> Option<(StreamSocketGetIpv6MulticastLoopbackResponder)> {
59808        if let StreamSocketRequest::GetIpv6MulticastLoopback { responder } = self {
59809            Some((responder))
59810        } else {
59811            None
59812        }
59813    }
59814
59815    #[allow(irrefutable_let_patterns)]
59816    pub fn into_set_ipv6_only(self) -> Option<(bool, StreamSocketSetIpv6OnlyResponder)> {
59817        if let StreamSocketRequest::SetIpv6Only { value, responder } = self {
59818            Some((value, responder))
59819        } else {
59820            None
59821        }
59822    }
59823
59824    #[allow(irrefutable_let_patterns)]
59825    pub fn into_get_ipv6_only(self) -> Option<(StreamSocketGetIpv6OnlyResponder)> {
59826        if let StreamSocketRequest::GetIpv6Only { responder } = self {
59827            Some((responder))
59828        } else {
59829            None
59830        }
59831    }
59832
59833    #[allow(irrefutable_let_patterns)]
59834    pub fn into_set_ipv6_receive_traffic_class(
59835        self,
59836    ) -> Option<(bool, StreamSocketSetIpv6ReceiveTrafficClassResponder)> {
59837        if let StreamSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } = self {
59838            Some((value, responder))
59839        } else {
59840            None
59841        }
59842    }
59843
59844    #[allow(irrefutable_let_patterns)]
59845    pub fn into_get_ipv6_receive_traffic_class(
59846        self,
59847    ) -> Option<(StreamSocketGetIpv6ReceiveTrafficClassResponder)> {
59848        if let StreamSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
59849            Some((responder))
59850        } else {
59851            None
59852        }
59853    }
59854
59855    #[allow(irrefutable_let_patterns)]
59856    pub fn into_set_ipv6_traffic_class(
59857        self,
59858    ) -> Option<(OptionalUint8, StreamSocketSetIpv6TrafficClassResponder)> {
59859        if let StreamSocketRequest::SetIpv6TrafficClass { value, responder } = self {
59860            Some((value, responder))
59861        } else {
59862            None
59863        }
59864    }
59865
59866    #[allow(irrefutable_let_patterns)]
59867    pub fn into_get_ipv6_traffic_class(self) -> Option<(StreamSocketGetIpv6TrafficClassResponder)> {
59868        if let StreamSocketRequest::GetIpv6TrafficClass { responder } = self {
59869            Some((responder))
59870        } else {
59871            None
59872        }
59873    }
59874
59875    #[allow(irrefutable_let_patterns)]
59876    pub fn into_set_ipv6_receive_packet_info(
59877        self,
59878    ) -> Option<(bool, StreamSocketSetIpv6ReceivePacketInfoResponder)> {
59879        if let StreamSocketRequest::SetIpv6ReceivePacketInfo { value, responder } = self {
59880            Some((value, responder))
59881        } else {
59882            None
59883        }
59884    }
59885
59886    #[allow(irrefutable_let_patterns)]
59887    pub fn into_get_ipv6_receive_packet_info(
59888        self,
59889    ) -> Option<(StreamSocketGetIpv6ReceivePacketInfoResponder)> {
59890        if let StreamSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
59891            Some((responder))
59892        } else {
59893            None
59894        }
59895    }
59896
59897    #[allow(irrefutable_let_patterns)]
59898    pub fn into_get_original_destination(
59899        self,
59900    ) -> Option<(StreamSocketGetOriginalDestinationResponder)> {
59901        if let StreamSocketRequest::GetOriginalDestination { responder } = self {
59902            Some((responder))
59903        } else {
59904            None
59905        }
59906    }
59907
59908    #[allow(irrefutable_let_patterns)]
59909    pub fn into_describe(self) -> Option<(StreamSocketDescribeResponder)> {
59910        if let StreamSocketRequest::Describe { responder } = self {
59911            Some((responder))
59912        } else {
59913            None
59914        }
59915    }
59916
59917    #[allow(irrefutable_let_patterns)]
59918    pub fn into_listen(self) -> Option<(i16, StreamSocketListenResponder)> {
59919        if let StreamSocketRequest::Listen { backlog, responder } = self {
59920            Some((backlog, responder))
59921        } else {
59922            None
59923        }
59924    }
59925
59926    #[allow(irrefutable_let_patterns)]
59927    pub fn into_accept(self) -> Option<(bool, StreamSocketAcceptResponder)> {
59928        if let StreamSocketRequest::Accept { want_addr, responder } = self {
59929            Some((want_addr, responder))
59930        } else {
59931            None
59932        }
59933    }
59934
59935    #[allow(irrefutable_let_patterns)]
59936    pub fn into_get_info(self) -> Option<(StreamSocketGetInfoResponder)> {
59937        if let StreamSocketRequest::GetInfo { responder } = self { Some((responder)) } else { None }
59938    }
59939
59940    #[allow(irrefutable_let_patterns)]
59941    pub fn into_set_tcp_no_delay(self) -> Option<(bool, StreamSocketSetTcpNoDelayResponder)> {
59942        if let StreamSocketRequest::SetTcpNoDelay { value, responder } = self {
59943            Some((value, responder))
59944        } else {
59945            None
59946        }
59947    }
59948
59949    #[allow(irrefutable_let_patterns)]
59950    pub fn into_get_tcp_no_delay(self) -> Option<(StreamSocketGetTcpNoDelayResponder)> {
59951        if let StreamSocketRequest::GetTcpNoDelay { responder } = self {
59952            Some((responder))
59953        } else {
59954            None
59955        }
59956    }
59957
59958    #[allow(irrefutable_let_patterns)]
59959    pub fn into_set_tcp_max_segment(self) -> Option<(u32, StreamSocketSetTcpMaxSegmentResponder)> {
59960        if let StreamSocketRequest::SetTcpMaxSegment { value_bytes, responder } = self {
59961            Some((value_bytes, responder))
59962        } else {
59963            None
59964        }
59965    }
59966
59967    #[allow(irrefutable_let_patterns)]
59968    pub fn into_get_tcp_max_segment(self) -> Option<(StreamSocketGetTcpMaxSegmentResponder)> {
59969        if let StreamSocketRequest::GetTcpMaxSegment { responder } = self {
59970            Some((responder))
59971        } else {
59972            None
59973        }
59974    }
59975
59976    #[allow(irrefutable_let_patterns)]
59977    pub fn into_set_tcp_cork(self) -> Option<(bool, StreamSocketSetTcpCorkResponder)> {
59978        if let StreamSocketRequest::SetTcpCork { value, responder } = self {
59979            Some((value, responder))
59980        } else {
59981            None
59982        }
59983    }
59984
59985    #[allow(irrefutable_let_patterns)]
59986    pub fn into_get_tcp_cork(self) -> Option<(StreamSocketGetTcpCorkResponder)> {
59987        if let StreamSocketRequest::GetTcpCork { responder } = self {
59988            Some((responder))
59989        } else {
59990            None
59991        }
59992    }
59993
59994    #[allow(irrefutable_let_patterns)]
59995    pub fn into_set_tcp_keep_alive_idle(
59996        self,
59997    ) -> Option<(u32, StreamSocketSetTcpKeepAliveIdleResponder)> {
59998        if let StreamSocketRequest::SetTcpKeepAliveIdle { value_secs, responder } = self {
59999            Some((value_secs, responder))
60000        } else {
60001            None
60002        }
60003    }
60004
60005    #[allow(irrefutable_let_patterns)]
60006    pub fn into_get_tcp_keep_alive_idle(
60007        self,
60008    ) -> Option<(StreamSocketGetTcpKeepAliveIdleResponder)> {
60009        if let StreamSocketRequest::GetTcpKeepAliveIdle { responder } = self {
60010            Some((responder))
60011        } else {
60012            None
60013        }
60014    }
60015
60016    #[allow(irrefutable_let_patterns)]
60017    pub fn into_set_tcp_keep_alive_interval(
60018        self,
60019    ) -> Option<(u32, StreamSocketSetTcpKeepAliveIntervalResponder)> {
60020        if let StreamSocketRequest::SetTcpKeepAliveInterval { value_secs, responder } = self {
60021            Some((value_secs, responder))
60022        } else {
60023            None
60024        }
60025    }
60026
60027    #[allow(irrefutable_let_patterns)]
60028    pub fn into_get_tcp_keep_alive_interval(
60029        self,
60030    ) -> Option<(StreamSocketGetTcpKeepAliveIntervalResponder)> {
60031        if let StreamSocketRequest::GetTcpKeepAliveInterval { responder } = self {
60032            Some((responder))
60033        } else {
60034            None
60035        }
60036    }
60037
60038    #[allow(irrefutable_let_patterns)]
60039    pub fn into_set_tcp_keep_alive_count(
60040        self,
60041    ) -> Option<(u32, StreamSocketSetTcpKeepAliveCountResponder)> {
60042        if let StreamSocketRequest::SetTcpKeepAliveCount { value, responder } = self {
60043            Some((value, responder))
60044        } else {
60045            None
60046        }
60047    }
60048
60049    #[allow(irrefutable_let_patterns)]
60050    pub fn into_get_tcp_keep_alive_count(
60051        self,
60052    ) -> Option<(StreamSocketGetTcpKeepAliveCountResponder)> {
60053        if let StreamSocketRequest::GetTcpKeepAliveCount { responder } = self {
60054            Some((responder))
60055        } else {
60056            None
60057        }
60058    }
60059
60060    #[allow(irrefutable_let_patterns)]
60061    pub fn into_set_tcp_syn_count(self) -> Option<(u32, StreamSocketSetTcpSynCountResponder)> {
60062        if let StreamSocketRequest::SetTcpSynCount { value, responder } = self {
60063            Some((value, responder))
60064        } else {
60065            None
60066        }
60067    }
60068
60069    #[allow(irrefutable_let_patterns)]
60070    pub fn into_get_tcp_syn_count(self) -> Option<(StreamSocketGetTcpSynCountResponder)> {
60071        if let StreamSocketRequest::GetTcpSynCount { responder } = self {
60072            Some((responder))
60073        } else {
60074            None
60075        }
60076    }
60077
60078    #[allow(irrefutable_let_patterns)]
60079    pub fn into_set_tcp_linger(
60080        self,
60081    ) -> Option<(OptionalUint32, StreamSocketSetTcpLingerResponder)> {
60082        if let StreamSocketRequest::SetTcpLinger { value_secs, responder } = self {
60083            Some((value_secs, responder))
60084        } else {
60085            None
60086        }
60087    }
60088
60089    #[allow(irrefutable_let_patterns)]
60090    pub fn into_get_tcp_linger(self) -> Option<(StreamSocketGetTcpLingerResponder)> {
60091        if let StreamSocketRequest::GetTcpLinger { responder } = self {
60092            Some((responder))
60093        } else {
60094            None
60095        }
60096    }
60097
60098    #[allow(irrefutable_let_patterns)]
60099    pub fn into_set_tcp_defer_accept(
60100        self,
60101    ) -> Option<(u32, StreamSocketSetTcpDeferAcceptResponder)> {
60102        if let StreamSocketRequest::SetTcpDeferAccept { value_secs, responder } = self {
60103            Some((value_secs, responder))
60104        } else {
60105            None
60106        }
60107    }
60108
60109    #[allow(irrefutable_let_patterns)]
60110    pub fn into_get_tcp_defer_accept(self) -> Option<(StreamSocketGetTcpDeferAcceptResponder)> {
60111        if let StreamSocketRequest::GetTcpDeferAccept { responder } = self {
60112            Some((responder))
60113        } else {
60114            None
60115        }
60116    }
60117
60118    #[allow(irrefutable_let_patterns)]
60119    pub fn into_set_tcp_window_clamp(
60120        self,
60121    ) -> Option<(u32, StreamSocketSetTcpWindowClampResponder)> {
60122        if let StreamSocketRequest::SetTcpWindowClamp { value, responder } = self {
60123            Some((value, responder))
60124        } else {
60125            None
60126        }
60127    }
60128
60129    #[allow(irrefutable_let_patterns)]
60130    pub fn into_get_tcp_window_clamp(self) -> Option<(StreamSocketGetTcpWindowClampResponder)> {
60131        if let StreamSocketRequest::GetTcpWindowClamp { responder } = self {
60132            Some((responder))
60133        } else {
60134            None
60135        }
60136    }
60137
60138    #[allow(irrefutable_let_patterns)]
60139    pub fn into_get_tcp_info(self) -> Option<(StreamSocketGetTcpInfoResponder)> {
60140        if let StreamSocketRequest::GetTcpInfo { responder } = self {
60141            Some((responder))
60142        } else {
60143            None
60144        }
60145    }
60146
60147    #[allow(irrefutable_let_patterns)]
60148    pub fn into_set_tcp_quick_ack(self) -> Option<(bool, StreamSocketSetTcpQuickAckResponder)> {
60149        if let StreamSocketRequest::SetTcpQuickAck { value, responder } = self {
60150            Some((value, responder))
60151        } else {
60152            None
60153        }
60154    }
60155
60156    #[allow(irrefutable_let_patterns)]
60157    pub fn into_get_tcp_quick_ack(self) -> Option<(StreamSocketGetTcpQuickAckResponder)> {
60158        if let StreamSocketRequest::GetTcpQuickAck { responder } = self {
60159            Some((responder))
60160        } else {
60161            None
60162        }
60163    }
60164
60165    #[allow(irrefutable_let_patterns)]
60166    pub fn into_set_tcp_congestion(
60167        self,
60168    ) -> Option<(TcpCongestionControl, StreamSocketSetTcpCongestionResponder)> {
60169        if let StreamSocketRequest::SetTcpCongestion { value, responder } = self {
60170            Some((value, responder))
60171        } else {
60172            None
60173        }
60174    }
60175
60176    #[allow(irrefutable_let_patterns)]
60177    pub fn into_get_tcp_congestion(self) -> Option<(StreamSocketGetTcpCongestionResponder)> {
60178        if let StreamSocketRequest::GetTcpCongestion { responder } = self {
60179            Some((responder))
60180        } else {
60181            None
60182        }
60183    }
60184
60185    #[allow(irrefutable_let_patterns)]
60186    pub fn into_set_tcp_user_timeout(
60187        self,
60188    ) -> Option<(u32, StreamSocketSetTcpUserTimeoutResponder)> {
60189        if let StreamSocketRequest::SetTcpUserTimeout { value_millis, responder } = self {
60190            Some((value_millis, responder))
60191        } else {
60192            None
60193        }
60194    }
60195
60196    #[allow(irrefutable_let_patterns)]
60197    pub fn into_get_tcp_user_timeout(self) -> Option<(StreamSocketGetTcpUserTimeoutResponder)> {
60198        if let StreamSocketRequest::GetTcpUserTimeout { responder } = self {
60199            Some((responder))
60200        } else {
60201            None
60202        }
60203    }
60204
60205    /// Name of the method defined in FIDL
60206    pub fn method_name(&self) -> &'static str {
60207        match *self {
60208            StreamSocketRequest::Clone { .. } => "clone",
60209            StreamSocketRequest::Close { .. } => "close",
60210            StreamSocketRequest::Query { .. } => "query",
60211            StreamSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
60212            StreamSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
60213            StreamSocketRequest::GetError { .. } => "get_error",
60214            StreamSocketRequest::SetBroadcast { .. } => "set_broadcast",
60215            StreamSocketRequest::GetBroadcast { .. } => "get_broadcast",
60216            StreamSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
60217            StreamSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
60218            StreamSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
60219            StreamSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
60220            StreamSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
60221            StreamSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
60222            StreamSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
60223            StreamSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
60224            StreamSocketRequest::SetNoCheck { .. } => "set_no_check",
60225            StreamSocketRequest::GetNoCheck { .. } => "get_no_check",
60226            StreamSocketRequest::SetLinger { .. } => "set_linger",
60227            StreamSocketRequest::GetLinger { .. } => "get_linger",
60228            StreamSocketRequest::SetReusePort { .. } => "set_reuse_port",
60229            StreamSocketRequest::GetReusePort { .. } => "get_reuse_port",
60230            StreamSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
60231            StreamSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
60232            StreamSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
60233            StreamSocketRequest::SetBindToInterfaceIndex { .. } => "set_bind_to_interface_index",
60234            StreamSocketRequest::GetBindToInterfaceIndex { .. } => "get_bind_to_interface_index",
60235            StreamSocketRequest::SetTimestamp { .. } => "set_timestamp",
60236            StreamSocketRequest::GetTimestamp { .. } => "get_timestamp",
60237            StreamSocketRequest::SetMark { .. } => "set_mark",
60238            StreamSocketRequest::GetMark { .. } => "get_mark",
60239            StreamSocketRequest::GetCookie { .. } => "get_cookie",
60240            StreamSocketRequest::Bind { .. } => "bind",
60241            StreamSocketRequest::Connect { .. } => "connect",
60242            StreamSocketRequest::Disconnect { .. } => "disconnect",
60243            StreamSocketRequest::GetSockName { .. } => "get_sock_name",
60244            StreamSocketRequest::GetPeerName { .. } => "get_peer_name",
60245            StreamSocketRequest::Shutdown { .. } => "shutdown",
60246            StreamSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
60247            StreamSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
60248            StreamSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
60249            StreamSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
60250            StreamSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
60251            StreamSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
60252            StreamSocketRequest::SetIpReceiveTypeOfService { .. } => {
60253                "set_ip_receive_type_of_service"
60254            }
60255            StreamSocketRequest::GetIpReceiveTypeOfService { .. } => {
60256                "get_ip_receive_type_of_service"
60257            }
60258            StreamSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
60259            StreamSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
60260            StreamSocketRequest::SetIpMulticastInterface { .. } => "set_ip_multicast_interface",
60261            StreamSocketRequest::GetIpMulticastInterface { .. } => "get_ip_multicast_interface",
60262            StreamSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
60263            StreamSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
60264            StreamSocketRequest::SetIpMulticastLoopback { .. } => "set_ip_multicast_loopback",
60265            StreamSocketRequest::GetIpMulticastLoopback { .. } => "get_ip_multicast_loopback",
60266            StreamSocketRequest::AddIpMembership { .. } => "add_ip_membership",
60267            StreamSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
60268            StreamSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
60269            StreamSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
60270            StreamSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
60271                "set_ip_receive_original_destination_address"
60272            }
60273            StreamSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
60274                "get_ip_receive_original_destination_address"
60275            }
60276            StreamSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
60277            StreamSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
60278            StreamSocketRequest::SetIpv6MulticastInterface { .. } => "set_ipv6_multicast_interface",
60279            StreamSocketRequest::GetIpv6MulticastInterface { .. } => "get_ipv6_multicast_interface",
60280            StreamSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
60281            StreamSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
60282            StreamSocketRequest::SetIpv6ReceiveHopLimit { .. } => "set_ipv6_receive_hop_limit",
60283            StreamSocketRequest::GetIpv6ReceiveHopLimit { .. } => "get_ipv6_receive_hop_limit",
60284            StreamSocketRequest::SetIpv6MulticastHops { .. } => "set_ipv6_multicast_hops",
60285            StreamSocketRequest::GetIpv6MulticastHops { .. } => "get_ipv6_multicast_hops",
60286            StreamSocketRequest::SetIpv6MulticastLoopback { .. } => "set_ipv6_multicast_loopback",
60287            StreamSocketRequest::GetIpv6MulticastLoopback { .. } => "get_ipv6_multicast_loopback",
60288            StreamSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
60289            StreamSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
60290            StreamSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
60291                "set_ipv6_receive_traffic_class"
60292            }
60293            StreamSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
60294                "get_ipv6_receive_traffic_class"
60295            }
60296            StreamSocketRequest::SetIpv6TrafficClass { .. } => "set_ipv6_traffic_class",
60297            StreamSocketRequest::GetIpv6TrafficClass { .. } => "get_ipv6_traffic_class",
60298            StreamSocketRequest::SetIpv6ReceivePacketInfo { .. } => "set_ipv6_receive_packet_info",
60299            StreamSocketRequest::GetIpv6ReceivePacketInfo { .. } => "get_ipv6_receive_packet_info",
60300            StreamSocketRequest::GetOriginalDestination { .. } => "get_original_destination",
60301            StreamSocketRequest::Describe { .. } => "describe",
60302            StreamSocketRequest::Listen { .. } => "listen",
60303            StreamSocketRequest::Accept { .. } => "accept",
60304            StreamSocketRequest::GetInfo { .. } => "get_info",
60305            StreamSocketRequest::SetTcpNoDelay { .. } => "set_tcp_no_delay",
60306            StreamSocketRequest::GetTcpNoDelay { .. } => "get_tcp_no_delay",
60307            StreamSocketRequest::SetTcpMaxSegment { .. } => "set_tcp_max_segment",
60308            StreamSocketRequest::GetTcpMaxSegment { .. } => "get_tcp_max_segment",
60309            StreamSocketRequest::SetTcpCork { .. } => "set_tcp_cork",
60310            StreamSocketRequest::GetTcpCork { .. } => "get_tcp_cork",
60311            StreamSocketRequest::SetTcpKeepAliveIdle { .. } => "set_tcp_keep_alive_idle",
60312            StreamSocketRequest::GetTcpKeepAliveIdle { .. } => "get_tcp_keep_alive_idle",
60313            StreamSocketRequest::SetTcpKeepAliveInterval { .. } => "set_tcp_keep_alive_interval",
60314            StreamSocketRequest::GetTcpKeepAliveInterval { .. } => "get_tcp_keep_alive_interval",
60315            StreamSocketRequest::SetTcpKeepAliveCount { .. } => "set_tcp_keep_alive_count",
60316            StreamSocketRequest::GetTcpKeepAliveCount { .. } => "get_tcp_keep_alive_count",
60317            StreamSocketRequest::SetTcpSynCount { .. } => "set_tcp_syn_count",
60318            StreamSocketRequest::GetTcpSynCount { .. } => "get_tcp_syn_count",
60319            StreamSocketRequest::SetTcpLinger { .. } => "set_tcp_linger",
60320            StreamSocketRequest::GetTcpLinger { .. } => "get_tcp_linger",
60321            StreamSocketRequest::SetTcpDeferAccept { .. } => "set_tcp_defer_accept",
60322            StreamSocketRequest::GetTcpDeferAccept { .. } => "get_tcp_defer_accept",
60323            StreamSocketRequest::SetTcpWindowClamp { .. } => "set_tcp_window_clamp",
60324            StreamSocketRequest::GetTcpWindowClamp { .. } => "get_tcp_window_clamp",
60325            StreamSocketRequest::GetTcpInfo { .. } => "get_tcp_info",
60326            StreamSocketRequest::SetTcpQuickAck { .. } => "set_tcp_quick_ack",
60327            StreamSocketRequest::GetTcpQuickAck { .. } => "get_tcp_quick_ack",
60328            StreamSocketRequest::SetTcpCongestion { .. } => "set_tcp_congestion",
60329            StreamSocketRequest::GetTcpCongestion { .. } => "get_tcp_congestion",
60330            StreamSocketRequest::SetTcpUserTimeout { .. } => "set_tcp_user_timeout",
60331            StreamSocketRequest::GetTcpUserTimeout { .. } => "get_tcp_user_timeout",
60332        }
60333    }
60334}
60335
60336#[derive(Debug, Clone)]
60337pub struct StreamSocketControlHandle {
60338    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
60339}
60340
60341impl fidl::endpoints::ControlHandle for StreamSocketControlHandle {
60342    fn shutdown(&self) {
60343        self.inner.shutdown()
60344    }
60345    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
60346        self.inner.shutdown_with_epitaph(status)
60347    }
60348
60349    fn is_closed(&self) -> bool {
60350        self.inner.channel().is_closed()
60351    }
60352    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
60353        self.inner.channel().on_closed()
60354    }
60355
60356    #[cfg(target_os = "fuchsia")]
60357    fn signal_peer(
60358        &self,
60359        clear_mask: zx::Signals,
60360        set_mask: zx::Signals,
60361    ) -> Result<(), zx_status::Status> {
60362        use fidl::Peered;
60363        self.inner.channel().signal_peer(clear_mask, set_mask)
60364    }
60365}
60366
60367impl StreamSocketControlHandle {}
60368
60369#[must_use = "FIDL methods require a response to be sent"]
60370#[derive(Debug)]
60371pub struct StreamSocketCloseResponder {
60372    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60373    tx_id: u32,
60374}
60375
60376/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60377/// if the responder is dropped without sending a response, so that the client
60378/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60379impl std::ops::Drop for StreamSocketCloseResponder {
60380    fn drop(&mut self) {
60381        self.control_handle.shutdown();
60382        // Safety: drops once, never accessed again
60383        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60384    }
60385}
60386
60387impl fidl::endpoints::Responder for StreamSocketCloseResponder {
60388    type ControlHandle = StreamSocketControlHandle;
60389
60390    fn control_handle(&self) -> &StreamSocketControlHandle {
60391        &self.control_handle
60392    }
60393
60394    fn drop_without_shutdown(mut self) {
60395        // Safety: drops once, never accessed again due to mem::forget
60396        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60397        // Prevent Drop from running (which would shut down the channel)
60398        std::mem::forget(self);
60399    }
60400}
60401
60402impl StreamSocketCloseResponder {
60403    /// Sends a response to the FIDL transaction.
60404    ///
60405    /// Sets the channel to shutdown if an error occurs.
60406    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
60407        let _result = self.send_raw(result);
60408        if _result.is_err() {
60409            self.control_handle.shutdown();
60410        }
60411        self.drop_without_shutdown();
60412        _result
60413    }
60414
60415    /// Similar to "send" but does not shutdown the channel if an error occurs.
60416    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
60417        let _result = self.send_raw(result);
60418        self.drop_without_shutdown();
60419        _result
60420    }
60421
60422    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
60423        self.control_handle
60424            .inner
60425            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
60426                result,
60427                self.tx_id,
60428                0x5ac5d459ad7f657e,
60429                fidl::encoding::DynamicFlags::empty(),
60430            )
60431    }
60432}
60433
60434#[must_use = "FIDL methods require a response to be sent"]
60435#[derive(Debug)]
60436pub struct StreamSocketQueryResponder {
60437    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60438    tx_id: u32,
60439}
60440
60441/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60442/// if the responder is dropped without sending a response, so that the client
60443/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60444impl std::ops::Drop for StreamSocketQueryResponder {
60445    fn drop(&mut self) {
60446        self.control_handle.shutdown();
60447        // Safety: drops once, never accessed again
60448        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60449    }
60450}
60451
60452impl fidl::endpoints::Responder for StreamSocketQueryResponder {
60453    type ControlHandle = StreamSocketControlHandle;
60454
60455    fn control_handle(&self) -> &StreamSocketControlHandle {
60456        &self.control_handle
60457    }
60458
60459    fn drop_without_shutdown(mut self) {
60460        // Safety: drops once, never accessed again due to mem::forget
60461        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60462        // Prevent Drop from running (which would shut down the channel)
60463        std::mem::forget(self);
60464    }
60465}
60466
60467impl StreamSocketQueryResponder {
60468    /// Sends a response to the FIDL transaction.
60469    ///
60470    /// Sets the channel to shutdown if an error occurs.
60471    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
60472        let _result = self.send_raw(protocol);
60473        if _result.is_err() {
60474            self.control_handle.shutdown();
60475        }
60476        self.drop_without_shutdown();
60477        _result
60478    }
60479
60480    /// Similar to "send" but does not shutdown the channel if an error occurs.
60481    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
60482        let _result = self.send_raw(protocol);
60483        self.drop_without_shutdown();
60484        _result
60485    }
60486
60487    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
60488        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
60489            (protocol,),
60490            self.tx_id,
60491            0x2658edee9decfc06,
60492            fidl::encoding::DynamicFlags::empty(),
60493        )
60494    }
60495}
60496
60497#[must_use = "FIDL methods require a response to be sent"]
60498#[derive(Debug)]
60499pub struct StreamSocketSetReuseAddressResponder {
60500    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60501    tx_id: u32,
60502}
60503
60504/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60505/// if the responder is dropped without sending a response, so that the client
60506/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60507impl std::ops::Drop for StreamSocketSetReuseAddressResponder {
60508    fn drop(&mut self) {
60509        self.control_handle.shutdown();
60510        // Safety: drops once, never accessed again
60511        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60512    }
60513}
60514
60515impl fidl::endpoints::Responder for StreamSocketSetReuseAddressResponder {
60516    type ControlHandle = StreamSocketControlHandle;
60517
60518    fn control_handle(&self) -> &StreamSocketControlHandle {
60519        &self.control_handle
60520    }
60521
60522    fn drop_without_shutdown(mut self) {
60523        // Safety: drops once, never accessed again due to mem::forget
60524        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60525        // Prevent Drop from running (which would shut down the channel)
60526        std::mem::forget(self);
60527    }
60528}
60529
60530impl StreamSocketSetReuseAddressResponder {
60531    /// Sends a response to the FIDL transaction.
60532    ///
60533    /// Sets the channel to shutdown if an error occurs.
60534    pub fn send(
60535        self,
60536        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60537    ) -> Result<(), fidl::Error> {
60538        let _result = self.send_raw(result);
60539        if _result.is_err() {
60540            self.control_handle.shutdown();
60541        }
60542        self.drop_without_shutdown();
60543        _result
60544    }
60545
60546    /// Similar to "send" but does not shutdown the channel if an error occurs.
60547    pub fn send_no_shutdown_on_err(
60548        self,
60549        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60550    ) -> Result<(), fidl::Error> {
60551        let _result = self.send_raw(result);
60552        self.drop_without_shutdown();
60553        _result
60554    }
60555
60556    fn send_raw(
60557        &self,
60558        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60559    ) -> Result<(), fidl::Error> {
60560        self.control_handle.inner.send::<fidl::encoding::ResultType<
60561            fidl::encoding::EmptyStruct,
60562            fidl_fuchsia_posix::Errno,
60563        >>(
60564            result,
60565            self.tx_id,
60566            0x1fd74ee8b9a4a876,
60567            fidl::encoding::DynamicFlags::empty(),
60568        )
60569    }
60570}
60571
60572#[must_use = "FIDL methods require a response to be sent"]
60573#[derive(Debug)]
60574pub struct StreamSocketGetReuseAddressResponder {
60575    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60576    tx_id: u32,
60577}
60578
60579/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60580/// if the responder is dropped without sending a response, so that the client
60581/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60582impl std::ops::Drop for StreamSocketGetReuseAddressResponder {
60583    fn drop(&mut self) {
60584        self.control_handle.shutdown();
60585        // Safety: drops once, never accessed again
60586        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60587    }
60588}
60589
60590impl fidl::endpoints::Responder for StreamSocketGetReuseAddressResponder {
60591    type ControlHandle = StreamSocketControlHandle;
60592
60593    fn control_handle(&self) -> &StreamSocketControlHandle {
60594        &self.control_handle
60595    }
60596
60597    fn drop_without_shutdown(mut self) {
60598        // Safety: drops once, never accessed again due to mem::forget
60599        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60600        // Prevent Drop from running (which would shut down the channel)
60601        std::mem::forget(self);
60602    }
60603}
60604
60605impl StreamSocketGetReuseAddressResponder {
60606    /// Sends a response to the FIDL transaction.
60607    ///
60608    /// Sets the channel to shutdown if an error occurs.
60609    pub fn send(
60610        self,
60611        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60612    ) -> Result<(), fidl::Error> {
60613        let _result = self.send_raw(result);
60614        if _result.is_err() {
60615            self.control_handle.shutdown();
60616        }
60617        self.drop_without_shutdown();
60618        _result
60619    }
60620
60621    /// Similar to "send" but does not shutdown the channel if an error occurs.
60622    pub fn send_no_shutdown_on_err(
60623        self,
60624        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60625    ) -> Result<(), fidl::Error> {
60626        let _result = self.send_raw(result);
60627        self.drop_without_shutdown();
60628        _result
60629    }
60630
60631    fn send_raw(
60632        &self,
60633        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60634    ) -> Result<(), fidl::Error> {
60635        self.control_handle.inner.send::<fidl::encoding::ResultType<
60636            BaseSocketGetReuseAddressResponse,
60637            fidl_fuchsia_posix::Errno,
60638        >>(
60639            result.map(|value| (value,)),
60640            self.tx_id,
60641            0x67b7206b8d1bc0a5,
60642            fidl::encoding::DynamicFlags::empty(),
60643        )
60644    }
60645}
60646
60647#[must_use = "FIDL methods require a response to be sent"]
60648#[derive(Debug)]
60649pub struct StreamSocketGetErrorResponder {
60650    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60651    tx_id: u32,
60652}
60653
60654/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60655/// if the responder is dropped without sending a response, so that the client
60656/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60657impl std::ops::Drop for StreamSocketGetErrorResponder {
60658    fn drop(&mut self) {
60659        self.control_handle.shutdown();
60660        // Safety: drops once, never accessed again
60661        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60662    }
60663}
60664
60665impl fidl::endpoints::Responder for StreamSocketGetErrorResponder {
60666    type ControlHandle = StreamSocketControlHandle;
60667
60668    fn control_handle(&self) -> &StreamSocketControlHandle {
60669        &self.control_handle
60670    }
60671
60672    fn drop_without_shutdown(mut self) {
60673        // Safety: drops once, never accessed again due to mem::forget
60674        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60675        // Prevent Drop from running (which would shut down the channel)
60676        std::mem::forget(self);
60677    }
60678}
60679
60680impl StreamSocketGetErrorResponder {
60681    /// Sends a response to the FIDL transaction.
60682    ///
60683    /// Sets the channel to shutdown if an error occurs.
60684    pub fn send(
60685        self,
60686        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60687    ) -> Result<(), fidl::Error> {
60688        let _result = self.send_raw(result);
60689        if _result.is_err() {
60690            self.control_handle.shutdown();
60691        }
60692        self.drop_without_shutdown();
60693        _result
60694    }
60695
60696    /// Similar to "send" but does not shutdown the channel if an error occurs.
60697    pub fn send_no_shutdown_on_err(
60698        self,
60699        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60700    ) -> Result<(), fidl::Error> {
60701        let _result = self.send_raw(result);
60702        self.drop_without_shutdown();
60703        _result
60704    }
60705
60706    fn send_raw(
60707        &self,
60708        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60709    ) -> Result<(), fidl::Error> {
60710        self.control_handle.inner.send::<fidl::encoding::ResultType<
60711            fidl::encoding::EmptyStruct,
60712            fidl_fuchsia_posix::Errno,
60713        >>(
60714            result,
60715            self.tx_id,
60716            0x5aad39b33e5f6ebb,
60717            fidl::encoding::DynamicFlags::empty(),
60718        )
60719    }
60720}
60721
60722#[must_use = "FIDL methods require a response to be sent"]
60723#[derive(Debug)]
60724pub struct StreamSocketSetBroadcastResponder {
60725    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60726    tx_id: u32,
60727}
60728
60729/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60730/// if the responder is dropped without sending a response, so that the client
60731/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60732impl std::ops::Drop for StreamSocketSetBroadcastResponder {
60733    fn drop(&mut self) {
60734        self.control_handle.shutdown();
60735        // Safety: drops once, never accessed again
60736        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60737    }
60738}
60739
60740impl fidl::endpoints::Responder for StreamSocketSetBroadcastResponder {
60741    type ControlHandle = StreamSocketControlHandle;
60742
60743    fn control_handle(&self) -> &StreamSocketControlHandle {
60744        &self.control_handle
60745    }
60746
60747    fn drop_without_shutdown(mut self) {
60748        // Safety: drops once, never accessed again due to mem::forget
60749        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60750        // Prevent Drop from running (which would shut down the channel)
60751        std::mem::forget(self);
60752    }
60753}
60754
60755impl StreamSocketSetBroadcastResponder {
60756    /// Sends a response to the FIDL transaction.
60757    ///
60758    /// Sets the channel to shutdown if an error occurs.
60759    pub fn send(
60760        self,
60761        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60762    ) -> Result<(), fidl::Error> {
60763        let _result = self.send_raw(result);
60764        if _result.is_err() {
60765            self.control_handle.shutdown();
60766        }
60767        self.drop_without_shutdown();
60768        _result
60769    }
60770
60771    /// Similar to "send" but does not shutdown the channel if an error occurs.
60772    pub fn send_no_shutdown_on_err(
60773        self,
60774        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60775    ) -> Result<(), fidl::Error> {
60776        let _result = self.send_raw(result);
60777        self.drop_without_shutdown();
60778        _result
60779    }
60780
60781    fn send_raw(
60782        &self,
60783        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60784    ) -> Result<(), fidl::Error> {
60785        self.control_handle.inner.send::<fidl::encoding::ResultType<
60786            fidl::encoding::EmptyStruct,
60787            fidl_fuchsia_posix::Errno,
60788        >>(
60789            result,
60790            self.tx_id,
60791            0x6023e081ce3cd947,
60792            fidl::encoding::DynamicFlags::empty(),
60793        )
60794    }
60795}
60796
60797#[must_use = "FIDL methods require a response to be sent"]
60798#[derive(Debug)]
60799pub struct StreamSocketGetBroadcastResponder {
60800    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60801    tx_id: u32,
60802}
60803
60804/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60805/// if the responder is dropped without sending a response, so that the client
60806/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60807impl std::ops::Drop for StreamSocketGetBroadcastResponder {
60808    fn drop(&mut self) {
60809        self.control_handle.shutdown();
60810        // Safety: drops once, never accessed again
60811        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60812    }
60813}
60814
60815impl fidl::endpoints::Responder for StreamSocketGetBroadcastResponder {
60816    type ControlHandle = StreamSocketControlHandle;
60817
60818    fn control_handle(&self) -> &StreamSocketControlHandle {
60819        &self.control_handle
60820    }
60821
60822    fn drop_without_shutdown(mut self) {
60823        // Safety: drops once, never accessed again due to mem::forget
60824        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60825        // Prevent Drop from running (which would shut down the channel)
60826        std::mem::forget(self);
60827    }
60828}
60829
60830impl StreamSocketGetBroadcastResponder {
60831    /// Sends a response to the FIDL transaction.
60832    ///
60833    /// Sets the channel to shutdown if an error occurs.
60834    pub fn send(
60835        self,
60836        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60837    ) -> Result<(), fidl::Error> {
60838        let _result = self.send_raw(result);
60839        if _result.is_err() {
60840            self.control_handle.shutdown();
60841        }
60842        self.drop_without_shutdown();
60843        _result
60844    }
60845
60846    /// Similar to "send" but does not shutdown the channel if an error occurs.
60847    pub fn send_no_shutdown_on_err(
60848        self,
60849        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60850    ) -> Result<(), fidl::Error> {
60851        let _result = self.send_raw(result);
60852        self.drop_without_shutdown();
60853        _result
60854    }
60855
60856    fn send_raw(
60857        &self,
60858        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
60859    ) -> Result<(), fidl::Error> {
60860        self.control_handle.inner.send::<fidl::encoding::ResultType<
60861            BaseSocketGetBroadcastResponse,
60862            fidl_fuchsia_posix::Errno,
60863        >>(
60864            result.map(|value| (value,)),
60865            self.tx_id,
60866            0x68796fc556f9780d,
60867            fidl::encoding::DynamicFlags::empty(),
60868        )
60869    }
60870}
60871
60872#[must_use = "FIDL methods require a response to be sent"]
60873#[derive(Debug)]
60874pub struct StreamSocketSetSendBufferResponder {
60875    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60876    tx_id: u32,
60877}
60878
60879/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60880/// if the responder is dropped without sending a response, so that the client
60881/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60882impl std::ops::Drop for StreamSocketSetSendBufferResponder {
60883    fn drop(&mut self) {
60884        self.control_handle.shutdown();
60885        // Safety: drops once, never accessed again
60886        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60887    }
60888}
60889
60890impl fidl::endpoints::Responder for StreamSocketSetSendBufferResponder {
60891    type ControlHandle = StreamSocketControlHandle;
60892
60893    fn control_handle(&self) -> &StreamSocketControlHandle {
60894        &self.control_handle
60895    }
60896
60897    fn drop_without_shutdown(mut self) {
60898        // Safety: drops once, never accessed again due to mem::forget
60899        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60900        // Prevent Drop from running (which would shut down the channel)
60901        std::mem::forget(self);
60902    }
60903}
60904
60905impl StreamSocketSetSendBufferResponder {
60906    /// Sends a response to the FIDL transaction.
60907    ///
60908    /// Sets the channel to shutdown if an error occurs.
60909    pub fn send(
60910        self,
60911        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60912    ) -> Result<(), fidl::Error> {
60913        let _result = self.send_raw(result);
60914        if _result.is_err() {
60915            self.control_handle.shutdown();
60916        }
60917        self.drop_without_shutdown();
60918        _result
60919    }
60920
60921    /// Similar to "send" but does not shutdown the channel if an error occurs.
60922    pub fn send_no_shutdown_on_err(
60923        self,
60924        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60925    ) -> Result<(), fidl::Error> {
60926        let _result = self.send_raw(result);
60927        self.drop_without_shutdown();
60928        _result
60929    }
60930
60931    fn send_raw(
60932        &self,
60933        mut result: Result<(), fidl_fuchsia_posix::Errno>,
60934    ) -> Result<(), fidl::Error> {
60935        self.control_handle.inner.send::<fidl::encoding::ResultType<
60936            fidl::encoding::EmptyStruct,
60937            fidl_fuchsia_posix::Errno,
60938        >>(
60939            result,
60940            self.tx_id,
60941            0x756eac32d73a7a70,
60942            fidl::encoding::DynamicFlags::empty(),
60943        )
60944    }
60945}
60946
60947#[must_use = "FIDL methods require a response to be sent"]
60948#[derive(Debug)]
60949pub struct StreamSocketGetSendBufferResponder {
60950    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
60951    tx_id: u32,
60952}
60953
60954/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
60955/// if the responder is dropped without sending a response, so that the client
60956/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
60957impl std::ops::Drop for StreamSocketGetSendBufferResponder {
60958    fn drop(&mut self) {
60959        self.control_handle.shutdown();
60960        // Safety: drops once, never accessed again
60961        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60962    }
60963}
60964
60965impl fidl::endpoints::Responder for StreamSocketGetSendBufferResponder {
60966    type ControlHandle = StreamSocketControlHandle;
60967
60968    fn control_handle(&self) -> &StreamSocketControlHandle {
60969        &self.control_handle
60970    }
60971
60972    fn drop_without_shutdown(mut self) {
60973        // Safety: drops once, never accessed again due to mem::forget
60974        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
60975        // Prevent Drop from running (which would shut down the channel)
60976        std::mem::forget(self);
60977    }
60978}
60979
60980impl StreamSocketGetSendBufferResponder {
60981    /// Sends a response to the FIDL transaction.
60982    ///
60983    /// Sets the channel to shutdown if an error occurs.
60984    pub fn send(
60985        self,
60986        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
60987    ) -> Result<(), fidl::Error> {
60988        let _result = self.send_raw(result);
60989        if _result.is_err() {
60990            self.control_handle.shutdown();
60991        }
60992        self.drop_without_shutdown();
60993        _result
60994    }
60995
60996    /// Similar to "send" but does not shutdown the channel if an error occurs.
60997    pub fn send_no_shutdown_on_err(
60998        self,
60999        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
61000    ) -> Result<(), fidl::Error> {
61001        let _result = self.send_raw(result);
61002        self.drop_without_shutdown();
61003        _result
61004    }
61005
61006    fn send_raw(
61007        &self,
61008        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
61009    ) -> Result<(), fidl::Error> {
61010        self.control_handle.inner.send::<fidl::encoding::ResultType<
61011            BaseSocketGetSendBufferResponse,
61012            fidl_fuchsia_posix::Errno,
61013        >>(
61014            result.map(|value_bytes| (value_bytes,)),
61015            self.tx_id,
61016            0x78a52fd9c7b2410b,
61017            fidl::encoding::DynamicFlags::empty(),
61018        )
61019    }
61020}
61021
61022#[must_use = "FIDL methods require a response to be sent"]
61023#[derive(Debug)]
61024pub struct StreamSocketSetReceiveBufferResponder {
61025    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61026    tx_id: u32,
61027}
61028
61029/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61030/// if the responder is dropped without sending a response, so that the client
61031/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61032impl std::ops::Drop for StreamSocketSetReceiveBufferResponder {
61033    fn drop(&mut self) {
61034        self.control_handle.shutdown();
61035        // Safety: drops once, never accessed again
61036        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61037    }
61038}
61039
61040impl fidl::endpoints::Responder for StreamSocketSetReceiveBufferResponder {
61041    type ControlHandle = StreamSocketControlHandle;
61042
61043    fn control_handle(&self) -> &StreamSocketControlHandle {
61044        &self.control_handle
61045    }
61046
61047    fn drop_without_shutdown(mut self) {
61048        // Safety: drops once, never accessed again due to mem::forget
61049        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61050        // Prevent Drop from running (which would shut down the channel)
61051        std::mem::forget(self);
61052    }
61053}
61054
61055impl StreamSocketSetReceiveBufferResponder {
61056    /// Sends a response to the FIDL transaction.
61057    ///
61058    /// Sets the channel to shutdown if an error occurs.
61059    pub fn send(
61060        self,
61061        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61062    ) -> Result<(), fidl::Error> {
61063        let _result = self.send_raw(result);
61064        if _result.is_err() {
61065            self.control_handle.shutdown();
61066        }
61067        self.drop_without_shutdown();
61068        _result
61069    }
61070
61071    /// Similar to "send" but does not shutdown the channel if an error occurs.
61072    pub fn send_no_shutdown_on_err(
61073        self,
61074        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61075    ) -> Result<(), fidl::Error> {
61076        let _result = self.send_raw(result);
61077        self.drop_without_shutdown();
61078        _result
61079    }
61080
61081    fn send_raw(
61082        &self,
61083        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61084    ) -> Result<(), fidl::Error> {
61085        self.control_handle.inner.send::<fidl::encoding::ResultType<
61086            fidl::encoding::EmptyStruct,
61087            fidl_fuchsia_posix::Errno,
61088        >>(
61089            result,
61090            self.tx_id,
61091            0x6b0cf2f1919c7001,
61092            fidl::encoding::DynamicFlags::empty(),
61093        )
61094    }
61095}
61096
61097#[must_use = "FIDL methods require a response to be sent"]
61098#[derive(Debug)]
61099pub struct StreamSocketGetReceiveBufferResponder {
61100    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61101    tx_id: u32,
61102}
61103
61104/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61105/// if the responder is dropped without sending a response, so that the client
61106/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61107impl std::ops::Drop for StreamSocketGetReceiveBufferResponder {
61108    fn drop(&mut self) {
61109        self.control_handle.shutdown();
61110        // Safety: drops once, never accessed again
61111        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61112    }
61113}
61114
61115impl fidl::endpoints::Responder for StreamSocketGetReceiveBufferResponder {
61116    type ControlHandle = StreamSocketControlHandle;
61117
61118    fn control_handle(&self) -> &StreamSocketControlHandle {
61119        &self.control_handle
61120    }
61121
61122    fn drop_without_shutdown(mut self) {
61123        // Safety: drops once, never accessed again due to mem::forget
61124        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61125        // Prevent Drop from running (which would shut down the channel)
61126        std::mem::forget(self);
61127    }
61128}
61129
61130impl StreamSocketGetReceiveBufferResponder {
61131    /// Sends a response to the FIDL transaction.
61132    ///
61133    /// Sets the channel to shutdown if an error occurs.
61134    pub fn send(
61135        self,
61136        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
61137    ) -> Result<(), fidl::Error> {
61138        let _result = self.send_raw(result);
61139        if _result.is_err() {
61140            self.control_handle.shutdown();
61141        }
61142        self.drop_without_shutdown();
61143        _result
61144    }
61145
61146    /// Similar to "send" but does not shutdown the channel if an error occurs.
61147    pub fn send_no_shutdown_on_err(
61148        self,
61149        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
61150    ) -> Result<(), fidl::Error> {
61151        let _result = self.send_raw(result);
61152        self.drop_without_shutdown();
61153        _result
61154    }
61155
61156    fn send_raw(
61157        &self,
61158        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
61159    ) -> Result<(), fidl::Error> {
61160        self.control_handle.inner.send::<fidl::encoding::ResultType<
61161            BaseSocketGetReceiveBufferResponse,
61162            fidl_fuchsia_posix::Errno,
61163        >>(
61164            result.map(|value_bytes| (value_bytes,)),
61165            self.tx_id,
61166            0x14c1a4b64f709e5c,
61167            fidl::encoding::DynamicFlags::empty(),
61168        )
61169    }
61170}
61171
61172#[must_use = "FIDL methods require a response to be sent"]
61173#[derive(Debug)]
61174pub struct StreamSocketSetKeepAliveResponder {
61175    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61176    tx_id: u32,
61177}
61178
61179/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61180/// if the responder is dropped without sending a response, so that the client
61181/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61182impl std::ops::Drop for StreamSocketSetKeepAliveResponder {
61183    fn drop(&mut self) {
61184        self.control_handle.shutdown();
61185        // Safety: drops once, never accessed again
61186        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61187    }
61188}
61189
61190impl fidl::endpoints::Responder for StreamSocketSetKeepAliveResponder {
61191    type ControlHandle = StreamSocketControlHandle;
61192
61193    fn control_handle(&self) -> &StreamSocketControlHandle {
61194        &self.control_handle
61195    }
61196
61197    fn drop_without_shutdown(mut self) {
61198        // Safety: drops once, never accessed again due to mem::forget
61199        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61200        // Prevent Drop from running (which would shut down the channel)
61201        std::mem::forget(self);
61202    }
61203}
61204
61205impl StreamSocketSetKeepAliveResponder {
61206    /// Sends a response to the FIDL transaction.
61207    ///
61208    /// Sets the channel to shutdown if an error occurs.
61209    pub fn send(
61210        self,
61211        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61212    ) -> Result<(), fidl::Error> {
61213        let _result = self.send_raw(result);
61214        if _result.is_err() {
61215            self.control_handle.shutdown();
61216        }
61217        self.drop_without_shutdown();
61218        _result
61219    }
61220
61221    /// Similar to "send" but does not shutdown the channel if an error occurs.
61222    pub fn send_no_shutdown_on_err(
61223        self,
61224        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61225    ) -> Result<(), fidl::Error> {
61226        let _result = self.send_raw(result);
61227        self.drop_without_shutdown();
61228        _result
61229    }
61230
61231    fn send_raw(
61232        &self,
61233        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61234    ) -> Result<(), fidl::Error> {
61235        self.control_handle.inner.send::<fidl::encoding::ResultType<
61236            fidl::encoding::EmptyStruct,
61237            fidl_fuchsia_posix::Errno,
61238        >>(
61239            result,
61240            self.tx_id,
61241            0x572df8f0b920d2c7,
61242            fidl::encoding::DynamicFlags::empty(),
61243        )
61244    }
61245}
61246
61247#[must_use = "FIDL methods require a response to be sent"]
61248#[derive(Debug)]
61249pub struct StreamSocketGetKeepAliveResponder {
61250    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61251    tx_id: u32,
61252}
61253
61254/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61255/// if the responder is dropped without sending a response, so that the client
61256/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61257impl std::ops::Drop for StreamSocketGetKeepAliveResponder {
61258    fn drop(&mut self) {
61259        self.control_handle.shutdown();
61260        // Safety: drops once, never accessed again
61261        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61262    }
61263}
61264
61265impl fidl::endpoints::Responder for StreamSocketGetKeepAliveResponder {
61266    type ControlHandle = StreamSocketControlHandle;
61267
61268    fn control_handle(&self) -> &StreamSocketControlHandle {
61269        &self.control_handle
61270    }
61271
61272    fn drop_without_shutdown(mut self) {
61273        // Safety: drops once, never accessed again due to mem::forget
61274        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61275        // Prevent Drop from running (which would shut down the channel)
61276        std::mem::forget(self);
61277    }
61278}
61279
61280impl StreamSocketGetKeepAliveResponder {
61281    /// Sends a response to the FIDL transaction.
61282    ///
61283    /// Sets the channel to shutdown if an error occurs.
61284    pub fn send(
61285        self,
61286        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61287    ) -> Result<(), fidl::Error> {
61288        let _result = self.send_raw(result);
61289        if _result.is_err() {
61290            self.control_handle.shutdown();
61291        }
61292        self.drop_without_shutdown();
61293        _result
61294    }
61295
61296    /// Similar to "send" but does not shutdown the channel if an error occurs.
61297    pub fn send_no_shutdown_on_err(
61298        self,
61299        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61300    ) -> Result<(), fidl::Error> {
61301        let _result = self.send_raw(result);
61302        self.drop_without_shutdown();
61303        _result
61304    }
61305
61306    fn send_raw(
61307        &self,
61308        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61309    ) -> Result<(), fidl::Error> {
61310        self.control_handle.inner.send::<fidl::encoding::ResultType<
61311            BaseSocketGetKeepAliveResponse,
61312            fidl_fuchsia_posix::Errno,
61313        >>(
61314            result.map(|value| (value,)),
61315            self.tx_id,
61316            0x2dd29d3215f2c9d2,
61317            fidl::encoding::DynamicFlags::empty(),
61318        )
61319    }
61320}
61321
61322#[must_use = "FIDL methods require a response to be sent"]
61323#[derive(Debug)]
61324pub struct StreamSocketSetOutOfBandInlineResponder {
61325    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61326    tx_id: u32,
61327}
61328
61329/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61330/// if the responder is dropped without sending a response, so that the client
61331/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61332impl std::ops::Drop for StreamSocketSetOutOfBandInlineResponder {
61333    fn drop(&mut self) {
61334        self.control_handle.shutdown();
61335        // Safety: drops once, never accessed again
61336        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61337    }
61338}
61339
61340impl fidl::endpoints::Responder for StreamSocketSetOutOfBandInlineResponder {
61341    type ControlHandle = StreamSocketControlHandle;
61342
61343    fn control_handle(&self) -> &StreamSocketControlHandle {
61344        &self.control_handle
61345    }
61346
61347    fn drop_without_shutdown(mut self) {
61348        // Safety: drops once, never accessed again due to mem::forget
61349        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61350        // Prevent Drop from running (which would shut down the channel)
61351        std::mem::forget(self);
61352    }
61353}
61354
61355impl StreamSocketSetOutOfBandInlineResponder {
61356    /// Sends a response to the FIDL transaction.
61357    ///
61358    /// Sets the channel to shutdown if an error occurs.
61359    pub fn send(
61360        self,
61361        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61362    ) -> Result<(), fidl::Error> {
61363        let _result = self.send_raw(result);
61364        if _result.is_err() {
61365            self.control_handle.shutdown();
61366        }
61367        self.drop_without_shutdown();
61368        _result
61369    }
61370
61371    /// Similar to "send" but does not shutdown the channel if an error occurs.
61372    pub fn send_no_shutdown_on_err(
61373        self,
61374        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61375    ) -> Result<(), fidl::Error> {
61376        let _result = self.send_raw(result);
61377        self.drop_without_shutdown();
61378        _result
61379    }
61380
61381    fn send_raw(
61382        &self,
61383        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61384    ) -> Result<(), fidl::Error> {
61385        self.control_handle.inner.send::<fidl::encoding::ResultType<
61386            fidl::encoding::EmptyStruct,
61387            fidl_fuchsia_posix::Errno,
61388        >>(
61389            result,
61390            self.tx_id,
61391            0x3ecb49968bee439,
61392            fidl::encoding::DynamicFlags::empty(),
61393        )
61394    }
61395}
61396
61397#[must_use = "FIDL methods require a response to be sent"]
61398#[derive(Debug)]
61399pub struct StreamSocketGetOutOfBandInlineResponder {
61400    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61401    tx_id: u32,
61402}
61403
61404/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61405/// if the responder is dropped without sending a response, so that the client
61406/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61407impl std::ops::Drop for StreamSocketGetOutOfBandInlineResponder {
61408    fn drop(&mut self) {
61409        self.control_handle.shutdown();
61410        // Safety: drops once, never accessed again
61411        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61412    }
61413}
61414
61415impl fidl::endpoints::Responder for StreamSocketGetOutOfBandInlineResponder {
61416    type ControlHandle = StreamSocketControlHandle;
61417
61418    fn control_handle(&self) -> &StreamSocketControlHandle {
61419        &self.control_handle
61420    }
61421
61422    fn drop_without_shutdown(mut self) {
61423        // Safety: drops once, never accessed again due to mem::forget
61424        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61425        // Prevent Drop from running (which would shut down the channel)
61426        std::mem::forget(self);
61427    }
61428}
61429
61430impl StreamSocketGetOutOfBandInlineResponder {
61431    /// Sends a response to the FIDL transaction.
61432    ///
61433    /// Sets the channel to shutdown if an error occurs.
61434    pub fn send(
61435        self,
61436        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61437    ) -> Result<(), fidl::Error> {
61438        let _result = self.send_raw(result);
61439        if _result.is_err() {
61440            self.control_handle.shutdown();
61441        }
61442        self.drop_without_shutdown();
61443        _result
61444    }
61445
61446    /// Similar to "send" but does not shutdown the channel if an error occurs.
61447    pub fn send_no_shutdown_on_err(
61448        self,
61449        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61450    ) -> Result<(), fidl::Error> {
61451        let _result = self.send_raw(result);
61452        self.drop_without_shutdown();
61453        _result
61454    }
61455
61456    fn send_raw(
61457        &self,
61458        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61459    ) -> Result<(), fidl::Error> {
61460        self.control_handle.inner.send::<fidl::encoding::ResultType<
61461            BaseSocketGetOutOfBandInlineResponse,
61462            fidl_fuchsia_posix::Errno,
61463        >>(
61464            result.map(|value| (value,)),
61465            self.tx_id,
61466            0x348c1ab3aeca1745,
61467            fidl::encoding::DynamicFlags::empty(),
61468        )
61469    }
61470}
61471
61472#[must_use = "FIDL methods require a response to be sent"]
61473#[derive(Debug)]
61474pub struct StreamSocketSetNoCheckResponder {
61475    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61476    tx_id: u32,
61477}
61478
61479/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61480/// if the responder is dropped without sending a response, so that the client
61481/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61482impl std::ops::Drop for StreamSocketSetNoCheckResponder {
61483    fn drop(&mut self) {
61484        self.control_handle.shutdown();
61485        // Safety: drops once, never accessed again
61486        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61487    }
61488}
61489
61490impl fidl::endpoints::Responder for StreamSocketSetNoCheckResponder {
61491    type ControlHandle = StreamSocketControlHandle;
61492
61493    fn control_handle(&self) -> &StreamSocketControlHandle {
61494        &self.control_handle
61495    }
61496
61497    fn drop_without_shutdown(mut self) {
61498        // Safety: drops once, never accessed again due to mem::forget
61499        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61500        // Prevent Drop from running (which would shut down the channel)
61501        std::mem::forget(self);
61502    }
61503}
61504
61505impl StreamSocketSetNoCheckResponder {
61506    /// Sends a response to the FIDL transaction.
61507    ///
61508    /// Sets the channel to shutdown if an error occurs.
61509    pub fn send(
61510        self,
61511        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61512    ) -> Result<(), fidl::Error> {
61513        let _result = self.send_raw(result);
61514        if _result.is_err() {
61515            self.control_handle.shutdown();
61516        }
61517        self.drop_without_shutdown();
61518        _result
61519    }
61520
61521    /// Similar to "send" but does not shutdown the channel if an error occurs.
61522    pub fn send_no_shutdown_on_err(
61523        self,
61524        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61525    ) -> Result<(), fidl::Error> {
61526        let _result = self.send_raw(result);
61527        self.drop_without_shutdown();
61528        _result
61529    }
61530
61531    fn send_raw(
61532        &self,
61533        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61534    ) -> Result<(), fidl::Error> {
61535        self.control_handle.inner.send::<fidl::encoding::ResultType<
61536            fidl::encoding::EmptyStruct,
61537            fidl_fuchsia_posix::Errno,
61538        >>(
61539            result,
61540            self.tx_id,
61541            0x6bbf00c53a4c78c2,
61542            fidl::encoding::DynamicFlags::empty(),
61543        )
61544    }
61545}
61546
61547#[must_use = "FIDL methods require a response to be sent"]
61548#[derive(Debug)]
61549pub struct StreamSocketGetNoCheckResponder {
61550    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61551    tx_id: u32,
61552}
61553
61554/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61555/// if the responder is dropped without sending a response, so that the client
61556/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61557impl std::ops::Drop for StreamSocketGetNoCheckResponder {
61558    fn drop(&mut self) {
61559        self.control_handle.shutdown();
61560        // Safety: drops once, never accessed again
61561        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61562    }
61563}
61564
61565impl fidl::endpoints::Responder for StreamSocketGetNoCheckResponder {
61566    type ControlHandle = StreamSocketControlHandle;
61567
61568    fn control_handle(&self) -> &StreamSocketControlHandle {
61569        &self.control_handle
61570    }
61571
61572    fn drop_without_shutdown(mut self) {
61573        // Safety: drops once, never accessed again due to mem::forget
61574        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61575        // Prevent Drop from running (which would shut down the channel)
61576        std::mem::forget(self);
61577    }
61578}
61579
61580impl StreamSocketGetNoCheckResponder {
61581    /// Sends a response to the FIDL transaction.
61582    ///
61583    /// Sets the channel to shutdown if an error occurs.
61584    pub fn send(
61585        self,
61586        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61587    ) -> Result<(), fidl::Error> {
61588        let _result = self.send_raw(result);
61589        if _result.is_err() {
61590            self.control_handle.shutdown();
61591        }
61592        self.drop_without_shutdown();
61593        _result
61594    }
61595
61596    /// Similar to "send" but does not shutdown the channel if an error occurs.
61597    pub fn send_no_shutdown_on_err(
61598        self,
61599        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61600    ) -> Result<(), fidl::Error> {
61601        let _result = self.send_raw(result);
61602        self.drop_without_shutdown();
61603        _result
61604    }
61605
61606    fn send_raw(
61607        &self,
61608        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61609    ) -> Result<(), fidl::Error> {
61610        self.control_handle.inner.send::<fidl::encoding::ResultType<
61611            BaseSocketGetNoCheckResponse,
61612            fidl_fuchsia_posix::Errno,
61613        >>(
61614            result.map(|value| (value,)),
61615            self.tx_id,
61616            0x2cd4249286417694,
61617            fidl::encoding::DynamicFlags::empty(),
61618        )
61619    }
61620}
61621
61622#[must_use = "FIDL methods require a response to be sent"]
61623#[derive(Debug)]
61624pub struct StreamSocketSetLingerResponder {
61625    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61626    tx_id: u32,
61627}
61628
61629/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61630/// if the responder is dropped without sending a response, so that the client
61631/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61632impl std::ops::Drop for StreamSocketSetLingerResponder {
61633    fn drop(&mut self) {
61634        self.control_handle.shutdown();
61635        // Safety: drops once, never accessed again
61636        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61637    }
61638}
61639
61640impl fidl::endpoints::Responder for StreamSocketSetLingerResponder {
61641    type ControlHandle = StreamSocketControlHandle;
61642
61643    fn control_handle(&self) -> &StreamSocketControlHandle {
61644        &self.control_handle
61645    }
61646
61647    fn drop_without_shutdown(mut self) {
61648        // Safety: drops once, never accessed again due to mem::forget
61649        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61650        // Prevent Drop from running (which would shut down the channel)
61651        std::mem::forget(self);
61652    }
61653}
61654
61655impl StreamSocketSetLingerResponder {
61656    /// Sends a response to the FIDL transaction.
61657    ///
61658    /// Sets the channel to shutdown if an error occurs.
61659    pub fn send(
61660        self,
61661        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61662    ) -> Result<(), fidl::Error> {
61663        let _result = self.send_raw(result);
61664        if _result.is_err() {
61665            self.control_handle.shutdown();
61666        }
61667        self.drop_without_shutdown();
61668        _result
61669    }
61670
61671    /// Similar to "send" but does not shutdown the channel if an error occurs.
61672    pub fn send_no_shutdown_on_err(
61673        self,
61674        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61675    ) -> Result<(), fidl::Error> {
61676        let _result = self.send_raw(result);
61677        self.drop_without_shutdown();
61678        _result
61679    }
61680
61681    fn send_raw(
61682        &self,
61683        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61684    ) -> Result<(), fidl::Error> {
61685        self.control_handle.inner.send::<fidl::encoding::ResultType<
61686            fidl::encoding::EmptyStruct,
61687            fidl_fuchsia_posix::Errno,
61688        >>(
61689            result,
61690            self.tx_id,
61691            0x45386351246e998e,
61692            fidl::encoding::DynamicFlags::empty(),
61693        )
61694    }
61695}
61696
61697#[must_use = "FIDL methods require a response to be sent"]
61698#[derive(Debug)]
61699pub struct StreamSocketGetLingerResponder {
61700    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61701    tx_id: u32,
61702}
61703
61704/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61705/// if the responder is dropped without sending a response, so that the client
61706/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61707impl std::ops::Drop for StreamSocketGetLingerResponder {
61708    fn drop(&mut self) {
61709        self.control_handle.shutdown();
61710        // Safety: drops once, never accessed again
61711        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61712    }
61713}
61714
61715impl fidl::endpoints::Responder for StreamSocketGetLingerResponder {
61716    type ControlHandle = StreamSocketControlHandle;
61717
61718    fn control_handle(&self) -> &StreamSocketControlHandle {
61719        &self.control_handle
61720    }
61721
61722    fn drop_without_shutdown(mut self) {
61723        // Safety: drops once, never accessed again due to mem::forget
61724        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61725        // Prevent Drop from running (which would shut down the channel)
61726        std::mem::forget(self);
61727    }
61728}
61729
61730impl StreamSocketGetLingerResponder {
61731    /// Sends a response to the FIDL transaction.
61732    ///
61733    /// Sets the channel to shutdown if an error occurs.
61734    pub fn send(
61735        self,
61736        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
61737    ) -> Result<(), fidl::Error> {
61738        let _result = self.send_raw(result);
61739        if _result.is_err() {
61740            self.control_handle.shutdown();
61741        }
61742        self.drop_without_shutdown();
61743        _result
61744    }
61745
61746    /// Similar to "send" but does not shutdown the channel if an error occurs.
61747    pub fn send_no_shutdown_on_err(
61748        self,
61749        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
61750    ) -> Result<(), fidl::Error> {
61751        let _result = self.send_raw(result);
61752        self.drop_without_shutdown();
61753        _result
61754    }
61755
61756    fn send_raw(
61757        &self,
61758        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
61759    ) -> Result<(), fidl::Error> {
61760        self.control_handle.inner.send::<fidl::encoding::ResultType<
61761            BaseSocketGetLingerResponse,
61762            fidl_fuchsia_posix::Errno,
61763        >>(
61764            result,
61765            self.tx_id,
61766            0x48eb20fc5ccb0e45,
61767            fidl::encoding::DynamicFlags::empty(),
61768        )
61769    }
61770}
61771
61772#[must_use = "FIDL methods require a response to be sent"]
61773#[derive(Debug)]
61774pub struct StreamSocketSetReusePortResponder {
61775    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61776    tx_id: u32,
61777}
61778
61779/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61780/// if the responder is dropped without sending a response, so that the client
61781/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61782impl std::ops::Drop for StreamSocketSetReusePortResponder {
61783    fn drop(&mut self) {
61784        self.control_handle.shutdown();
61785        // Safety: drops once, never accessed again
61786        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61787    }
61788}
61789
61790impl fidl::endpoints::Responder for StreamSocketSetReusePortResponder {
61791    type ControlHandle = StreamSocketControlHandle;
61792
61793    fn control_handle(&self) -> &StreamSocketControlHandle {
61794        &self.control_handle
61795    }
61796
61797    fn drop_without_shutdown(mut self) {
61798        // Safety: drops once, never accessed again due to mem::forget
61799        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61800        // Prevent Drop from running (which would shut down the channel)
61801        std::mem::forget(self);
61802    }
61803}
61804
61805impl StreamSocketSetReusePortResponder {
61806    /// Sends a response to the FIDL transaction.
61807    ///
61808    /// Sets the channel to shutdown if an error occurs.
61809    pub fn send(
61810        self,
61811        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61812    ) -> Result<(), fidl::Error> {
61813        let _result = self.send_raw(result);
61814        if _result.is_err() {
61815            self.control_handle.shutdown();
61816        }
61817        self.drop_without_shutdown();
61818        _result
61819    }
61820
61821    /// Similar to "send" but does not shutdown the channel if an error occurs.
61822    pub fn send_no_shutdown_on_err(
61823        self,
61824        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61825    ) -> Result<(), fidl::Error> {
61826        let _result = self.send_raw(result);
61827        self.drop_without_shutdown();
61828        _result
61829    }
61830
61831    fn send_raw(
61832        &self,
61833        mut result: Result<(), fidl_fuchsia_posix::Errno>,
61834    ) -> Result<(), fidl::Error> {
61835        self.control_handle.inner.send::<fidl::encoding::ResultType<
61836            fidl::encoding::EmptyStruct,
61837            fidl_fuchsia_posix::Errno,
61838        >>(
61839            result,
61840            self.tx_id,
61841            0x24dd3e5cb36d9ccb,
61842            fidl::encoding::DynamicFlags::empty(),
61843        )
61844    }
61845}
61846
61847#[must_use = "FIDL methods require a response to be sent"]
61848#[derive(Debug)]
61849pub struct StreamSocketGetReusePortResponder {
61850    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61851    tx_id: u32,
61852}
61853
61854/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61855/// if the responder is dropped without sending a response, so that the client
61856/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61857impl std::ops::Drop for StreamSocketGetReusePortResponder {
61858    fn drop(&mut self) {
61859        self.control_handle.shutdown();
61860        // Safety: drops once, never accessed again
61861        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61862    }
61863}
61864
61865impl fidl::endpoints::Responder for StreamSocketGetReusePortResponder {
61866    type ControlHandle = StreamSocketControlHandle;
61867
61868    fn control_handle(&self) -> &StreamSocketControlHandle {
61869        &self.control_handle
61870    }
61871
61872    fn drop_without_shutdown(mut self) {
61873        // Safety: drops once, never accessed again due to mem::forget
61874        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61875        // Prevent Drop from running (which would shut down the channel)
61876        std::mem::forget(self);
61877    }
61878}
61879
61880impl StreamSocketGetReusePortResponder {
61881    /// Sends a response to the FIDL transaction.
61882    ///
61883    /// Sets the channel to shutdown if an error occurs.
61884    pub fn send(
61885        self,
61886        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61887    ) -> Result<(), fidl::Error> {
61888        let _result = self.send_raw(result);
61889        if _result.is_err() {
61890            self.control_handle.shutdown();
61891        }
61892        self.drop_without_shutdown();
61893        _result
61894    }
61895
61896    /// Similar to "send" but does not shutdown the channel if an error occurs.
61897    pub fn send_no_shutdown_on_err(
61898        self,
61899        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61900    ) -> Result<(), fidl::Error> {
61901        let _result = self.send_raw(result);
61902        self.drop_without_shutdown();
61903        _result
61904    }
61905
61906    fn send_raw(
61907        &self,
61908        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61909    ) -> Result<(), fidl::Error> {
61910        self.control_handle.inner.send::<fidl::encoding::ResultType<
61911            BaseSocketGetReusePortResponse,
61912            fidl_fuchsia_posix::Errno,
61913        >>(
61914            result.map(|value| (value,)),
61915            self.tx_id,
61916            0x7a112c1ab54ff828,
61917            fidl::encoding::DynamicFlags::empty(),
61918        )
61919    }
61920}
61921
61922#[must_use = "FIDL methods require a response to be sent"]
61923#[derive(Debug)]
61924pub struct StreamSocketGetAcceptConnResponder {
61925    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
61926    tx_id: u32,
61927}
61928
61929/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
61930/// if the responder is dropped without sending a response, so that the client
61931/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
61932impl std::ops::Drop for StreamSocketGetAcceptConnResponder {
61933    fn drop(&mut self) {
61934        self.control_handle.shutdown();
61935        // Safety: drops once, never accessed again
61936        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61937    }
61938}
61939
61940impl fidl::endpoints::Responder for StreamSocketGetAcceptConnResponder {
61941    type ControlHandle = StreamSocketControlHandle;
61942
61943    fn control_handle(&self) -> &StreamSocketControlHandle {
61944        &self.control_handle
61945    }
61946
61947    fn drop_without_shutdown(mut self) {
61948        // Safety: drops once, never accessed again due to mem::forget
61949        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
61950        // Prevent Drop from running (which would shut down the channel)
61951        std::mem::forget(self);
61952    }
61953}
61954
61955impl StreamSocketGetAcceptConnResponder {
61956    /// Sends a response to the FIDL transaction.
61957    ///
61958    /// Sets the channel to shutdown if an error occurs.
61959    pub fn send(
61960        self,
61961        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61962    ) -> Result<(), fidl::Error> {
61963        let _result = self.send_raw(result);
61964        if _result.is_err() {
61965            self.control_handle.shutdown();
61966        }
61967        self.drop_without_shutdown();
61968        _result
61969    }
61970
61971    /// Similar to "send" but does not shutdown the channel if an error occurs.
61972    pub fn send_no_shutdown_on_err(
61973        self,
61974        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61975    ) -> Result<(), fidl::Error> {
61976        let _result = self.send_raw(result);
61977        self.drop_without_shutdown();
61978        _result
61979    }
61980
61981    fn send_raw(
61982        &self,
61983        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
61984    ) -> Result<(), fidl::Error> {
61985        self.control_handle.inner.send::<fidl::encoding::ResultType<
61986            BaseSocketGetAcceptConnResponse,
61987            fidl_fuchsia_posix::Errno,
61988        >>(
61989            result.map(|value| (value,)),
61990            self.tx_id,
61991            0x67ce6db6c2ec8966,
61992            fidl::encoding::DynamicFlags::empty(),
61993        )
61994    }
61995}
61996
61997#[must_use = "FIDL methods require a response to be sent"]
61998#[derive(Debug)]
61999pub struct StreamSocketSetBindToDeviceResponder {
62000    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62001    tx_id: u32,
62002}
62003
62004/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62005/// if the responder is dropped without sending a response, so that the client
62006/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62007impl std::ops::Drop for StreamSocketSetBindToDeviceResponder {
62008    fn drop(&mut self) {
62009        self.control_handle.shutdown();
62010        // Safety: drops once, never accessed again
62011        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62012    }
62013}
62014
62015impl fidl::endpoints::Responder for StreamSocketSetBindToDeviceResponder {
62016    type ControlHandle = StreamSocketControlHandle;
62017
62018    fn control_handle(&self) -> &StreamSocketControlHandle {
62019        &self.control_handle
62020    }
62021
62022    fn drop_without_shutdown(mut self) {
62023        // Safety: drops once, never accessed again due to mem::forget
62024        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62025        // Prevent Drop from running (which would shut down the channel)
62026        std::mem::forget(self);
62027    }
62028}
62029
62030impl StreamSocketSetBindToDeviceResponder {
62031    /// Sends a response to the FIDL transaction.
62032    ///
62033    /// Sets the channel to shutdown if an error occurs.
62034    pub fn send(
62035        self,
62036        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62037    ) -> Result<(), fidl::Error> {
62038        let _result = self.send_raw(result);
62039        if _result.is_err() {
62040            self.control_handle.shutdown();
62041        }
62042        self.drop_without_shutdown();
62043        _result
62044    }
62045
62046    /// Similar to "send" but does not shutdown the channel if an error occurs.
62047    pub fn send_no_shutdown_on_err(
62048        self,
62049        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62050    ) -> Result<(), fidl::Error> {
62051        let _result = self.send_raw(result);
62052        self.drop_without_shutdown();
62053        _result
62054    }
62055
62056    fn send_raw(
62057        &self,
62058        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62059    ) -> Result<(), fidl::Error> {
62060        self.control_handle.inner.send::<fidl::encoding::ResultType<
62061            fidl::encoding::EmptyStruct,
62062            fidl_fuchsia_posix::Errno,
62063        >>(
62064            result,
62065            self.tx_id,
62066            0x2118b483f28aafc4,
62067            fidl::encoding::DynamicFlags::empty(),
62068        )
62069    }
62070}
62071
62072#[must_use = "FIDL methods require a response to be sent"]
62073#[derive(Debug)]
62074pub struct StreamSocketGetBindToDeviceResponder {
62075    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62076    tx_id: u32,
62077}
62078
62079/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62080/// if the responder is dropped without sending a response, so that the client
62081/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62082impl std::ops::Drop for StreamSocketGetBindToDeviceResponder {
62083    fn drop(&mut self) {
62084        self.control_handle.shutdown();
62085        // Safety: drops once, never accessed again
62086        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62087    }
62088}
62089
62090impl fidl::endpoints::Responder for StreamSocketGetBindToDeviceResponder {
62091    type ControlHandle = StreamSocketControlHandle;
62092
62093    fn control_handle(&self) -> &StreamSocketControlHandle {
62094        &self.control_handle
62095    }
62096
62097    fn drop_without_shutdown(mut self) {
62098        // Safety: drops once, never accessed again due to mem::forget
62099        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62100        // Prevent Drop from running (which would shut down the channel)
62101        std::mem::forget(self);
62102    }
62103}
62104
62105impl StreamSocketGetBindToDeviceResponder {
62106    /// Sends a response to the FIDL transaction.
62107    ///
62108    /// Sets the channel to shutdown if an error occurs.
62109    pub fn send(
62110        self,
62111        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
62112    ) -> Result<(), fidl::Error> {
62113        let _result = self.send_raw(result);
62114        if _result.is_err() {
62115            self.control_handle.shutdown();
62116        }
62117        self.drop_without_shutdown();
62118        _result
62119    }
62120
62121    /// Similar to "send" but does not shutdown the channel if an error occurs.
62122    pub fn send_no_shutdown_on_err(
62123        self,
62124        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
62125    ) -> Result<(), fidl::Error> {
62126        let _result = self.send_raw(result);
62127        self.drop_without_shutdown();
62128        _result
62129    }
62130
62131    fn send_raw(
62132        &self,
62133        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
62134    ) -> Result<(), fidl::Error> {
62135        self.control_handle.inner.send::<fidl::encoding::ResultType<
62136            BaseSocketGetBindToDeviceResponse,
62137            fidl_fuchsia_posix::Errno,
62138        >>(
62139            result.map(|value| (value,)),
62140            self.tx_id,
62141            0x1ab1fbf0ef7906c8,
62142            fidl::encoding::DynamicFlags::empty(),
62143        )
62144    }
62145}
62146
62147#[must_use = "FIDL methods require a response to be sent"]
62148#[derive(Debug)]
62149pub struct StreamSocketSetBindToInterfaceIndexResponder {
62150    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62151    tx_id: u32,
62152}
62153
62154/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62155/// if the responder is dropped without sending a response, so that the client
62156/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62157impl std::ops::Drop for StreamSocketSetBindToInterfaceIndexResponder {
62158    fn drop(&mut self) {
62159        self.control_handle.shutdown();
62160        // Safety: drops once, never accessed again
62161        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62162    }
62163}
62164
62165impl fidl::endpoints::Responder for StreamSocketSetBindToInterfaceIndexResponder {
62166    type ControlHandle = StreamSocketControlHandle;
62167
62168    fn control_handle(&self) -> &StreamSocketControlHandle {
62169        &self.control_handle
62170    }
62171
62172    fn drop_without_shutdown(mut self) {
62173        // Safety: drops once, never accessed again due to mem::forget
62174        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62175        // Prevent Drop from running (which would shut down the channel)
62176        std::mem::forget(self);
62177    }
62178}
62179
62180impl StreamSocketSetBindToInterfaceIndexResponder {
62181    /// Sends a response to the FIDL transaction.
62182    ///
62183    /// Sets the channel to shutdown if an error occurs.
62184    pub fn send(
62185        self,
62186        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62187    ) -> Result<(), fidl::Error> {
62188        let _result = self.send_raw(result);
62189        if _result.is_err() {
62190            self.control_handle.shutdown();
62191        }
62192        self.drop_without_shutdown();
62193        _result
62194    }
62195
62196    /// Similar to "send" but does not shutdown the channel if an error occurs.
62197    pub fn send_no_shutdown_on_err(
62198        self,
62199        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62200    ) -> Result<(), fidl::Error> {
62201        let _result = self.send_raw(result);
62202        self.drop_without_shutdown();
62203        _result
62204    }
62205
62206    fn send_raw(
62207        &self,
62208        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62209    ) -> Result<(), fidl::Error> {
62210        self.control_handle.inner.send::<fidl::encoding::ResultType<
62211            fidl::encoding::EmptyStruct,
62212            fidl_fuchsia_posix::Errno,
62213        >>(
62214            result,
62215            self.tx_id,
62216            0x6e387a0def00821,
62217            fidl::encoding::DynamicFlags::empty(),
62218        )
62219    }
62220}
62221
62222#[must_use = "FIDL methods require a response to be sent"]
62223#[derive(Debug)]
62224pub struct StreamSocketGetBindToInterfaceIndexResponder {
62225    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62226    tx_id: u32,
62227}
62228
62229/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62230/// if the responder is dropped without sending a response, so that the client
62231/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62232impl std::ops::Drop for StreamSocketGetBindToInterfaceIndexResponder {
62233    fn drop(&mut self) {
62234        self.control_handle.shutdown();
62235        // Safety: drops once, never accessed again
62236        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62237    }
62238}
62239
62240impl fidl::endpoints::Responder for StreamSocketGetBindToInterfaceIndexResponder {
62241    type ControlHandle = StreamSocketControlHandle;
62242
62243    fn control_handle(&self) -> &StreamSocketControlHandle {
62244        &self.control_handle
62245    }
62246
62247    fn drop_without_shutdown(mut self) {
62248        // Safety: drops once, never accessed again due to mem::forget
62249        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62250        // Prevent Drop from running (which would shut down the channel)
62251        std::mem::forget(self);
62252    }
62253}
62254
62255impl StreamSocketGetBindToInterfaceIndexResponder {
62256    /// Sends a response to the FIDL transaction.
62257    ///
62258    /// Sets the channel to shutdown if an error occurs.
62259    pub fn send(
62260        self,
62261        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62262    ) -> Result<(), fidl::Error> {
62263        let _result = self.send_raw(result);
62264        if _result.is_err() {
62265            self.control_handle.shutdown();
62266        }
62267        self.drop_without_shutdown();
62268        _result
62269    }
62270
62271    /// Similar to "send" but does not shutdown the channel if an error occurs.
62272    pub fn send_no_shutdown_on_err(
62273        self,
62274        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62275    ) -> Result<(), fidl::Error> {
62276        let _result = self.send_raw(result);
62277        self.drop_without_shutdown();
62278        _result
62279    }
62280
62281    fn send_raw(
62282        &self,
62283        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62284    ) -> Result<(), fidl::Error> {
62285        self.control_handle.inner.send::<fidl::encoding::ResultType<
62286            BaseSocketGetBindToInterfaceIndexResponse,
62287            fidl_fuchsia_posix::Errno,
62288        >>(
62289            result.map(|value| (value,)),
62290            self.tx_id,
62291            0x59c31dd3e3078295,
62292            fidl::encoding::DynamicFlags::empty(),
62293        )
62294    }
62295}
62296
62297#[must_use = "FIDL methods require a response to be sent"]
62298#[derive(Debug)]
62299pub struct StreamSocketSetTimestampResponder {
62300    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62301    tx_id: u32,
62302}
62303
62304/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62305/// if the responder is dropped without sending a response, so that the client
62306/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62307impl std::ops::Drop for StreamSocketSetTimestampResponder {
62308    fn drop(&mut self) {
62309        self.control_handle.shutdown();
62310        // Safety: drops once, never accessed again
62311        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62312    }
62313}
62314
62315impl fidl::endpoints::Responder for StreamSocketSetTimestampResponder {
62316    type ControlHandle = StreamSocketControlHandle;
62317
62318    fn control_handle(&self) -> &StreamSocketControlHandle {
62319        &self.control_handle
62320    }
62321
62322    fn drop_without_shutdown(mut self) {
62323        // Safety: drops once, never accessed again due to mem::forget
62324        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62325        // Prevent Drop from running (which would shut down the channel)
62326        std::mem::forget(self);
62327    }
62328}
62329
62330impl StreamSocketSetTimestampResponder {
62331    /// Sends a response to the FIDL transaction.
62332    ///
62333    /// Sets the channel to shutdown if an error occurs.
62334    pub fn send(
62335        self,
62336        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62337    ) -> Result<(), fidl::Error> {
62338        let _result = self.send_raw(result);
62339        if _result.is_err() {
62340            self.control_handle.shutdown();
62341        }
62342        self.drop_without_shutdown();
62343        _result
62344    }
62345
62346    /// Similar to "send" but does not shutdown the channel if an error occurs.
62347    pub fn send_no_shutdown_on_err(
62348        self,
62349        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62350    ) -> Result<(), fidl::Error> {
62351        let _result = self.send_raw(result);
62352        self.drop_without_shutdown();
62353        _result
62354    }
62355
62356    fn send_raw(
62357        &self,
62358        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62359    ) -> Result<(), fidl::Error> {
62360        self.control_handle.inner.send::<fidl::encoding::ResultType<
62361            fidl::encoding::EmptyStruct,
62362            fidl_fuchsia_posix::Errno,
62363        >>(
62364            result,
62365            self.tx_id,
62366            0x285d6516c263d839,
62367            fidl::encoding::DynamicFlags::empty(),
62368        )
62369    }
62370}
62371
62372#[must_use = "FIDL methods require a response to be sent"]
62373#[derive(Debug)]
62374pub struct StreamSocketGetTimestampResponder {
62375    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62376    tx_id: u32,
62377}
62378
62379/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62380/// if the responder is dropped without sending a response, so that the client
62381/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62382impl std::ops::Drop for StreamSocketGetTimestampResponder {
62383    fn drop(&mut self) {
62384        self.control_handle.shutdown();
62385        // Safety: drops once, never accessed again
62386        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62387    }
62388}
62389
62390impl fidl::endpoints::Responder for StreamSocketGetTimestampResponder {
62391    type ControlHandle = StreamSocketControlHandle;
62392
62393    fn control_handle(&self) -> &StreamSocketControlHandle {
62394        &self.control_handle
62395    }
62396
62397    fn drop_without_shutdown(mut self) {
62398        // Safety: drops once, never accessed again due to mem::forget
62399        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62400        // Prevent Drop from running (which would shut down the channel)
62401        std::mem::forget(self);
62402    }
62403}
62404
62405impl StreamSocketGetTimestampResponder {
62406    /// Sends a response to the FIDL transaction.
62407    ///
62408    /// Sets the channel to shutdown if an error occurs.
62409    pub fn send(
62410        self,
62411        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
62412    ) -> Result<(), fidl::Error> {
62413        let _result = self.send_raw(result);
62414        if _result.is_err() {
62415            self.control_handle.shutdown();
62416        }
62417        self.drop_without_shutdown();
62418        _result
62419    }
62420
62421    /// Similar to "send" but does not shutdown the channel if an error occurs.
62422    pub fn send_no_shutdown_on_err(
62423        self,
62424        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
62425    ) -> Result<(), fidl::Error> {
62426        let _result = self.send_raw(result);
62427        self.drop_without_shutdown();
62428        _result
62429    }
62430
62431    fn send_raw(
62432        &self,
62433        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
62434    ) -> Result<(), fidl::Error> {
62435        self.control_handle.inner.send::<fidl::encoding::ResultType<
62436            BaseSocketGetTimestampResponse,
62437            fidl_fuchsia_posix::Errno,
62438        >>(
62439            result.map(|value| (value,)),
62440            self.tx_id,
62441            0x49f2fffbbcc2bd27,
62442            fidl::encoding::DynamicFlags::empty(),
62443        )
62444    }
62445}
62446
62447#[must_use = "FIDL methods require a response to be sent"]
62448#[derive(Debug)]
62449pub struct StreamSocketSetMarkResponder {
62450    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62451    tx_id: u32,
62452}
62453
62454/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62455/// if the responder is dropped without sending a response, so that the client
62456/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62457impl std::ops::Drop for StreamSocketSetMarkResponder {
62458    fn drop(&mut self) {
62459        self.control_handle.shutdown();
62460        // Safety: drops once, never accessed again
62461        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62462    }
62463}
62464
62465impl fidl::endpoints::Responder for StreamSocketSetMarkResponder {
62466    type ControlHandle = StreamSocketControlHandle;
62467
62468    fn control_handle(&self) -> &StreamSocketControlHandle {
62469        &self.control_handle
62470    }
62471
62472    fn drop_without_shutdown(mut self) {
62473        // Safety: drops once, never accessed again due to mem::forget
62474        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62475        // Prevent Drop from running (which would shut down the channel)
62476        std::mem::forget(self);
62477    }
62478}
62479
62480impl StreamSocketSetMarkResponder {
62481    /// Sends a response to the FIDL transaction.
62482    ///
62483    /// Sets the channel to shutdown if an error occurs.
62484    pub fn send(
62485        self,
62486        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62487    ) -> Result<(), fidl::Error> {
62488        let _result = self.send_raw(result);
62489        if _result.is_err() {
62490            self.control_handle.shutdown();
62491        }
62492        self.drop_without_shutdown();
62493        _result
62494    }
62495
62496    /// Similar to "send" but does not shutdown the channel if an error occurs.
62497    pub fn send_no_shutdown_on_err(
62498        self,
62499        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62500    ) -> Result<(), fidl::Error> {
62501        let _result = self.send_raw(result);
62502        self.drop_without_shutdown();
62503        _result
62504    }
62505
62506    fn send_raw(
62507        &self,
62508        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62509    ) -> Result<(), fidl::Error> {
62510        self.control_handle.inner.send::<fidl::encoding::ResultType<
62511            fidl::encoding::EmptyStruct,
62512            fidl_fuchsia_posix::Errno,
62513        >>(
62514            result,
62515            self.tx_id,
62516            0x6ead6de09f653236,
62517            fidl::encoding::DynamicFlags::empty(),
62518        )
62519    }
62520}
62521
62522#[must_use = "FIDL methods require a response to be sent"]
62523#[derive(Debug)]
62524pub struct StreamSocketGetMarkResponder {
62525    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62526    tx_id: u32,
62527}
62528
62529/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62530/// if the responder is dropped without sending a response, so that the client
62531/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62532impl std::ops::Drop for StreamSocketGetMarkResponder {
62533    fn drop(&mut self) {
62534        self.control_handle.shutdown();
62535        // Safety: drops once, never accessed again
62536        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62537    }
62538}
62539
62540impl fidl::endpoints::Responder for StreamSocketGetMarkResponder {
62541    type ControlHandle = StreamSocketControlHandle;
62542
62543    fn control_handle(&self) -> &StreamSocketControlHandle {
62544        &self.control_handle
62545    }
62546
62547    fn drop_without_shutdown(mut self) {
62548        // Safety: drops once, never accessed again due to mem::forget
62549        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62550        // Prevent Drop from running (which would shut down the channel)
62551        std::mem::forget(self);
62552    }
62553}
62554
62555impl StreamSocketGetMarkResponder {
62556    /// Sends a response to the FIDL transaction.
62557    ///
62558    /// Sets the channel to shutdown if an error occurs.
62559    pub fn send(
62560        self,
62561        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
62562    ) -> Result<(), fidl::Error> {
62563        let _result = self.send_raw(result);
62564        if _result.is_err() {
62565            self.control_handle.shutdown();
62566        }
62567        self.drop_without_shutdown();
62568        _result
62569    }
62570
62571    /// Similar to "send" but does not shutdown the channel if an error occurs.
62572    pub fn send_no_shutdown_on_err(
62573        self,
62574        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
62575    ) -> Result<(), fidl::Error> {
62576        let _result = self.send_raw(result);
62577        self.drop_without_shutdown();
62578        _result
62579    }
62580
62581    fn send_raw(
62582        &self,
62583        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
62584    ) -> Result<(), fidl::Error> {
62585        self.control_handle.inner.send::<fidl::encoding::ResultType<
62586            BaseSocketGetMarkResponse,
62587            fidl_fuchsia_posix::Errno,
62588        >>(
62589            result.map(|mark| (mark,)),
62590            self.tx_id,
62591            0x57a2752c61d93d47,
62592            fidl::encoding::DynamicFlags::empty(),
62593        )
62594    }
62595}
62596
62597#[must_use = "FIDL methods require a response to be sent"]
62598#[derive(Debug)]
62599pub struct StreamSocketGetCookieResponder {
62600    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62601    tx_id: u32,
62602}
62603
62604/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62605/// if the responder is dropped without sending a response, so that the client
62606/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62607impl std::ops::Drop for StreamSocketGetCookieResponder {
62608    fn drop(&mut self) {
62609        self.control_handle.shutdown();
62610        // Safety: drops once, never accessed again
62611        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62612    }
62613}
62614
62615impl fidl::endpoints::Responder for StreamSocketGetCookieResponder {
62616    type ControlHandle = StreamSocketControlHandle;
62617
62618    fn control_handle(&self) -> &StreamSocketControlHandle {
62619        &self.control_handle
62620    }
62621
62622    fn drop_without_shutdown(mut self) {
62623        // Safety: drops once, never accessed again due to mem::forget
62624        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62625        // Prevent Drop from running (which would shut down the channel)
62626        std::mem::forget(self);
62627    }
62628}
62629
62630impl StreamSocketGetCookieResponder {
62631    /// Sends a response to the FIDL transaction.
62632    ///
62633    /// Sets the channel to shutdown if an error occurs.
62634    pub fn send(
62635        self,
62636        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62637    ) -> Result<(), fidl::Error> {
62638        let _result = self.send_raw(result);
62639        if _result.is_err() {
62640            self.control_handle.shutdown();
62641        }
62642        self.drop_without_shutdown();
62643        _result
62644    }
62645
62646    /// Similar to "send" but does not shutdown the channel if an error occurs.
62647    pub fn send_no_shutdown_on_err(
62648        self,
62649        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62650    ) -> Result<(), fidl::Error> {
62651        let _result = self.send_raw(result);
62652        self.drop_without_shutdown();
62653        _result
62654    }
62655
62656    fn send_raw(
62657        &self,
62658        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
62659    ) -> Result<(), fidl::Error> {
62660        self.control_handle.inner.send::<fidl::encoding::ResultType<
62661            BaseSocketGetCookieResponse,
62662            fidl_fuchsia_posix::Errno,
62663        >>(
62664            result.map(|value| (value,)),
62665            self.tx_id,
62666            0x2c2f47fd8f924e52,
62667            fidl::encoding::DynamicFlags::empty(),
62668        )
62669    }
62670}
62671
62672#[must_use = "FIDL methods require a response to be sent"]
62673#[derive(Debug)]
62674pub struct StreamSocketBindResponder {
62675    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62676    tx_id: u32,
62677}
62678
62679/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62680/// if the responder is dropped without sending a response, so that the client
62681/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62682impl std::ops::Drop for StreamSocketBindResponder {
62683    fn drop(&mut self) {
62684        self.control_handle.shutdown();
62685        // Safety: drops once, never accessed again
62686        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62687    }
62688}
62689
62690impl fidl::endpoints::Responder for StreamSocketBindResponder {
62691    type ControlHandle = StreamSocketControlHandle;
62692
62693    fn control_handle(&self) -> &StreamSocketControlHandle {
62694        &self.control_handle
62695    }
62696
62697    fn drop_without_shutdown(mut self) {
62698        // Safety: drops once, never accessed again due to mem::forget
62699        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62700        // Prevent Drop from running (which would shut down the channel)
62701        std::mem::forget(self);
62702    }
62703}
62704
62705impl StreamSocketBindResponder {
62706    /// Sends a response to the FIDL transaction.
62707    ///
62708    /// Sets the channel to shutdown if an error occurs.
62709    pub fn send(
62710        self,
62711        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62712    ) -> Result<(), fidl::Error> {
62713        let _result = self.send_raw(result);
62714        if _result.is_err() {
62715            self.control_handle.shutdown();
62716        }
62717        self.drop_without_shutdown();
62718        _result
62719    }
62720
62721    /// Similar to "send" but does not shutdown the channel if an error occurs.
62722    pub fn send_no_shutdown_on_err(
62723        self,
62724        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62725    ) -> Result<(), fidl::Error> {
62726        let _result = self.send_raw(result);
62727        self.drop_without_shutdown();
62728        _result
62729    }
62730
62731    fn send_raw(
62732        &self,
62733        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62734    ) -> Result<(), fidl::Error> {
62735        self.control_handle.inner.send::<fidl::encoding::ResultType<
62736            fidl::encoding::EmptyStruct,
62737            fidl_fuchsia_posix::Errno,
62738        >>(
62739            result,
62740            self.tx_id,
62741            0x4bc6400ae92125d,
62742            fidl::encoding::DynamicFlags::empty(),
62743        )
62744    }
62745}
62746
62747#[must_use = "FIDL methods require a response to be sent"]
62748#[derive(Debug)]
62749pub struct StreamSocketConnectResponder {
62750    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62751    tx_id: u32,
62752}
62753
62754/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62755/// if the responder is dropped without sending a response, so that the client
62756/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62757impl std::ops::Drop for StreamSocketConnectResponder {
62758    fn drop(&mut self) {
62759        self.control_handle.shutdown();
62760        // Safety: drops once, never accessed again
62761        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62762    }
62763}
62764
62765impl fidl::endpoints::Responder for StreamSocketConnectResponder {
62766    type ControlHandle = StreamSocketControlHandle;
62767
62768    fn control_handle(&self) -> &StreamSocketControlHandle {
62769        &self.control_handle
62770    }
62771
62772    fn drop_without_shutdown(mut self) {
62773        // Safety: drops once, never accessed again due to mem::forget
62774        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62775        // Prevent Drop from running (which would shut down the channel)
62776        std::mem::forget(self);
62777    }
62778}
62779
62780impl StreamSocketConnectResponder {
62781    /// Sends a response to the FIDL transaction.
62782    ///
62783    /// Sets the channel to shutdown if an error occurs.
62784    pub fn send(
62785        self,
62786        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62787    ) -> Result<(), fidl::Error> {
62788        let _result = self.send_raw(result);
62789        if _result.is_err() {
62790            self.control_handle.shutdown();
62791        }
62792        self.drop_without_shutdown();
62793        _result
62794    }
62795
62796    /// Similar to "send" but does not shutdown the channel if an error occurs.
62797    pub fn send_no_shutdown_on_err(
62798        self,
62799        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62800    ) -> Result<(), fidl::Error> {
62801        let _result = self.send_raw(result);
62802        self.drop_without_shutdown();
62803        _result
62804    }
62805
62806    fn send_raw(
62807        &self,
62808        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62809    ) -> Result<(), fidl::Error> {
62810        self.control_handle.inner.send::<fidl::encoding::ResultType<
62811            fidl::encoding::EmptyStruct,
62812            fidl_fuchsia_posix::Errno,
62813        >>(
62814            result,
62815            self.tx_id,
62816            0x5f05f19bfdd38871,
62817            fidl::encoding::DynamicFlags::empty(),
62818        )
62819    }
62820}
62821
62822#[must_use = "FIDL methods require a response to be sent"]
62823#[derive(Debug)]
62824pub struct StreamSocketDisconnectResponder {
62825    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62826    tx_id: u32,
62827}
62828
62829/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62830/// if the responder is dropped without sending a response, so that the client
62831/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62832impl std::ops::Drop for StreamSocketDisconnectResponder {
62833    fn drop(&mut self) {
62834        self.control_handle.shutdown();
62835        // Safety: drops once, never accessed again
62836        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62837    }
62838}
62839
62840impl fidl::endpoints::Responder for StreamSocketDisconnectResponder {
62841    type ControlHandle = StreamSocketControlHandle;
62842
62843    fn control_handle(&self) -> &StreamSocketControlHandle {
62844        &self.control_handle
62845    }
62846
62847    fn drop_without_shutdown(mut self) {
62848        // Safety: drops once, never accessed again due to mem::forget
62849        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62850        // Prevent Drop from running (which would shut down the channel)
62851        std::mem::forget(self);
62852    }
62853}
62854
62855impl StreamSocketDisconnectResponder {
62856    /// Sends a response to the FIDL transaction.
62857    ///
62858    /// Sets the channel to shutdown if an error occurs.
62859    pub fn send(
62860        self,
62861        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62862    ) -> Result<(), fidl::Error> {
62863        let _result = self.send_raw(result);
62864        if _result.is_err() {
62865            self.control_handle.shutdown();
62866        }
62867        self.drop_without_shutdown();
62868        _result
62869    }
62870
62871    /// Similar to "send" but does not shutdown the channel if an error occurs.
62872    pub fn send_no_shutdown_on_err(
62873        self,
62874        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62875    ) -> Result<(), fidl::Error> {
62876        let _result = self.send_raw(result);
62877        self.drop_without_shutdown();
62878        _result
62879    }
62880
62881    fn send_raw(
62882        &self,
62883        mut result: Result<(), fidl_fuchsia_posix::Errno>,
62884    ) -> Result<(), fidl::Error> {
62885        self.control_handle.inner.send::<fidl::encoding::ResultType<
62886            fidl::encoding::EmptyStruct,
62887            fidl_fuchsia_posix::Errno,
62888        >>(
62889            result,
62890            self.tx_id,
62891            0x74e63b91f7b29b2,
62892            fidl::encoding::DynamicFlags::empty(),
62893        )
62894    }
62895}
62896
62897#[must_use = "FIDL methods require a response to be sent"]
62898#[derive(Debug)]
62899pub struct StreamSocketGetSockNameResponder {
62900    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62901    tx_id: u32,
62902}
62903
62904/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62905/// if the responder is dropped without sending a response, so that the client
62906/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62907impl std::ops::Drop for StreamSocketGetSockNameResponder {
62908    fn drop(&mut self) {
62909        self.control_handle.shutdown();
62910        // Safety: drops once, never accessed again
62911        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62912    }
62913}
62914
62915impl fidl::endpoints::Responder for StreamSocketGetSockNameResponder {
62916    type ControlHandle = StreamSocketControlHandle;
62917
62918    fn control_handle(&self) -> &StreamSocketControlHandle {
62919        &self.control_handle
62920    }
62921
62922    fn drop_without_shutdown(mut self) {
62923        // Safety: drops once, never accessed again due to mem::forget
62924        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62925        // Prevent Drop from running (which would shut down the channel)
62926        std::mem::forget(self);
62927    }
62928}
62929
62930impl StreamSocketGetSockNameResponder {
62931    /// Sends a response to the FIDL transaction.
62932    ///
62933    /// Sets the channel to shutdown if an error occurs.
62934    pub fn send(
62935        self,
62936        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
62937    ) -> Result<(), fidl::Error> {
62938        let _result = self.send_raw(result);
62939        if _result.is_err() {
62940            self.control_handle.shutdown();
62941        }
62942        self.drop_without_shutdown();
62943        _result
62944    }
62945
62946    /// Similar to "send" but does not shutdown the channel if an error occurs.
62947    pub fn send_no_shutdown_on_err(
62948        self,
62949        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
62950    ) -> Result<(), fidl::Error> {
62951        let _result = self.send_raw(result);
62952        self.drop_without_shutdown();
62953        _result
62954    }
62955
62956    fn send_raw(
62957        &self,
62958        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
62959    ) -> Result<(), fidl::Error> {
62960        self.control_handle.inner.send::<fidl::encoding::ResultType<
62961            BaseNetworkSocketGetSockNameResponse,
62962            fidl_fuchsia_posix::Errno,
62963        >>(
62964            result.map(|addr| (addr,)),
62965            self.tx_id,
62966            0x475f23f84a1a4f85,
62967            fidl::encoding::DynamicFlags::empty(),
62968        )
62969    }
62970}
62971
62972#[must_use = "FIDL methods require a response to be sent"]
62973#[derive(Debug)]
62974pub struct StreamSocketGetPeerNameResponder {
62975    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
62976    tx_id: u32,
62977}
62978
62979/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
62980/// if the responder is dropped without sending a response, so that the client
62981/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
62982impl std::ops::Drop for StreamSocketGetPeerNameResponder {
62983    fn drop(&mut self) {
62984        self.control_handle.shutdown();
62985        // Safety: drops once, never accessed again
62986        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
62987    }
62988}
62989
62990impl fidl::endpoints::Responder for StreamSocketGetPeerNameResponder {
62991    type ControlHandle = StreamSocketControlHandle;
62992
62993    fn control_handle(&self) -> &StreamSocketControlHandle {
62994        &self.control_handle
62995    }
62996
62997    fn drop_without_shutdown(mut self) {
62998        // Safety: drops once, never accessed again due to mem::forget
62999        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63000        // Prevent Drop from running (which would shut down the channel)
63001        std::mem::forget(self);
63002    }
63003}
63004
63005impl StreamSocketGetPeerNameResponder {
63006    /// Sends a response to the FIDL transaction.
63007    ///
63008    /// Sets the channel to shutdown if an error occurs.
63009    pub fn send(
63010        self,
63011        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
63012    ) -> Result<(), fidl::Error> {
63013        let _result = self.send_raw(result);
63014        if _result.is_err() {
63015            self.control_handle.shutdown();
63016        }
63017        self.drop_without_shutdown();
63018        _result
63019    }
63020
63021    /// Similar to "send" but does not shutdown the channel if an error occurs.
63022    pub fn send_no_shutdown_on_err(
63023        self,
63024        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
63025    ) -> Result<(), fidl::Error> {
63026        let _result = self.send_raw(result);
63027        self.drop_without_shutdown();
63028        _result
63029    }
63030
63031    fn send_raw(
63032        &self,
63033        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
63034    ) -> Result<(), fidl::Error> {
63035        self.control_handle.inner.send::<fidl::encoding::ResultType<
63036            BaseNetworkSocketGetPeerNameResponse,
63037            fidl_fuchsia_posix::Errno,
63038        >>(
63039            result.map(|addr| (addr,)),
63040            self.tx_id,
63041            0x1ffecf4bd5b6432e,
63042            fidl::encoding::DynamicFlags::empty(),
63043        )
63044    }
63045}
63046
63047#[must_use = "FIDL methods require a response to be sent"]
63048#[derive(Debug)]
63049pub struct StreamSocketShutdownResponder {
63050    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63051    tx_id: u32,
63052}
63053
63054/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63055/// if the responder is dropped without sending a response, so that the client
63056/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63057impl std::ops::Drop for StreamSocketShutdownResponder {
63058    fn drop(&mut self) {
63059        self.control_handle.shutdown();
63060        // Safety: drops once, never accessed again
63061        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63062    }
63063}
63064
63065impl fidl::endpoints::Responder for StreamSocketShutdownResponder {
63066    type ControlHandle = StreamSocketControlHandle;
63067
63068    fn control_handle(&self) -> &StreamSocketControlHandle {
63069        &self.control_handle
63070    }
63071
63072    fn drop_without_shutdown(mut self) {
63073        // Safety: drops once, never accessed again due to mem::forget
63074        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63075        // Prevent Drop from running (which would shut down the channel)
63076        std::mem::forget(self);
63077    }
63078}
63079
63080impl StreamSocketShutdownResponder {
63081    /// Sends a response to the FIDL transaction.
63082    ///
63083    /// Sets the channel to shutdown if an error occurs.
63084    pub fn send(
63085        self,
63086        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63087    ) -> Result<(), fidl::Error> {
63088        let _result = self.send_raw(result);
63089        if _result.is_err() {
63090            self.control_handle.shutdown();
63091        }
63092        self.drop_without_shutdown();
63093        _result
63094    }
63095
63096    /// Similar to "send" but does not shutdown the channel if an error occurs.
63097    pub fn send_no_shutdown_on_err(
63098        self,
63099        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63100    ) -> Result<(), fidl::Error> {
63101        let _result = self.send_raw(result);
63102        self.drop_without_shutdown();
63103        _result
63104    }
63105
63106    fn send_raw(
63107        &self,
63108        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63109    ) -> Result<(), fidl::Error> {
63110        self.control_handle.inner.send::<fidl::encoding::ResultType<
63111            fidl::encoding::EmptyStruct,
63112            fidl_fuchsia_posix::Errno,
63113        >>(
63114            result,
63115            self.tx_id,
63116            0x247f38b6db68c336,
63117            fidl::encoding::DynamicFlags::empty(),
63118        )
63119    }
63120}
63121
63122#[must_use = "FIDL methods require a response to be sent"]
63123#[derive(Debug)]
63124pub struct StreamSocketSetIpTypeOfServiceResponder {
63125    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63126    tx_id: u32,
63127}
63128
63129/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63130/// if the responder is dropped without sending a response, so that the client
63131/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63132impl std::ops::Drop for StreamSocketSetIpTypeOfServiceResponder {
63133    fn drop(&mut self) {
63134        self.control_handle.shutdown();
63135        // Safety: drops once, never accessed again
63136        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63137    }
63138}
63139
63140impl fidl::endpoints::Responder for StreamSocketSetIpTypeOfServiceResponder {
63141    type ControlHandle = StreamSocketControlHandle;
63142
63143    fn control_handle(&self) -> &StreamSocketControlHandle {
63144        &self.control_handle
63145    }
63146
63147    fn drop_without_shutdown(mut self) {
63148        // Safety: drops once, never accessed again due to mem::forget
63149        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63150        // Prevent Drop from running (which would shut down the channel)
63151        std::mem::forget(self);
63152    }
63153}
63154
63155impl StreamSocketSetIpTypeOfServiceResponder {
63156    /// Sends a response to the FIDL transaction.
63157    ///
63158    /// Sets the channel to shutdown if an error occurs.
63159    pub fn send(
63160        self,
63161        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63162    ) -> Result<(), fidl::Error> {
63163        let _result = self.send_raw(result);
63164        if _result.is_err() {
63165            self.control_handle.shutdown();
63166        }
63167        self.drop_without_shutdown();
63168        _result
63169    }
63170
63171    /// Similar to "send" but does not shutdown the channel if an error occurs.
63172    pub fn send_no_shutdown_on_err(
63173        self,
63174        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63175    ) -> Result<(), fidl::Error> {
63176        let _result = self.send_raw(result);
63177        self.drop_without_shutdown();
63178        _result
63179    }
63180
63181    fn send_raw(
63182        &self,
63183        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63184    ) -> Result<(), fidl::Error> {
63185        self.control_handle.inner.send::<fidl::encoding::ResultType<
63186            fidl::encoding::EmptyStruct,
63187            fidl_fuchsia_posix::Errno,
63188        >>(
63189            result,
63190            self.tx_id,
63191            0x995c600475b6d46,
63192            fidl::encoding::DynamicFlags::empty(),
63193        )
63194    }
63195}
63196
63197#[must_use = "FIDL methods require a response to be sent"]
63198#[derive(Debug)]
63199pub struct StreamSocketGetIpTypeOfServiceResponder {
63200    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63201    tx_id: u32,
63202}
63203
63204/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63205/// if the responder is dropped without sending a response, so that the client
63206/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63207impl std::ops::Drop for StreamSocketGetIpTypeOfServiceResponder {
63208    fn drop(&mut self) {
63209        self.control_handle.shutdown();
63210        // Safety: drops once, never accessed again
63211        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63212    }
63213}
63214
63215impl fidl::endpoints::Responder for StreamSocketGetIpTypeOfServiceResponder {
63216    type ControlHandle = StreamSocketControlHandle;
63217
63218    fn control_handle(&self) -> &StreamSocketControlHandle {
63219        &self.control_handle
63220    }
63221
63222    fn drop_without_shutdown(mut self) {
63223        // Safety: drops once, never accessed again due to mem::forget
63224        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63225        // Prevent Drop from running (which would shut down the channel)
63226        std::mem::forget(self);
63227    }
63228}
63229
63230impl StreamSocketGetIpTypeOfServiceResponder {
63231    /// Sends a response to the FIDL transaction.
63232    ///
63233    /// Sets the channel to shutdown if an error occurs.
63234    pub fn send(
63235        self,
63236        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63237    ) -> Result<(), fidl::Error> {
63238        let _result = self.send_raw(result);
63239        if _result.is_err() {
63240            self.control_handle.shutdown();
63241        }
63242        self.drop_without_shutdown();
63243        _result
63244    }
63245
63246    /// Similar to "send" but does not shutdown the channel if an error occurs.
63247    pub fn send_no_shutdown_on_err(
63248        self,
63249        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63250    ) -> Result<(), fidl::Error> {
63251        let _result = self.send_raw(result);
63252        self.drop_without_shutdown();
63253        _result
63254    }
63255
63256    fn send_raw(
63257        &self,
63258        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63259    ) -> Result<(), fidl::Error> {
63260        self.control_handle.inner.send::<fidl::encoding::ResultType<
63261            BaseNetworkSocketGetIpTypeOfServiceResponse,
63262            fidl_fuchsia_posix::Errno,
63263        >>(
63264            result.map(|value| (value,)),
63265            self.tx_id,
63266            0x3814a04259f75fcb,
63267            fidl::encoding::DynamicFlags::empty(),
63268        )
63269    }
63270}
63271
63272#[must_use = "FIDL methods require a response to be sent"]
63273#[derive(Debug)]
63274pub struct StreamSocketSetIpTtlResponder {
63275    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63276    tx_id: u32,
63277}
63278
63279/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63280/// if the responder is dropped without sending a response, so that the client
63281/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63282impl std::ops::Drop for StreamSocketSetIpTtlResponder {
63283    fn drop(&mut self) {
63284        self.control_handle.shutdown();
63285        // Safety: drops once, never accessed again
63286        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63287    }
63288}
63289
63290impl fidl::endpoints::Responder for StreamSocketSetIpTtlResponder {
63291    type ControlHandle = StreamSocketControlHandle;
63292
63293    fn control_handle(&self) -> &StreamSocketControlHandle {
63294        &self.control_handle
63295    }
63296
63297    fn drop_without_shutdown(mut self) {
63298        // Safety: drops once, never accessed again due to mem::forget
63299        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63300        // Prevent Drop from running (which would shut down the channel)
63301        std::mem::forget(self);
63302    }
63303}
63304
63305impl StreamSocketSetIpTtlResponder {
63306    /// Sends a response to the FIDL transaction.
63307    ///
63308    /// Sets the channel to shutdown if an error occurs.
63309    pub fn send(
63310        self,
63311        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63312    ) -> Result<(), fidl::Error> {
63313        let _result = self.send_raw(result);
63314        if _result.is_err() {
63315            self.control_handle.shutdown();
63316        }
63317        self.drop_without_shutdown();
63318        _result
63319    }
63320
63321    /// Similar to "send" but does not shutdown the channel if an error occurs.
63322    pub fn send_no_shutdown_on_err(
63323        self,
63324        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63325    ) -> Result<(), fidl::Error> {
63326        let _result = self.send_raw(result);
63327        self.drop_without_shutdown();
63328        _result
63329    }
63330
63331    fn send_raw(
63332        &self,
63333        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63334    ) -> Result<(), fidl::Error> {
63335        self.control_handle.inner.send::<fidl::encoding::ResultType<
63336            fidl::encoding::EmptyStruct,
63337            fidl_fuchsia_posix::Errno,
63338        >>(
63339            result,
63340            self.tx_id,
63341            0x29e2424b433ae1ef,
63342            fidl::encoding::DynamicFlags::empty(),
63343        )
63344    }
63345}
63346
63347#[must_use = "FIDL methods require a response to be sent"]
63348#[derive(Debug)]
63349pub struct StreamSocketGetIpTtlResponder {
63350    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63351    tx_id: u32,
63352}
63353
63354/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63355/// if the responder is dropped without sending a response, so that the client
63356/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63357impl std::ops::Drop for StreamSocketGetIpTtlResponder {
63358    fn drop(&mut self) {
63359        self.control_handle.shutdown();
63360        // Safety: drops once, never accessed again
63361        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63362    }
63363}
63364
63365impl fidl::endpoints::Responder for StreamSocketGetIpTtlResponder {
63366    type ControlHandle = StreamSocketControlHandle;
63367
63368    fn control_handle(&self) -> &StreamSocketControlHandle {
63369        &self.control_handle
63370    }
63371
63372    fn drop_without_shutdown(mut self) {
63373        // Safety: drops once, never accessed again due to mem::forget
63374        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63375        // Prevent Drop from running (which would shut down the channel)
63376        std::mem::forget(self);
63377    }
63378}
63379
63380impl StreamSocketGetIpTtlResponder {
63381    /// Sends a response to the FIDL transaction.
63382    ///
63383    /// Sets the channel to shutdown if an error occurs.
63384    pub fn send(
63385        self,
63386        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63387    ) -> Result<(), fidl::Error> {
63388        let _result = self.send_raw(result);
63389        if _result.is_err() {
63390            self.control_handle.shutdown();
63391        }
63392        self.drop_without_shutdown();
63393        _result
63394    }
63395
63396    /// Similar to "send" but does not shutdown the channel if an error occurs.
63397    pub fn send_no_shutdown_on_err(
63398        self,
63399        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63400    ) -> Result<(), fidl::Error> {
63401        let _result = self.send_raw(result);
63402        self.drop_without_shutdown();
63403        _result
63404    }
63405
63406    fn send_raw(
63407        &self,
63408        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
63409    ) -> Result<(), fidl::Error> {
63410        self.control_handle.inner.send::<fidl::encoding::ResultType<
63411            BaseNetworkSocketGetIpTtlResponse,
63412            fidl_fuchsia_posix::Errno,
63413        >>(
63414            result.map(|value| (value,)),
63415            self.tx_id,
63416            0x47e47fa1f24da471,
63417            fidl::encoding::DynamicFlags::empty(),
63418        )
63419    }
63420}
63421
63422#[must_use = "FIDL methods require a response to be sent"]
63423#[derive(Debug)]
63424pub struct StreamSocketSetIpPacketInfoResponder {
63425    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63426    tx_id: u32,
63427}
63428
63429/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63430/// if the responder is dropped without sending a response, so that the client
63431/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63432impl std::ops::Drop for StreamSocketSetIpPacketInfoResponder {
63433    fn drop(&mut self) {
63434        self.control_handle.shutdown();
63435        // Safety: drops once, never accessed again
63436        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63437    }
63438}
63439
63440impl fidl::endpoints::Responder for StreamSocketSetIpPacketInfoResponder {
63441    type ControlHandle = StreamSocketControlHandle;
63442
63443    fn control_handle(&self) -> &StreamSocketControlHandle {
63444        &self.control_handle
63445    }
63446
63447    fn drop_without_shutdown(mut self) {
63448        // Safety: drops once, never accessed again due to mem::forget
63449        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63450        // Prevent Drop from running (which would shut down the channel)
63451        std::mem::forget(self);
63452    }
63453}
63454
63455impl StreamSocketSetIpPacketInfoResponder {
63456    /// Sends a response to the FIDL transaction.
63457    ///
63458    /// Sets the channel to shutdown if an error occurs.
63459    pub fn send(
63460        self,
63461        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63462    ) -> Result<(), fidl::Error> {
63463        let _result = self.send_raw(result);
63464        if _result.is_err() {
63465            self.control_handle.shutdown();
63466        }
63467        self.drop_without_shutdown();
63468        _result
63469    }
63470
63471    /// Similar to "send" but does not shutdown the channel if an error occurs.
63472    pub fn send_no_shutdown_on_err(
63473        self,
63474        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63475    ) -> Result<(), fidl::Error> {
63476        let _result = self.send_raw(result);
63477        self.drop_without_shutdown();
63478        _result
63479    }
63480
63481    fn send_raw(
63482        &self,
63483        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63484    ) -> Result<(), fidl::Error> {
63485        self.control_handle.inner.send::<fidl::encoding::ResultType<
63486            fidl::encoding::EmptyStruct,
63487            fidl_fuchsia_posix::Errno,
63488        >>(
63489            result,
63490            self.tx_id,
63491            0x392d16bee20c0e16,
63492            fidl::encoding::DynamicFlags::empty(),
63493        )
63494    }
63495}
63496
63497#[must_use = "FIDL methods require a response to be sent"]
63498#[derive(Debug)]
63499pub struct StreamSocketGetIpPacketInfoResponder {
63500    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63501    tx_id: u32,
63502}
63503
63504/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63505/// if the responder is dropped without sending a response, so that the client
63506/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63507impl std::ops::Drop for StreamSocketGetIpPacketInfoResponder {
63508    fn drop(&mut self) {
63509        self.control_handle.shutdown();
63510        // Safety: drops once, never accessed again
63511        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63512    }
63513}
63514
63515impl fidl::endpoints::Responder for StreamSocketGetIpPacketInfoResponder {
63516    type ControlHandle = StreamSocketControlHandle;
63517
63518    fn control_handle(&self) -> &StreamSocketControlHandle {
63519        &self.control_handle
63520    }
63521
63522    fn drop_without_shutdown(mut self) {
63523        // Safety: drops once, never accessed again due to mem::forget
63524        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63525        // Prevent Drop from running (which would shut down the channel)
63526        std::mem::forget(self);
63527    }
63528}
63529
63530impl StreamSocketGetIpPacketInfoResponder {
63531    /// Sends a response to the FIDL transaction.
63532    ///
63533    /// Sets the channel to shutdown if an error occurs.
63534    pub fn send(
63535        self,
63536        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63537    ) -> Result<(), fidl::Error> {
63538        let _result = self.send_raw(result);
63539        if _result.is_err() {
63540            self.control_handle.shutdown();
63541        }
63542        self.drop_without_shutdown();
63543        _result
63544    }
63545
63546    /// Similar to "send" but does not shutdown the channel if an error occurs.
63547    pub fn send_no_shutdown_on_err(
63548        self,
63549        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63550    ) -> Result<(), fidl::Error> {
63551        let _result = self.send_raw(result);
63552        self.drop_without_shutdown();
63553        _result
63554    }
63555
63556    fn send_raw(
63557        &self,
63558        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63559    ) -> Result<(), fidl::Error> {
63560        self.control_handle.inner.send::<fidl::encoding::ResultType<
63561            BaseNetworkSocketGetIpPacketInfoResponse,
63562            fidl_fuchsia_posix::Errno,
63563        >>(
63564            result.map(|value| (value,)),
63565            self.tx_id,
63566            0x54b505f242280740,
63567            fidl::encoding::DynamicFlags::empty(),
63568        )
63569    }
63570}
63571
63572#[must_use = "FIDL methods require a response to be sent"]
63573#[derive(Debug)]
63574pub struct StreamSocketSetIpReceiveTypeOfServiceResponder {
63575    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63576    tx_id: u32,
63577}
63578
63579/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63580/// if the responder is dropped without sending a response, so that the client
63581/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63582impl std::ops::Drop for StreamSocketSetIpReceiveTypeOfServiceResponder {
63583    fn drop(&mut self) {
63584        self.control_handle.shutdown();
63585        // Safety: drops once, never accessed again
63586        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63587    }
63588}
63589
63590impl fidl::endpoints::Responder for StreamSocketSetIpReceiveTypeOfServiceResponder {
63591    type ControlHandle = StreamSocketControlHandle;
63592
63593    fn control_handle(&self) -> &StreamSocketControlHandle {
63594        &self.control_handle
63595    }
63596
63597    fn drop_without_shutdown(mut self) {
63598        // Safety: drops once, never accessed again due to mem::forget
63599        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63600        // Prevent Drop from running (which would shut down the channel)
63601        std::mem::forget(self);
63602    }
63603}
63604
63605impl StreamSocketSetIpReceiveTypeOfServiceResponder {
63606    /// Sends a response to the FIDL transaction.
63607    ///
63608    /// Sets the channel to shutdown if an error occurs.
63609    pub fn send(
63610        self,
63611        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63612    ) -> Result<(), fidl::Error> {
63613        let _result = self.send_raw(result);
63614        if _result.is_err() {
63615            self.control_handle.shutdown();
63616        }
63617        self.drop_without_shutdown();
63618        _result
63619    }
63620
63621    /// Similar to "send" but does not shutdown the channel if an error occurs.
63622    pub fn send_no_shutdown_on_err(
63623        self,
63624        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63625    ) -> Result<(), fidl::Error> {
63626        let _result = self.send_raw(result);
63627        self.drop_without_shutdown();
63628        _result
63629    }
63630
63631    fn send_raw(
63632        &self,
63633        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63634    ) -> Result<(), fidl::Error> {
63635        self.control_handle.inner.send::<fidl::encoding::ResultType<
63636            fidl::encoding::EmptyStruct,
63637            fidl_fuchsia_posix::Errno,
63638        >>(
63639            result,
63640            self.tx_id,
63641            0x6c4f6714995f84ef,
63642            fidl::encoding::DynamicFlags::empty(),
63643        )
63644    }
63645}
63646
63647#[must_use = "FIDL methods require a response to be sent"]
63648#[derive(Debug)]
63649pub struct StreamSocketGetIpReceiveTypeOfServiceResponder {
63650    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63651    tx_id: u32,
63652}
63653
63654/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63655/// if the responder is dropped without sending a response, so that the client
63656/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63657impl std::ops::Drop for StreamSocketGetIpReceiveTypeOfServiceResponder {
63658    fn drop(&mut self) {
63659        self.control_handle.shutdown();
63660        // Safety: drops once, never accessed again
63661        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63662    }
63663}
63664
63665impl fidl::endpoints::Responder for StreamSocketGetIpReceiveTypeOfServiceResponder {
63666    type ControlHandle = StreamSocketControlHandle;
63667
63668    fn control_handle(&self) -> &StreamSocketControlHandle {
63669        &self.control_handle
63670    }
63671
63672    fn drop_without_shutdown(mut self) {
63673        // Safety: drops once, never accessed again due to mem::forget
63674        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63675        // Prevent Drop from running (which would shut down the channel)
63676        std::mem::forget(self);
63677    }
63678}
63679
63680impl StreamSocketGetIpReceiveTypeOfServiceResponder {
63681    /// Sends a response to the FIDL transaction.
63682    ///
63683    /// Sets the channel to shutdown if an error occurs.
63684    pub fn send(
63685        self,
63686        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63687    ) -> Result<(), fidl::Error> {
63688        let _result = self.send_raw(result);
63689        if _result.is_err() {
63690            self.control_handle.shutdown();
63691        }
63692        self.drop_without_shutdown();
63693        _result
63694    }
63695
63696    /// Similar to "send" but does not shutdown the channel if an error occurs.
63697    pub fn send_no_shutdown_on_err(
63698        self,
63699        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63700    ) -> Result<(), fidl::Error> {
63701        let _result = self.send_raw(result);
63702        self.drop_without_shutdown();
63703        _result
63704    }
63705
63706    fn send_raw(
63707        &self,
63708        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63709    ) -> Result<(), fidl::Error> {
63710        self.control_handle.inner.send::<fidl::encoding::ResultType<
63711            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
63712            fidl_fuchsia_posix::Errno,
63713        >>(
63714            result.map(|value| (value,)),
63715            self.tx_id,
63716            0x4158ba7dc2795960,
63717            fidl::encoding::DynamicFlags::empty(),
63718        )
63719    }
63720}
63721
63722#[must_use = "FIDL methods require a response to be sent"]
63723#[derive(Debug)]
63724pub struct StreamSocketSetIpReceiveTtlResponder {
63725    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63726    tx_id: u32,
63727}
63728
63729/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63730/// if the responder is dropped without sending a response, so that the client
63731/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63732impl std::ops::Drop for StreamSocketSetIpReceiveTtlResponder {
63733    fn drop(&mut self) {
63734        self.control_handle.shutdown();
63735        // Safety: drops once, never accessed again
63736        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63737    }
63738}
63739
63740impl fidl::endpoints::Responder for StreamSocketSetIpReceiveTtlResponder {
63741    type ControlHandle = StreamSocketControlHandle;
63742
63743    fn control_handle(&self) -> &StreamSocketControlHandle {
63744        &self.control_handle
63745    }
63746
63747    fn drop_without_shutdown(mut self) {
63748        // Safety: drops once, never accessed again due to mem::forget
63749        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63750        // Prevent Drop from running (which would shut down the channel)
63751        std::mem::forget(self);
63752    }
63753}
63754
63755impl StreamSocketSetIpReceiveTtlResponder {
63756    /// Sends a response to the FIDL transaction.
63757    ///
63758    /// Sets the channel to shutdown if an error occurs.
63759    pub fn send(
63760        self,
63761        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63762    ) -> Result<(), fidl::Error> {
63763        let _result = self.send_raw(result);
63764        if _result.is_err() {
63765            self.control_handle.shutdown();
63766        }
63767        self.drop_without_shutdown();
63768        _result
63769    }
63770
63771    /// Similar to "send" but does not shutdown the channel if an error occurs.
63772    pub fn send_no_shutdown_on_err(
63773        self,
63774        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63775    ) -> Result<(), fidl::Error> {
63776        let _result = self.send_raw(result);
63777        self.drop_without_shutdown();
63778        _result
63779    }
63780
63781    fn send_raw(
63782        &self,
63783        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63784    ) -> Result<(), fidl::Error> {
63785        self.control_handle.inner.send::<fidl::encoding::ResultType<
63786            fidl::encoding::EmptyStruct,
63787            fidl_fuchsia_posix::Errno,
63788        >>(
63789            result,
63790            self.tx_id,
63791            0x46f15be0ce0ab82b,
63792            fidl::encoding::DynamicFlags::empty(),
63793        )
63794    }
63795}
63796
63797#[must_use = "FIDL methods require a response to be sent"]
63798#[derive(Debug)]
63799pub struct StreamSocketGetIpReceiveTtlResponder {
63800    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63801    tx_id: u32,
63802}
63803
63804/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63805/// if the responder is dropped without sending a response, so that the client
63806/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63807impl std::ops::Drop for StreamSocketGetIpReceiveTtlResponder {
63808    fn drop(&mut self) {
63809        self.control_handle.shutdown();
63810        // Safety: drops once, never accessed again
63811        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63812    }
63813}
63814
63815impl fidl::endpoints::Responder for StreamSocketGetIpReceiveTtlResponder {
63816    type ControlHandle = StreamSocketControlHandle;
63817
63818    fn control_handle(&self) -> &StreamSocketControlHandle {
63819        &self.control_handle
63820    }
63821
63822    fn drop_without_shutdown(mut self) {
63823        // Safety: drops once, never accessed again due to mem::forget
63824        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63825        // Prevent Drop from running (which would shut down the channel)
63826        std::mem::forget(self);
63827    }
63828}
63829
63830impl StreamSocketGetIpReceiveTtlResponder {
63831    /// Sends a response to the FIDL transaction.
63832    ///
63833    /// Sets the channel to shutdown if an error occurs.
63834    pub fn send(
63835        self,
63836        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63837    ) -> Result<(), fidl::Error> {
63838        let _result = self.send_raw(result);
63839        if _result.is_err() {
63840            self.control_handle.shutdown();
63841        }
63842        self.drop_without_shutdown();
63843        _result
63844    }
63845
63846    /// Similar to "send" but does not shutdown the channel if an error occurs.
63847    pub fn send_no_shutdown_on_err(
63848        self,
63849        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63850    ) -> Result<(), fidl::Error> {
63851        let _result = self.send_raw(result);
63852        self.drop_without_shutdown();
63853        _result
63854    }
63855
63856    fn send_raw(
63857        &self,
63858        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
63859    ) -> Result<(), fidl::Error> {
63860        self.control_handle.inner.send::<fidl::encoding::ResultType<
63861            BaseNetworkSocketGetIpReceiveTtlResponse,
63862            fidl_fuchsia_posix::Errno,
63863        >>(
63864            result.map(|value| (value,)),
63865            self.tx_id,
63866            0x678ddd5a5dfa2eb5,
63867            fidl::encoding::DynamicFlags::empty(),
63868        )
63869    }
63870}
63871
63872#[must_use = "FIDL methods require a response to be sent"]
63873#[derive(Debug)]
63874pub struct StreamSocketSetIpMulticastInterfaceResponder {
63875    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63876    tx_id: u32,
63877}
63878
63879/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63880/// if the responder is dropped without sending a response, so that the client
63881/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63882impl std::ops::Drop for StreamSocketSetIpMulticastInterfaceResponder {
63883    fn drop(&mut self) {
63884        self.control_handle.shutdown();
63885        // Safety: drops once, never accessed again
63886        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63887    }
63888}
63889
63890impl fidl::endpoints::Responder for StreamSocketSetIpMulticastInterfaceResponder {
63891    type ControlHandle = StreamSocketControlHandle;
63892
63893    fn control_handle(&self) -> &StreamSocketControlHandle {
63894        &self.control_handle
63895    }
63896
63897    fn drop_without_shutdown(mut self) {
63898        // Safety: drops once, never accessed again due to mem::forget
63899        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63900        // Prevent Drop from running (which would shut down the channel)
63901        std::mem::forget(self);
63902    }
63903}
63904
63905impl StreamSocketSetIpMulticastInterfaceResponder {
63906    /// Sends a response to the FIDL transaction.
63907    ///
63908    /// Sets the channel to shutdown if an error occurs.
63909    pub fn send(
63910        self,
63911        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63912    ) -> Result<(), fidl::Error> {
63913        let _result = self.send_raw(result);
63914        if _result.is_err() {
63915            self.control_handle.shutdown();
63916        }
63917        self.drop_without_shutdown();
63918        _result
63919    }
63920
63921    /// Similar to "send" but does not shutdown the channel if an error occurs.
63922    pub fn send_no_shutdown_on_err(
63923        self,
63924        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63925    ) -> Result<(), fidl::Error> {
63926        let _result = self.send_raw(result);
63927        self.drop_without_shutdown();
63928        _result
63929    }
63930
63931    fn send_raw(
63932        &self,
63933        mut result: Result<(), fidl_fuchsia_posix::Errno>,
63934    ) -> Result<(), fidl::Error> {
63935        self.control_handle.inner.send::<fidl::encoding::ResultType<
63936            fidl::encoding::EmptyStruct,
63937            fidl_fuchsia_posix::Errno,
63938        >>(
63939            result,
63940            self.tx_id,
63941            0x752fbfa9b12befe,
63942            fidl::encoding::DynamicFlags::empty(),
63943        )
63944    }
63945}
63946
63947#[must_use = "FIDL methods require a response to be sent"]
63948#[derive(Debug)]
63949pub struct StreamSocketGetIpMulticastInterfaceResponder {
63950    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
63951    tx_id: u32,
63952}
63953
63954/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
63955/// if the responder is dropped without sending a response, so that the client
63956/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
63957impl std::ops::Drop for StreamSocketGetIpMulticastInterfaceResponder {
63958    fn drop(&mut self) {
63959        self.control_handle.shutdown();
63960        // Safety: drops once, never accessed again
63961        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63962    }
63963}
63964
63965impl fidl::endpoints::Responder for StreamSocketGetIpMulticastInterfaceResponder {
63966    type ControlHandle = StreamSocketControlHandle;
63967
63968    fn control_handle(&self) -> &StreamSocketControlHandle {
63969        &self.control_handle
63970    }
63971
63972    fn drop_without_shutdown(mut self) {
63973        // Safety: drops once, never accessed again due to mem::forget
63974        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
63975        // Prevent Drop from running (which would shut down the channel)
63976        std::mem::forget(self);
63977    }
63978}
63979
63980impl StreamSocketGetIpMulticastInterfaceResponder {
63981    /// Sends a response to the FIDL transaction.
63982    ///
63983    /// Sets the channel to shutdown if an error occurs.
63984    pub fn send(
63985        self,
63986        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
63987    ) -> Result<(), fidl::Error> {
63988        let _result = self.send_raw(result);
63989        if _result.is_err() {
63990            self.control_handle.shutdown();
63991        }
63992        self.drop_without_shutdown();
63993        _result
63994    }
63995
63996    /// Similar to "send" but does not shutdown the channel if an error occurs.
63997    pub fn send_no_shutdown_on_err(
63998        self,
63999        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
64000    ) -> Result<(), fidl::Error> {
64001        let _result = self.send_raw(result);
64002        self.drop_without_shutdown();
64003        _result
64004    }
64005
64006    fn send_raw(
64007        &self,
64008        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
64009    ) -> Result<(), fidl::Error> {
64010        self.control_handle.inner.send::<fidl::encoding::ResultType<
64011            BaseNetworkSocketGetIpMulticastInterfaceResponse,
64012            fidl_fuchsia_posix::Errno,
64013        >>(
64014            result.map(|value| (value,)),
64015            self.tx_id,
64016            0x320bd14c4df046c4,
64017            fidl::encoding::DynamicFlags::empty(),
64018        )
64019    }
64020}
64021
64022#[must_use = "FIDL methods require a response to be sent"]
64023#[derive(Debug)]
64024pub struct StreamSocketSetIpMulticastTtlResponder {
64025    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64026    tx_id: u32,
64027}
64028
64029/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64030/// if the responder is dropped without sending a response, so that the client
64031/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64032impl std::ops::Drop for StreamSocketSetIpMulticastTtlResponder {
64033    fn drop(&mut self) {
64034        self.control_handle.shutdown();
64035        // Safety: drops once, never accessed again
64036        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64037    }
64038}
64039
64040impl fidl::endpoints::Responder for StreamSocketSetIpMulticastTtlResponder {
64041    type ControlHandle = StreamSocketControlHandle;
64042
64043    fn control_handle(&self) -> &StreamSocketControlHandle {
64044        &self.control_handle
64045    }
64046
64047    fn drop_without_shutdown(mut self) {
64048        // Safety: drops once, never accessed again due to mem::forget
64049        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64050        // Prevent Drop from running (which would shut down the channel)
64051        std::mem::forget(self);
64052    }
64053}
64054
64055impl StreamSocketSetIpMulticastTtlResponder {
64056    /// Sends a response to the FIDL transaction.
64057    ///
64058    /// Sets the channel to shutdown if an error occurs.
64059    pub fn send(
64060        self,
64061        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64062    ) -> Result<(), fidl::Error> {
64063        let _result = self.send_raw(result);
64064        if _result.is_err() {
64065            self.control_handle.shutdown();
64066        }
64067        self.drop_without_shutdown();
64068        _result
64069    }
64070
64071    /// Similar to "send" but does not shutdown the channel if an error occurs.
64072    pub fn send_no_shutdown_on_err(
64073        self,
64074        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64075    ) -> Result<(), fidl::Error> {
64076        let _result = self.send_raw(result);
64077        self.drop_without_shutdown();
64078        _result
64079    }
64080
64081    fn send_raw(
64082        &self,
64083        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64084    ) -> Result<(), fidl::Error> {
64085        self.control_handle.inner.send::<fidl::encoding::ResultType<
64086            fidl::encoding::EmptyStruct,
64087            fidl_fuchsia_posix::Errno,
64088        >>(
64089            result,
64090            self.tx_id,
64091            0x63134d53772916a1,
64092            fidl::encoding::DynamicFlags::empty(),
64093        )
64094    }
64095}
64096
64097#[must_use = "FIDL methods require a response to be sent"]
64098#[derive(Debug)]
64099pub struct StreamSocketGetIpMulticastTtlResponder {
64100    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64101    tx_id: u32,
64102}
64103
64104/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64105/// if the responder is dropped without sending a response, so that the client
64106/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64107impl std::ops::Drop for StreamSocketGetIpMulticastTtlResponder {
64108    fn drop(&mut self) {
64109        self.control_handle.shutdown();
64110        // Safety: drops once, never accessed again
64111        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64112    }
64113}
64114
64115impl fidl::endpoints::Responder for StreamSocketGetIpMulticastTtlResponder {
64116    type ControlHandle = StreamSocketControlHandle;
64117
64118    fn control_handle(&self) -> &StreamSocketControlHandle {
64119        &self.control_handle
64120    }
64121
64122    fn drop_without_shutdown(mut self) {
64123        // Safety: drops once, never accessed again due to mem::forget
64124        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64125        // Prevent Drop from running (which would shut down the channel)
64126        std::mem::forget(self);
64127    }
64128}
64129
64130impl StreamSocketGetIpMulticastTtlResponder {
64131    /// Sends a response to the FIDL transaction.
64132    ///
64133    /// Sets the channel to shutdown if an error occurs.
64134    pub fn send(
64135        self,
64136        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64137    ) -> Result<(), fidl::Error> {
64138        let _result = self.send_raw(result);
64139        if _result.is_err() {
64140            self.control_handle.shutdown();
64141        }
64142        self.drop_without_shutdown();
64143        _result
64144    }
64145
64146    /// Similar to "send" but does not shutdown the channel if an error occurs.
64147    pub fn send_no_shutdown_on_err(
64148        self,
64149        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64150    ) -> Result<(), fidl::Error> {
64151        let _result = self.send_raw(result);
64152        self.drop_without_shutdown();
64153        _result
64154    }
64155
64156    fn send_raw(
64157        &self,
64158        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
64159    ) -> Result<(), fidl::Error> {
64160        self.control_handle.inner.send::<fidl::encoding::ResultType<
64161            BaseNetworkSocketGetIpMulticastTtlResponse,
64162            fidl_fuchsia_posix::Errno,
64163        >>(
64164            result.map(|value| (value,)),
64165            self.tx_id,
64166            0x4665cd378f39e1a,
64167            fidl::encoding::DynamicFlags::empty(),
64168        )
64169    }
64170}
64171
64172#[must_use = "FIDL methods require a response to be sent"]
64173#[derive(Debug)]
64174pub struct StreamSocketSetIpMulticastLoopbackResponder {
64175    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64176    tx_id: u32,
64177}
64178
64179/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64180/// if the responder is dropped without sending a response, so that the client
64181/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64182impl std::ops::Drop for StreamSocketSetIpMulticastLoopbackResponder {
64183    fn drop(&mut self) {
64184        self.control_handle.shutdown();
64185        // Safety: drops once, never accessed again
64186        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64187    }
64188}
64189
64190impl fidl::endpoints::Responder for StreamSocketSetIpMulticastLoopbackResponder {
64191    type ControlHandle = StreamSocketControlHandle;
64192
64193    fn control_handle(&self) -> &StreamSocketControlHandle {
64194        &self.control_handle
64195    }
64196
64197    fn drop_without_shutdown(mut self) {
64198        // Safety: drops once, never accessed again due to mem::forget
64199        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64200        // Prevent Drop from running (which would shut down the channel)
64201        std::mem::forget(self);
64202    }
64203}
64204
64205impl StreamSocketSetIpMulticastLoopbackResponder {
64206    /// Sends a response to the FIDL transaction.
64207    ///
64208    /// Sets the channel to shutdown if an error occurs.
64209    pub fn send(
64210        self,
64211        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64212    ) -> Result<(), fidl::Error> {
64213        let _result = self.send_raw(result);
64214        if _result.is_err() {
64215            self.control_handle.shutdown();
64216        }
64217        self.drop_without_shutdown();
64218        _result
64219    }
64220
64221    /// Similar to "send" but does not shutdown the channel if an error occurs.
64222    pub fn send_no_shutdown_on_err(
64223        self,
64224        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64225    ) -> Result<(), fidl::Error> {
64226        let _result = self.send_raw(result);
64227        self.drop_without_shutdown();
64228        _result
64229    }
64230
64231    fn send_raw(
64232        &self,
64233        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64234    ) -> Result<(), fidl::Error> {
64235        self.control_handle.inner.send::<fidl::encoding::ResultType<
64236            fidl::encoding::EmptyStruct,
64237            fidl_fuchsia_posix::Errno,
64238        >>(
64239            result,
64240            self.tx_id,
64241            0x20c55c11f00943ea,
64242            fidl::encoding::DynamicFlags::empty(),
64243        )
64244    }
64245}
64246
64247#[must_use = "FIDL methods require a response to be sent"]
64248#[derive(Debug)]
64249pub struct StreamSocketGetIpMulticastLoopbackResponder {
64250    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64251    tx_id: u32,
64252}
64253
64254/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64255/// if the responder is dropped without sending a response, so that the client
64256/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64257impl std::ops::Drop for StreamSocketGetIpMulticastLoopbackResponder {
64258    fn drop(&mut self) {
64259        self.control_handle.shutdown();
64260        // Safety: drops once, never accessed again
64261        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64262    }
64263}
64264
64265impl fidl::endpoints::Responder for StreamSocketGetIpMulticastLoopbackResponder {
64266    type ControlHandle = StreamSocketControlHandle;
64267
64268    fn control_handle(&self) -> &StreamSocketControlHandle {
64269        &self.control_handle
64270    }
64271
64272    fn drop_without_shutdown(mut self) {
64273        // Safety: drops once, never accessed again due to mem::forget
64274        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64275        // Prevent Drop from running (which would shut down the channel)
64276        std::mem::forget(self);
64277    }
64278}
64279
64280impl StreamSocketGetIpMulticastLoopbackResponder {
64281    /// Sends a response to the FIDL transaction.
64282    ///
64283    /// Sets the channel to shutdown if an error occurs.
64284    pub fn send(
64285        self,
64286        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64287    ) -> Result<(), fidl::Error> {
64288        let _result = self.send_raw(result);
64289        if _result.is_err() {
64290            self.control_handle.shutdown();
64291        }
64292        self.drop_without_shutdown();
64293        _result
64294    }
64295
64296    /// Similar to "send" but does not shutdown the channel if an error occurs.
64297    pub fn send_no_shutdown_on_err(
64298        self,
64299        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64300    ) -> Result<(), fidl::Error> {
64301        let _result = self.send_raw(result);
64302        self.drop_without_shutdown();
64303        _result
64304    }
64305
64306    fn send_raw(
64307        &self,
64308        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64309    ) -> Result<(), fidl::Error> {
64310        self.control_handle.inner.send::<fidl::encoding::ResultType<
64311            BaseNetworkSocketGetIpMulticastLoopbackResponse,
64312            fidl_fuchsia_posix::Errno,
64313        >>(
64314            result.map(|value| (value,)),
64315            self.tx_id,
64316            0x3b6b26ff558298f2,
64317            fidl::encoding::DynamicFlags::empty(),
64318        )
64319    }
64320}
64321
64322#[must_use = "FIDL methods require a response to be sent"]
64323#[derive(Debug)]
64324pub struct StreamSocketAddIpMembershipResponder {
64325    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64326    tx_id: u32,
64327}
64328
64329/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64330/// if the responder is dropped without sending a response, so that the client
64331/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64332impl std::ops::Drop for StreamSocketAddIpMembershipResponder {
64333    fn drop(&mut self) {
64334        self.control_handle.shutdown();
64335        // Safety: drops once, never accessed again
64336        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64337    }
64338}
64339
64340impl fidl::endpoints::Responder for StreamSocketAddIpMembershipResponder {
64341    type ControlHandle = StreamSocketControlHandle;
64342
64343    fn control_handle(&self) -> &StreamSocketControlHandle {
64344        &self.control_handle
64345    }
64346
64347    fn drop_without_shutdown(mut self) {
64348        // Safety: drops once, never accessed again due to mem::forget
64349        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64350        // Prevent Drop from running (which would shut down the channel)
64351        std::mem::forget(self);
64352    }
64353}
64354
64355impl StreamSocketAddIpMembershipResponder {
64356    /// Sends a response to the FIDL transaction.
64357    ///
64358    /// Sets the channel to shutdown if an error occurs.
64359    pub fn send(
64360        self,
64361        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64362    ) -> Result<(), fidl::Error> {
64363        let _result = self.send_raw(result);
64364        if _result.is_err() {
64365            self.control_handle.shutdown();
64366        }
64367        self.drop_without_shutdown();
64368        _result
64369    }
64370
64371    /// Similar to "send" but does not shutdown the channel if an error occurs.
64372    pub fn send_no_shutdown_on_err(
64373        self,
64374        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64375    ) -> Result<(), fidl::Error> {
64376        let _result = self.send_raw(result);
64377        self.drop_without_shutdown();
64378        _result
64379    }
64380
64381    fn send_raw(
64382        &self,
64383        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64384    ) -> Result<(), fidl::Error> {
64385        self.control_handle.inner.send::<fidl::encoding::ResultType<
64386            fidl::encoding::EmptyStruct,
64387            fidl_fuchsia_posix::Errno,
64388        >>(
64389            result,
64390            self.tx_id,
64391            0x76bc7df115a3b4d0,
64392            fidl::encoding::DynamicFlags::empty(),
64393        )
64394    }
64395}
64396
64397#[must_use = "FIDL methods require a response to be sent"]
64398#[derive(Debug)]
64399pub struct StreamSocketDropIpMembershipResponder {
64400    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64401    tx_id: u32,
64402}
64403
64404/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64405/// if the responder is dropped without sending a response, so that the client
64406/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64407impl std::ops::Drop for StreamSocketDropIpMembershipResponder {
64408    fn drop(&mut self) {
64409        self.control_handle.shutdown();
64410        // Safety: drops once, never accessed again
64411        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64412    }
64413}
64414
64415impl fidl::endpoints::Responder for StreamSocketDropIpMembershipResponder {
64416    type ControlHandle = StreamSocketControlHandle;
64417
64418    fn control_handle(&self) -> &StreamSocketControlHandle {
64419        &self.control_handle
64420    }
64421
64422    fn drop_without_shutdown(mut self) {
64423        // Safety: drops once, never accessed again due to mem::forget
64424        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64425        // Prevent Drop from running (which would shut down the channel)
64426        std::mem::forget(self);
64427    }
64428}
64429
64430impl StreamSocketDropIpMembershipResponder {
64431    /// Sends a response to the FIDL transaction.
64432    ///
64433    /// Sets the channel to shutdown if an error occurs.
64434    pub fn send(
64435        self,
64436        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64437    ) -> Result<(), fidl::Error> {
64438        let _result = self.send_raw(result);
64439        if _result.is_err() {
64440            self.control_handle.shutdown();
64441        }
64442        self.drop_without_shutdown();
64443        _result
64444    }
64445
64446    /// Similar to "send" but does not shutdown the channel if an error occurs.
64447    pub fn send_no_shutdown_on_err(
64448        self,
64449        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64450    ) -> Result<(), fidl::Error> {
64451        let _result = self.send_raw(result);
64452        self.drop_without_shutdown();
64453        _result
64454    }
64455
64456    fn send_raw(
64457        &self,
64458        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64459    ) -> Result<(), fidl::Error> {
64460        self.control_handle.inner.send::<fidl::encoding::ResultType<
64461            fidl::encoding::EmptyStruct,
64462            fidl_fuchsia_posix::Errno,
64463        >>(
64464            result,
64465            self.tx_id,
64466            0x2888f3099188d03,
64467            fidl::encoding::DynamicFlags::empty(),
64468        )
64469    }
64470}
64471
64472#[must_use = "FIDL methods require a response to be sent"]
64473#[derive(Debug)]
64474pub struct StreamSocketSetIpTransparentResponder {
64475    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64476    tx_id: u32,
64477}
64478
64479/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64480/// if the responder is dropped without sending a response, so that the client
64481/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64482impl std::ops::Drop for StreamSocketSetIpTransparentResponder {
64483    fn drop(&mut self) {
64484        self.control_handle.shutdown();
64485        // Safety: drops once, never accessed again
64486        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64487    }
64488}
64489
64490impl fidl::endpoints::Responder for StreamSocketSetIpTransparentResponder {
64491    type ControlHandle = StreamSocketControlHandle;
64492
64493    fn control_handle(&self) -> &StreamSocketControlHandle {
64494        &self.control_handle
64495    }
64496
64497    fn drop_without_shutdown(mut self) {
64498        // Safety: drops once, never accessed again due to mem::forget
64499        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64500        // Prevent Drop from running (which would shut down the channel)
64501        std::mem::forget(self);
64502    }
64503}
64504
64505impl StreamSocketSetIpTransparentResponder {
64506    /// Sends a response to the FIDL transaction.
64507    ///
64508    /// Sets the channel to shutdown if an error occurs.
64509    pub fn send(
64510        self,
64511        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64512    ) -> Result<(), fidl::Error> {
64513        let _result = self.send_raw(result);
64514        if _result.is_err() {
64515            self.control_handle.shutdown();
64516        }
64517        self.drop_without_shutdown();
64518        _result
64519    }
64520
64521    /// Similar to "send" but does not shutdown the channel if an error occurs.
64522    pub fn send_no_shutdown_on_err(
64523        self,
64524        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64525    ) -> Result<(), fidl::Error> {
64526        let _result = self.send_raw(result);
64527        self.drop_without_shutdown();
64528        _result
64529    }
64530
64531    fn send_raw(
64532        &self,
64533        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64534    ) -> Result<(), fidl::Error> {
64535        self.control_handle.inner.send::<fidl::encoding::ResultType<
64536            fidl::encoding::EmptyStruct,
64537            fidl_fuchsia_posix::Errno,
64538        >>(
64539            result,
64540            self.tx_id,
64541            0x1ae532b0c066e3a0,
64542            fidl::encoding::DynamicFlags::empty(),
64543        )
64544    }
64545}
64546
64547#[must_use = "FIDL methods require a response to be sent"]
64548#[derive(Debug)]
64549pub struct StreamSocketGetIpTransparentResponder {
64550    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64551    tx_id: u32,
64552}
64553
64554/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64555/// if the responder is dropped without sending a response, so that the client
64556/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64557impl std::ops::Drop for StreamSocketGetIpTransparentResponder {
64558    fn drop(&mut self) {
64559        self.control_handle.shutdown();
64560        // Safety: drops once, never accessed again
64561        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64562    }
64563}
64564
64565impl fidl::endpoints::Responder for StreamSocketGetIpTransparentResponder {
64566    type ControlHandle = StreamSocketControlHandle;
64567
64568    fn control_handle(&self) -> &StreamSocketControlHandle {
64569        &self.control_handle
64570    }
64571
64572    fn drop_without_shutdown(mut self) {
64573        // Safety: drops once, never accessed again due to mem::forget
64574        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64575        // Prevent Drop from running (which would shut down the channel)
64576        std::mem::forget(self);
64577    }
64578}
64579
64580impl StreamSocketGetIpTransparentResponder {
64581    /// Sends a response to the FIDL transaction.
64582    ///
64583    /// Sets the channel to shutdown if an error occurs.
64584    pub fn send(
64585        self,
64586        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64587    ) -> Result<(), fidl::Error> {
64588        let _result = self.send_raw(result);
64589        if _result.is_err() {
64590            self.control_handle.shutdown();
64591        }
64592        self.drop_without_shutdown();
64593        _result
64594    }
64595
64596    /// Similar to "send" but does not shutdown the channel if an error occurs.
64597    pub fn send_no_shutdown_on_err(
64598        self,
64599        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64600    ) -> Result<(), fidl::Error> {
64601        let _result = self.send_raw(result);
64602        self.drop_without_shutdown();
64603        _result
64604    }
64605
64606    fn send_raw(
64607        &self,
64608        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64609    ) -> Result<(), fidl::Error> {
64610        self.control_handle.inner.send::<fidl::encoding::ResultType<
64611            BaseNetworkSocketGetIpTransparentResponse,
64612            fidl_fuchsia_posix::Errno,
64613        >>(
64614            result.map(|value| (value,)),
64615            self.tx_id,
64616            0x51d43695962ebfb5,
64617            fidl::encoding::DynamicFlags::empty(),
64618        )
64619    }
64620}
64621
64622#[must_use = "FIDL methods require a response to be sent"]
64623#[derive(Debug)]
64624pub struct StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
64625    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64626    tx_id: u32,
64627}
64628
64629/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64630/// if the responder is dropped without sending a response, so that the client
64631/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64632impl std::ops::Drop for StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
64633    fn drop(&mut self) {
64634        self.control_handle.shutdown();
64635        // Safety: drops once, never accessed again
64636        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64637    }
64638}
64639
64640impl fidl::endpoints::Responder for StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
64641    type ControlHandle = StreamSocketControlHandle;
64642
64643    fn control_handle(&self) -> &StreamSocketControlHandle {
64644        &self.control_handle
64645    }
64646
64647    fn drop_without_shutdown(mut self) {
64648        // Safety: drops once, never accessed again due to mem::forget
64649        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64650        // Prevent Drop from running (which would shut down the channel)
64651        std::mem::forget(self);
64652    }
64653}
64654
64655impl StreamSocketSetIpReceiveOriginalDestinationAddressResponder {
64656    /// Sends a response to the FIDL transaction.
64657    ///
64658    /// Sets the channel to shutdown if an error occurs.
64659    pub fn send(
64660        self,
64661        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64662    ) -> Result<(), fidl::Error> {
64663        let _result = self.send_raw(result);
64664        if _result.is_err() {
64665            self.control_handle.shutdown();
64666        }
64667        self.drop_without_shutdown();
64668        _result
64669    }
64670
64671    /// Similar to "send" but does not shutdown the channel if an error occurs.
64672    pub fn send_no_shutdown_on_err(
64673        self,
64674        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64675    ) -> Result<(), fidl::Error> {
64676        let _result = self.send_raw(result);
64677        self.drop_without_shutdown();
64678        _result
64679    }
64680
64681    fn send_raw(
64682        &self,
64683        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64684    ) -> Result<(), fidl::Error> {
64685        self.control_handle.inner.send::<fidl::encoding::ResultType<
64686            fidl::encoding::EmptyStruct,
64687            fidl_fuchsia_posix::Errno,
64688        >>(
64689            result,
64690            self.tx_id,
64691            0x4722b4ce52f7840,
64692            fidl::encoding::DynamicFlags::empty(),
64693        )
64694    }
64695}
64696
64697#[must_use = "FIDL methods require a response to be sent"]
64698#[derive(Debug)]
64699pub struct StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
64700    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64701    tx_id: u32,
64702}
64703
64704/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64705/// if the responder is dropped without sending a response, so that the client
64706/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64707impl std::ops::Drop for StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
64708    fn drop(&mut self) {
64709        self.control_handle.shutdown();
64710        // Safety: drops once, never accessed again
64711        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64712    }
64713}
64714
64715impl fidl::endpoints::Responder for StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
64716    type ControlHandle = StreamSocketControlHandle;
64717
64718    fn control_handle(&self) -> &StreamSocketControlHandle {
64719        &self.control_handle
64720    }
64721
64722    fn drop_without_shutdown(mut self) {
64723        // Safety: drops once, never accessed again due to mem::forget
64724        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64725        // Prevent Drop from running (which would shut down the channel)
64726        std::mem::forget(self);
64727    }
64728}
64729
64730impl StreamSocketGetIpReceiveOriginalDestinationAddressResponder {
64731    /// Sends a response to the FIDL transaction.
64732    ///
64733    /// Sets the channel to shutdown if an error occurs.
64734    pub fn send(
64735        self,
64736        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64737    ) -> Result<(), fidl::Error> {
64738        let _result = self.send_raw(result);
64739        if _result.is_err() {
64740            self.control_handle.shutdown();
64741        }
64742        self.drop_without_shutdown();
64743        _result
64744    }
64745
64746    /// Similar to "send" but does not shutdown the channel if an error occurs.
64747    pub fn send_no_shutdown_on_err(
64748        self,
64749        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64750    ) -> Result<(), fidl::Error> {
64751        let _result = self.send_raw(result);
64752        self.drop_without_shutdown();
64753        _result
64754    }
64755
64756    fn send_raw(
64757        &self,
64758        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
64759    ) -> Result<(), fidl::Error> {
64760        self.control_handle.inner.send::<fidl::encoding::ResultType<
64761            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
64762            fidl_fuchsia_posix::Errno,
64763        >>(
64764            result.map(|value| (value,)),
64765            self.tx_id,
64766            0x2a0e7dc5d6bfdfe9,
64767            fidl::encoding::DynamicFlags::empty(),
64768        )
64769    }
64770}
64771
64772#[must_use = "FIDL methods require a response to be sent"]
64773#[derive(Debug)]
64774pub struct StreamSocketAddIpv6MembershipResponder {
64775    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64776    tx_id: u32,
64777}
64778
64779/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64780/// if the responder is dropped without sending a response, so that the client
64781/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64782impl std::ops::Drop for StreamSocketAddIpv6MembershipResponder {
64783    fn drop(&mut self) {
64784        self.control_handle.shutdown();
64785        // Safety: drops once, never accessed again
64786        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64787    }
64788}
64789
64790impl fidl::endpoints::Responder for StreamSocketAddIpv6MembershipResponder {
64791    type ControlHandle = StreamSocketControlHandle;
64792
64793    fn control_handle(&self) -> &StreamSocketControlHandle {
64794        &self.control_handle
64795    }
64796
64797    fn drop_without_shutdown(mut self) {
64798        // Safety: drops once, never accessed again due to mem::forget
64799        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64800        // Prevent Drop from running (which would shut down the channel)
64801        std::mem::forget(self);
64802    }
64803}
64804
64805impl StreamSocketAddIpv6MembershipResponder {
64806    /// Sends a response to the FIDL transaction.
64807    ///
64808    /// Sets the channel to shutdown if an error occurs.
64809    pub fn send(
64810        self,
64811        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64812    ) -> Result<(), fidl::Error> {
64813        let _result = self.send_raw(result);
64814        if _result.is_err() {
64815            self.control_handle.shutdown();
64816        }
64817        self.drop_without_shutdown();
64818        _result
64819    }
64820
64821    /// Similar to "send" but does not shutdown the channel if an error occurs.
64822    pub fn send_no_shutdown_on_err(
64823        self,
64824        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64825    ) -> Result<(), fidl::Error> {
64826        let _result = self.send_raw(result);
64827        self.drop_without_shutdown();
64828        _result
64829    }
64830
64831    fn send_raw(
64832        &self,
64833        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64834    ) -> Result<(), fidl::Error> {
64835        self.control_handle.inner.send::<fidl::encoding::ResultType<
64836            fidl::encoding::EmptyStruct,
64837            fidl_fuchsia_posix::Errno,
64838        >>(
64839            result,
64840            self.tx_id,
64841            0x7c94727acb4ea4b3,
64842            fidl::encoding::DynamicFlags::empty(),
64843        )
64844    }
64845}
64846
64847#[must_use = "FIDL methods require a response to be sent"]
64848#[derive(Debug)]
64849pub struct StreamSocketDropIpv6MembershipResponder {
64850    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64851    tx_id: u32,
64852}
64853
64854/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64855/// if the responder is dropped without sending a response, so that the client
64856/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64857impl std::ops::Drop for StreamSocketDropIpv6MembershipResponder {
64858    fn drop(&mut self) {
64859        self.control_handle.shutdown();
64860        // Safety: drops once, never accessed again
64861        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64862    }
64863}
64864
64865impl fidl::endpoints::Responder for StreamSocketDropIpv6MembershipResponder {
64866    type ControlHandle = StreamSocketControlHandle;
64867
64868    fn control_handle(&self) -> &StreamSocketControlHandle {
64869        &self.control_handle
64870    }
64871
64872    fn drop_without_shutdown(mut self) {
64873        // Safety: drops once, never accessed again due to mem::forget
64874        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64875        // Prevent Drop from running (which would shut down the channel)
64876        std::mem::forget(self);
64877    }
64878}
64879
64880impl StreamSocketDropIpv6MembershipResponder {
64881    /// Sends a response to the FIDL transaction.
64882    ///
64883    /// Sets the channel to shutdown if an error occurs.
64884    pub fn send(
64885        self,
64886        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64887    ) -> Result<(), fidl::Error> {
64888        let _result = self.send_raw(result);
64889        if _result.is_err() {
64890            self.control_handle.shutdown();
64891        }
64892        self.drop_without_shutdown();
64893        _result
64894    }
64895
64896    /// Similar to "send" but does not shutdown the channel if an error occurs.
64897    pub fn send_no_shutdown_on_err(
64898        self,
64899        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64900    ) -> Result<(), fidl::Error> {
64901        let _result = self.send_raw(result);
64902        self.drop_without_shutdown();
64903        _result
64904    }
64905
64906    fn send_raw(
64907        &self,
64908        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64909    ) -> Result<(), fidl::Error> {
64910        self.control_handle.inner.send::<fidl::encoding::ResultType<
64911            fidl::encoding::EmptyStruct,
64912            fidl_fuchsia_posix::Errno,
64913        >>(
64914            result,
64915            self.tx_id,
64916            0x42104c70ccaba304,
64917            fidl::encoding::DynamicFlags::empty(),
64918        )
64919    }
64920}
64921
64922#[must_use = "FIDL methods require a response to be sent"]
64923#[derive(Debug)]
64924pub struct StreamSocketSetIpv6MulticastInterfaceResponder {
64925    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
64926    tx_id: u32,
64927}
64928
64929/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
64930/// if the responder is dropped without sending a response, so that the client
64931/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
64932impl std::ops::Drop for StreamSocketSetIpv6MulticastInterfaceResponder {
64933    fn drop(&mut self) {
64934        self.control_handle.shutdown();
64935        // Safety: drops once, never accessed again
64936        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64937    }
64938}
64939
64940impl fidl::endpoints::Responder for StreamSocketSetIpv6MulticastInterfaceResponder {
64941    type ControlHandle = StreamSocketControlHandle;
64942
64943    fn control_handle(&self) -> &StreamSocketControlHandle {
64944        &self.control_handle
64945    }
64946
64947    fn drop_without_shutdown(mut self) {
64948        // Safety: drops once, never accessed again due to mem::forget
64949        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
64950        // Prevent Drop from running (which would shut down the channel)
64951        std::mem::forget(self);
64952    }
64953}
64954
64955impl StreamSocketSetIpv6MulticastInterfaceResponder {
64956    /// Sends a response to the FIDL transaction.
64957    ///
64958    /// Sets the channel to shutdown if an error occurs.
64959    pub fn send(
64960        self,
64961        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64962    ) -> Result<(), fidl::Error> {
64963        let _result = self.send_raw(result);
64964        if _result.is_err() {
64965            self.control_handle.shutdown();
64966        }
64967        self.drop_without_shutdown();
64968        _result
64969    }
64970
64971    /// Similar to "send" but does not shutdown the channel if an error occurs.
64972    pub fn send_no_shutdown_on_err(
64973        self,
64974        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64975    ) -> Result<(), fidl::Error> {
64976        let _result = self.send_raw(result);
64977        self.drop_without_shutdown();
64978        _result
64979    }
64980
64981    fn send_raw(
64982        &self,
64983        mut result: Result<(), fidl_fuchsia_posix::Errno>,
64984    ) -> Result<(), fidl::Error> {
64985        self.control_handle.inner.send::<fidl::encoding::ResultType<
64986            fidl::encoding::EmptyStruct,
64987            fidl_fuchsia_posix::Errno,
64988        >>(
64989            result,
64990            self.tx_id,
64991            0x135f76db3774ab3b,
64992            fidl::encoding::DynamicFlags::empty(),
64993        )
64994    }
64995}
64996
64997#[must_use = "FIDL methods require a response to be sent"]
64998#[derive(Debug)]
64999pub struct StreamSocketGetIpv6MulticastInterfaceResponder {
65000    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65001    tx_id: u32,
65002}
65003
65004/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65005/// if the responder is dropped without sending a response, so that the client
65006/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65007impl std::ops::Drop for StreamSocketGetIpv6MulticastInterfaceResponder {
65008    fn drop(&mut self) {
65009        self.control_handle.shutdown();
65010        // Safety: drops once, never accessed again
65011        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65012    }
65013}
65014
65015impl fidl::endpoints::Responder for StreamSocketGetIpv6MulticastInterfaceResponder {
65016    type ControlHandle = StreamSocketControlHandle;
65017
65018    fn control_handle(&self) -> &StreamSocketControlHandle {
65019        &self.control_handle
65020    }
65021
65022    fn drop_without_shutdown(mut self) {
65023        // Safety: drops once, never accessed again due to mem::forget
65024        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65025        // Prevent Drop from running (which would shut down the channel)
65026        std::mem::forget(self);
65027    }
65028}
65029
65030impl StreamSocketGetIpv6MulticastInterfaceResponder {
65031    /// Sends a response to the FIDL transaction.
65032    ///
65033    /// Sets the channel to shutdown if an error occurs.
65034    pub fn send(
65035        self,
65036        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
65037    ) -> Result<(), fidl::Error> {
65038        let _result = self.send_raw(result);
65039        if _result.is_err() {
65040            self.control_handle.shutdown();
65041        }
65042        self.drop_without_shutdown();
65043        _result
65044    }
65045
65046    /// Similar to "send" but does not shutdown the channel if an error occurs.
65047    pub fn send_no_shutdown_on_err(
65048        self,
65049        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
65050    ) -> Result<(), fidl::Error> {
65051        let _result = self.send_raw(result);
65052        self.drop_without_shutdown();
65053        _result
65054    }
65055
65056    fn send_raw(
65057        &self,
65058        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
65059    ) -> Result<(), fidl::Error> {
65060        self.control_handle.inner.send::<fidl::encoding::ResultType<
65061            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
65062            fidl_fuchsia_posix::Errno,
65063        >>(
65064            result.map(|value| (value,)),
65065            self.tx_id,
65066            0x1f26fcdd348f1882,
65067            fidl::encoding::DynamicFlags::empty(),
65068        )
65069    }
65070}
65071
65072#[must_use = "FIDL methods require a response to be sent"]
65073#[derive(Debug)]
65074pub struct StreamSocketSetIpv6UnicastHopsResponder {
65075    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65076    tx_id: u32,
65077}
65078
65079/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65080/// if the responder is dropped without sending a response, so that the client
65081/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65082impl std::ops::Drop for StreamSocketSetIpv6UnicastHopsResponder {
65083    fn drop(&mut self) {
65084        self.control_handle.shutdown();
65085        // Safety: drops once, never accessed again
65086        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65087    }
65088}
65089
65090impl fidl::endpoints::Responder for StreamSocketSetIpv6UnicastHopsResponder {
65091    type ControlHandle = StreamSocketControlHandle;
65092
65093    fn control_handle(&self) -> &StreamSocketControlHandle {
65094        &self.control_handle
65095    }
65096
65097    fn drop_without_shutdown(mut self) {
65098        // Safety: drops once, never accessed again due to mem::forget
65099        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65100        // Prevent Drop from running (which would shut down the channel)
65101        std::mem::forget(self);
65102    }
65103}
65104
65105impl StreamSocketSetIpv6UnicastHopsResponder {
65106    /// Sends a response to the FIDL transaction.
65107    ///
65108    /// Sets the channel to shutdown if an error occurs.
65109    pub fn send(
65110        self,
65111        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65112    ) -> Result<(), fidl::Error> {
65113        let _result = self.send_raw(result);
65114        if _result.is_err() {
65115            self.control_handle.shutdown();
65116        }
65117        self.drop_without_shutdown();
65118        _result
65119    }
65120
65121    /// Similar to "send" but does not shutdown the channel if an error occurs.
65122    pub fn send_no_shutdown_on_err(
65123        self,
65124        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65125    ) -> Result<(), fidl::Error> {
65126        let _result = self.send_raw(result);
65127        self.drop_without_shutdown();
65128        _result
65129    }
65130
65131    fn send_raw(
65132        &self,
65133        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65134    ) -> Result<(), fidl::Error> {
65135        self.control_handle.inner.send::<fidl::encoding::ResultType<
65136            fidl::encoding::EmptyStruct,
65137            fidl_fuchsia_posix::Errno,
65138        >>(
65139            result,
65140            self.tx_id,
65141            0x157d51e98f462859,
65142            fidl::encoding::DynamicFlags::empty(),
65143        )
65144    }
65145}
65146
65147#[must_use = "FIDL methods require a response to be sent"]
65148#[derive(Debug)]
65149pub struct StreamSocketGetIpv6UnicastHopsResponder {
65150    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65151    tx_id: u32,
65152}
65153
65154/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65155/// if the responder is dropped without sending a response, so that the client
65156/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65157impl std::ops::Drop for StreamSocketGetIpv6UnicastHopsResponder {
65158    fn drop(&mut self) {
65159        self.control_handle.shutdown();
65160        // Safety: drops once, never accessed again
65161        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65162    }
65163}
65164
65165impl fidl::endpoints::Responder for StreamSocketGetIpv6UnicastHopsResponder {
65166    type ControlHandle = StreamSocketControlHandle;
65167
65168    fn control_handle(&self) -> &StreamSocketControlHandle {
65169        &self.control_handle
65170    }
65171
65172    fn drop_without_shutdown(mut self) {
65173        // Safety: drops once, never accessed again due to mem::forget
65174        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65175        // Prevent Drop from running (which would shut down the channel)
65176        std::mem::forget(self);
65177    }
65178}
65179
65180impl StreamSocketGetIpv6UnicastHopsResponder {
65181    /// Sends a response to the FIDL transaction.
65182    ///
65183    /// Sets the channel to shutdown if an error occurs.
65184    pub fn send(
65185        self,
65186        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65187    ) -> Result<(), fidl::Error> {
65188        let _result = self.send_raw(result);
65189        if _result.is_err() {
65190            self.control_handle.shutdown();
65191        }
65192        self.drop_without_shutdown();
65193        _result
65194    }
65195
65196    /// Similar to "send" but does not shutdown the channel if an error occurs.
65197    pub fn send_no_shutdown_on_err(
65198        self,
65199        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65200    ) -> Result<(), fidl::Error> {
65201        let _result = self.send_raw(result);
65202        self.drop_without_shutdown();
65203        _result
65204    }
65205
65206    fn send_raw(
65207        &self,
65208        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65209    ) -> Result<(), fidl::Error> {
65210        self.control_handle.inner.send::<fidl::encoding::ResultType<
65211            BaseNetworkSocketGetIpv6UnicastHopsResponse,
65212            fidl_fuchsia_posix::Errno,
65213        >>(
65214            result.map(|value| (value,)),
65215            self.tx_id,
65216            0x21f4641cad8bd8d2,
65217            fidl::encoding::DynamicFlags::empty(),
65218        )
65219    }
65220}
65221
65222#[must_use = "FIDL methods require a response to be sent"]
65223#[derive(Debug)]
65224pub struct StreamSocketSetIpv6ReceiveHopLimitResponder {
65225    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65226    tx_id: u32,
65227}
65228
65229/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65230/// if the responder is dropped without sending a response, so that the client
65231/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65232impl std::ops::Drop for StreamSocketSetIpv6ReceiveHopLimitResponder {
65233    fn drop(&mut self) {
65234        self.control_handle.shutdown();
65235        // Safety: drops once, never accessed again
65236        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65237    }
65238}
65239
65240impl fidl::endpoints::Responder for StreamSocketSetIpv6ReceiveHopLimitResponder {
65241    type ControlHandle = StreamSocketControlHandle;
65242
65243    fn control_handle(&self) -> &StreamSocketControlHandle {
65244        &self.control_handle
65245    }
65246
65247    fn drop_without_shutdown(mut self) {
65248        // Safety: drops once, never accessed again due to mem::forget
65249        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65250        // Prevent Drop from running (which would shut down the channel)
65251        std::mem::forget(self);
65252    }
65253}
65254
65255impl StreamSocketSetIpv6ReceiveHopLimitResponder {
65256    /// Sends a response to the FIDL transaction.
65257    ///
65258    /// Sets the channel to shutdown if an error occurs.
65259    pub fn send(
65260        self,
65261        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65262    ) -> Result<(), fidl::Error> {
65263        let _result = self.send_raw(result);
65264        if _result.is_err() {
65265            self.control_handle.shutdown();
65266        }
65267        self.drop_without_shutdown();
65268        _result
65269    }
65270
65271    /// Similar to "send" but does not shutdown the channel if an error occurs.
65272    pub fn send_no_shutdown_on_err(
65273        self,
65274        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65275    ) -> Result<(), fidl::Error> {
65276        let _result = self.send_raw(result);
65277        self.drop_without_shutdown();
65278        _result
65279    }
65280
65281    fn send_raw(
65282        &self,
65283        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65284    ) -> Result<(), fidl::Error> {
65285        self.control_handle.inner.send::<fidl::encoding::ResultType<
65286            fidl::encoding::EmptyStruct,
65287            fidl_fuchsia_posix::Errno,
65288        >>(
65289            result,
65290            self.tx_id,
65291            0x5c24808ed2e84a1e,
65292            fidl::encoding::DynamicFlags::empty(),
65293        )
65294    }
65295}
65296
65297#[must_use = "FIDL methods require a response to be sent"]
65298#[derive(Debug)]
65299pub struct StreamSocketGetIpv6ReceiveHopLimitResponder {
65300    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65301    tx_id: u32,
65302}
65303
65304/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65305/// if the responder is dropped without sending a response, so that the client
65306/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65307impl std::ops::Drop for StreamSocketGetIpv6ReceiveHopLimitResponder {
65308    fn drop(&mut self) {
65309        self.control_handle.shutdown();
65310        // Safety: drops once, never accessed again
65311        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65312    }
65313}
65314
65315impl fidl::endpoints::Responder for StreamSocketGetIpv6ReceiveHopLimitResponder {
65316    type ControlHandle = StreamSocketControlHandle;
65317
65318    fn control_handle(&self) -> &StreamSocketControlHandle {
65319        &self.control_handle
65320    }
65321
65322    fn drop_without_shutdown(mut self) {
65323        // Safety: drops once, never accessed again due to mem::forget
65324        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65325        // Prevent Drop from running (which would shut down the channel)
65326        std::mem::forget(self);
65327    }
65328}
65329
65330impl StreamSocketGetIpv6ReceiveHopLimitResponder {
65331    /// Sends a response to the FIDL transaction.
65332    ///
65333    /// Sets the channel to shutdown if an error occurs.
65334    pub fn send(
65335        self,
65336        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65337    ) -> Result<(), fidl::Error> {
65338        let _result = self.send_raw(result);
65339        if _result.is_err() {
65340            self.control_handle.shutdown();
65341        }
65342        self.drop_without_shutdown();
65343        _result
65344    }
65345
65346    /// Similar to "send" but does not shutdown the channel if an error occurs.
65347    pub fn send_no_shutdown_on_err(
65348        self,
65349        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65350    ) -> Result<(), fidl::Error> {
65351        let _result = self.send_raw(result);
65352        self.drop_without_shutdown();
65353        _result
65354    }
65355
65356    fn send_raw(
65357        &self,
65358        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65359    ) -> Result<(), fidl::Error> {
65360        self.control_handle.inner.send::<fidl::encoding::ResultType<
65361            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
65362            fidl_fuchsia_posix::Errno,
65363        >>(
65364            result.map(|value| (value,)),
65365            self.tx_id,
65366            0x341e06689885b4c0,
65367            fidl::encoding::DynamicFlags::empty(),
65368        )
65369    }
65370}
65371
65372#[must_use = "FIDL methods require a response to be sent"]
65373#[derive(Debug)]
65374pub struct StreamSocketSetIpv6MulticastHopsResponder {
65375    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65376    tx_id: u32,
65377}
65378
65379/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65380/// if the responder is dropped without sending a response, so that the client
65381/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65382impl std::ops::Drop for StreamSocketSetIpv6MulticastHopsResponder {
65383    fn drop(&mut self) {
65384        self.control_handle.shutdown();
65385        // Safety: drops once, never accessed again
65386        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65387    }
65388}
65389
65390impl fidl::endpoints::Responder for StreamSocketSetIpv6MulticastHopsResponder {
65391    type ControlHandle = StreamSocketControlHandle;
65392
65393    fn control_handle(&self) -> &StreamSocketControlHandle {
65394        &self.control_handle
65395    }
65396
65397    fn drop_without_shutdown(mut self) {
65398        // Safety: drops once, never accessed again due to mem::forget
65399        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65400        // Prevent Drop from running (which would shut down the channel)
65401        std::mem::forget(self);
65402    }
65403}
65404
65405impl StreamSocketSetIpv6MulticastHopsResponder {
65406    /// Sends a response to the FIDL transaction.
65407    ///
65408    /// Sets the channel to shutdown if an error occurs.
65409    pub fn send(
65410        self,
65411        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65412    ) -> Result<(), fidl::Error> {
65413        let _result = self.send_raw(result);
65414        if _result.is_err() {
65415            self.control_handle.shutdown();
65416        }
65417        self.drop_without_shutdown();
65418        _result
65419    }
65420
65421    /// Similar to "send" but does not shutdown the channel if an error occurs.
65422    pub fn send_no_shutdown_on_err(
65423        self,
65424        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65425    ) -> Result<(), fidl::Error> {
65426        let _result = self.send_raw(result);
65427        self.drop_without_shutdown();
65428        _result
65429    }
65430
65431    fn send_raw(
65432        &self,
65433        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65434    ) -> Result<(), fidl::Error> {
65435        self.control_handle.inner.send::<fidl::encoding::ResultType<
65436            fidl::encoding::EmptyStruct,
65437            fidl_fuchsia_posix::Errno,
65438        >>(
65439            result,
65440            self.tx_id,
65441            0x25b9cd4d181f82c1,
65442            fidl::encoding::DynamicFlags::empty(),
65443        )
65444    }
65445}
65446
65447#[must_use = "FIDL methods require a response to be sent"]
65448#[derive(Debug)]
65449pub struct StreamSocketGetIpv6MulticastHopsResponder {
65450    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65451    tx_id: u32,
65452}
65453
65454/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65455/// if the responder is dropped without sending a response, so that the client
65456/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65457impl std::ops::Drop for StreamSocketGetIpv6MulticastHopsResponder {
65458    fn drop(&mut self) {
65459        self.control_handle.shutdown();
65460        // Safety: drops once, never accessed again
65461        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65462    }
65463}
65464
65465impl fidl::endpoints::Responder for StreamSocketGetIpv6MulticastHopsResponder {
65466    type ControlHandle = StreamSocketControlHandle;
65467
65468    fn control_handle(&self) -> &StreamSocketControlHandle {
65469        &self.control_handle
65470    }
65471
65472    fn drop_without_shutdown(mut self) {
65473        // Safety: drops once, never accessed again due to mem::forget
65474        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65475        // Prevent Drop from running (which would shut down the channel)
65476        std::mem::forget(self);
65477    }
65478}
65479
65480impl StreamSocketGetIpv6MulticastHopsResponder {
65481    /// Sends a response to the FIDL transaction.
65482    ///
65483    /// Sets the channel to shutdown if an error occurs.
65484    pub fn send(
65485        self,
65486        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65487    ) -> Result<(), fidl::Error> {
65488        let _result = self.send_raw(result);
65489        if _result.is_err() {
65490            self.control_handle.shutdown();
65491        }
65492        self.drop_without_shutdown();
65493        _result
65494    }
65495
65496    /// Similar to "send" but does not shutdown the channel if an error occurs.
65497    pub fn send_no_shutdown_on_err(
65498        self,
65499        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65500    ) -> Result<(), fidl::Error> {
65501        let _result = self.send_raw(result);
65502        self.drop_without_shutdown();
65503        _result
65504    }
65505
65506    fn send_raw(
65507        &self,
65508        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
65509    ) -> Result<(), fidl::Error> {
65510        self.control_handle.inner.send::<fidl::encoding::ResultType<
65511            BaseNetworkSocketGetIpv6MulticastHopsResponse,
65512            fidl_fuchsia_posix::Errno,
65513        >>(
65514            result.map(|value| (value,)),
65515            self.tx_id,
65516            0x52916948a365012a,
65517            fidl::encoding::DynamicFlags::empty(),
65518        )
65519    }
65520}
65521
65522#[must_use = "FIDL methods require a response to be sent"]
65523#[derive(Debug)]
65524pub struct StreamSocketSetIpv6MulticastLoopbackResponder {
65525    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65526    tx_id: u32,
65527}
65528
65529/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65530/// if the responder is dropped without sending a response, so that the client
65531/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65532impl std::ops::Drop for StreamSocketSetIpv6MulticastLoopbackResponder {
65533    fn drop(&mut self) {
65534        self.control_handle.shutdown();
65535        // Safety: drops once, never accessed again
65536        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65537    }
65538}
65539
65540impl fidl::endpoints::Responder for StreamSocketSetIpv6MulticastLoopbackResponder {
65541    type ControlHandle = StreamSocketControlHandle;
65542
65543    fn control_handle(&self) -> &StreamSocketControlHandle {
65544        &self.control_handle
65545    }
65546
65547    fn drop_without_shutdown(mut self) {
65548        // Safety: drops once, never accessed again due to mem::forget
65549        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65550        // Prevent Drop from running (which would shut down the channel)
65551        std::mem::forget(self);
65552    }
65553}
65554
65555impl StreamSocketSetIpv6MulticastLoopbackResponder {
65556    /// Sends a response to the FIDL transaction.
65557    ///
65558    /// Sets the channel to shutdown if an error occurs.
65559    pub fn send(
65560        self,
65561        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65562    ) -> Result<(), fidl::Error> {
65563        let _result = self.send_raw(result);
65564        if _result.is_err() {
65565            self.control_handle.shutdown();
65566        }
65567        self.drop_without_shutdown();
65568        _result
65569    }
65570
65571    /// Similar to "send" but does not shutdown the channel if an error occurs.
65572    pub fn send_no_shutdown_on_err(
65573        self,
65574        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65575    ) -> Result<(), fidl::Error> {
65576        let _result = self.send_raw(result);
65577        self.drop_without_shutdown();
65578        _result
65579    }
65580
65581    fn send_raw(
65582        &self,
65583        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65584    ) -> Result<(), fidl::Error> {
65585        self.control_handle.inner.send::<fidl::encoding::ResultType<
65586            fidl::encoding::EmptyStruct,
65587            fidl_fuchsia_posix::Errno,
65588        >>(
65589            result,
65590            self.tx_id,
65591            0x55701c409ff41b40,
65592            fidl::encoding::DynamicFlags::empty(),
65593        )
65594    }
65595}
65596
65597#[must_use = "FIDL methods require a response to be sent"]
65598#[derive(Debug)]
65599pub struct StreamSocketGetIpv6MulticastLoopbackResponder {
65600    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65601    tx_id: u32,
65602}
65603
65604/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65605/// if the responder is dropped without sending a response, so that the client
65606/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65607impl std::ops::Drop for StreamSocketGetIpv6MulticastLoopbackResponder {
65608    fn drop(&mut self) {
65609        self.control_handle.shutdown();
65610        // Safety: drops once, never accessed again
65611        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65612    }
65613}
65614
65615impl fidl::endpoints::Responder for StreamSocketGetIpv6MulticastLoopbackResponder {
65616    type ControlHandle = StreamSocketControlHandle;
65617
65618    fn control_handle(&self) -> &StreamSocketControlHandle {
65619        &self.control_handle
65620    }
65621
65622    fn drop_without_shutdown(mut self) {
65623        // Safety: drops once, never accessed again due to mem::forget
65624        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65625        // Prevent Drop from running (which would shut down the channel)
65626        std::mem::forget(self);
65627    }
65628}
65629
65630impl StreamSocketGetIpv6MulticastLoopbackResponder {
65631    /// Sends a response to the FIDL transaction.
65632    ///
65633    /// Sets the channel to shutdown if an error occurs.
65634    pub fn send(
65635        self,
65636        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65637    ) -> Result<(), fidl::Error> {
65638        let _result = self.send_raw(result);
65639        if _result.is_err() {
65640            self.control_handle.shutdown();
65641        }
65642        self.drop_without_shutdown();
65643        _result
65644    }
65645
65646    /// Similar to "send" but does not shutdown the channel if an error occurs.
65647    pub fn send_no_shutdown_on_err(
65648        self,
65649        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65650    ) -> Result<(), fidl::Error> {
65651        let _result = self.send_raw(result);
65652        self.drop_without_shutdown();
65653        _result
65654    }
65655
65656    fn send_raw(
65657        &self,
65658        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65659    ) -> Result<(), fidl::Error> {
65660        self.control_handle.inner.send::<fidl::encoding::ResultType<
65661            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
65662            fidl_fuchsia_posix::Errno,
65663        >>(
65664            result.map(|value| (value,)),
65665            self.tx_id,
65666            0x4415b701fde319c3,
65667            fidl::encoding::DynamicFlags::empty(),
65668        )
65669    }
65670}
65671
65672#[must_use = "FIDL methods require a response to be sent"]
65673#[derive(Debug)]
65674pub struct StreamSocketSetIpv6OnlyResponder {
65675    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65676    tx_id: u32,
65677}
65678
65679/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65680/// if the responder is dropped without sending a response, so that the client
65681/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65682impl std::ops::Drop for StreamSocketSetIpv6OnlyResponder {
65683    fn drop(&mut self) {
65684        self.control_handle.shutdown();
65685        // Safety: drops once, never accessed again
65686        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65687    }
65688}
65689
65690impl fidl::endpoints::Responder for StreamSocketSetIpv6OnlyResponder {
65691    type ControlHandle = StreamSocketControlHandle;
65692
65693    fn control_handle(&self) -> &StreamSocketControlHandle {
65694        &self.control_handle
65695    }
65696
65697    fn drop_without_shutdown(mut self) {
65698        // Safety: drops once, never accessed again due to mem::forget
65699        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65700        // Prevent Drop from running (which would shut down the channel)
65701        std::mem::forget(self);
65702    }
65703}
65704
65705impl StreamSocketSetIpv6OnlyResponder {
65706    /// Sends a response to the FIDL transaction.
65707    ///
65708    /// Sets the channel to shutdown if an error occurs.
65709    pub fn send(
65710        self,
65711        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65712    ) -> Result<(), fidl::Error> {
65713        let _result = self.send_raw(result);
65714        if _result.is_err() {
65715            self.control_handle.shutdown();
65716        }
65717        self.drop_without_shutdown();
65718        _result
65719    }
65720
65721    /// Similar to "send" but does not shutdown the channel if an error occurs.
65722    pub fn send_no_shutdown_on_err(
65723        self,
65724        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65725    ) -> Result<(), fidl::Error> {
65726        let _result = self.send_raw(result);
65727        self.drop_without_shutdown();
65728        _result
65729    }
65730
65731    fn send_raw(
65732        &self,
65733        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65734    ) -> Result<(), fidl::Error> {
65735        self.control_handle.inner.send::<fidl::encoding::ResultType<
65736            fidl::encoding::EmptyStruct,
65737            fidl_fuchsia_posix::Errno,
65738        >>(
65739            result,
65740            self.tx_id,
65741            0x4873f1364758cbba,
65742            fidl::encoding::DynamicFlags::empty(),
65743        )
65744    }
65745}
65746
65747#[must_use = "FIDL methods require a response to be sent"]
65748#[derive(Debug)]
65749pub struct StreamSocketGetIpv6OnlyResponder {
65750    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65751    tx_id: u32,
65752}
65753
65754/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65755/// if the responder is dropped without sending a response, so that the client
65756/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65757impl std::ops::Drop for StreamSocketGetIpv6OnlyResponder {
65758    fn drop(&mut self) {
65759        self.control_handle.shutdown();
65760        // Safety: drops once, never accessed again
65761        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65762    }
65763}
65764
65765impl fidl::endpoints::Responder for StreamSocketGetIpv6OnlyResponder {
65766    type ControlHandle = StreamSocketControlHandle;
65767
65768    fn control_handle(&self) -> &StreamSocketControlHandle {
65769        &self.control_handle
65770    }
65771
65772    fn drop_without_shutdown(mut self) {
65773        // Safety: drops once, never accessed again due to mem::forget
65774        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65775        // Prevent Drop from running (which would shut down the channel)
65776        std::mem::forget(self);
65777    }
65778}
65779
65780impl StreamSocketGetIpv6OnlyResponder {
65781    /// Sends a response to the FIDL transaction.
65782    ///
65783    /// Sets the channel to shutdown if an error occurs.
65784    pub fn send(
65785        self,
65786        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65787    ) -> Result<(), fidl::Error> {
65788        let _result = self.send_raw(result);
65789        if _result.is_err() {
65790            self.control_handle.shutdown();
65791        }
65792        self.drop_without_shutdown();
65793        _result
65794    }
65795
65796    /// Similar to "send" but does not shutdown the channel if an error occurs.
65797    pub fn send_no_shutdown_on_err(
65798        self,
65799        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65800    ) -> Result<(), fidl::Error> {
65801        let _result = self.send_raw(result);
65802        self.drop_without_shutdown();
65803        _result
65804    }
65805
65806    fn send_raw(
65807        &self,
65808        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65809    ) -> Result<(), fidl::Error> {
65810        self.control_handle.inner.send::<fidl::encoding::ResultType<
65811            BaseNetworkSocketGetIpv6OnlyResponse,
65812            fidl_fuchsia_posix::Errno,
65813        >>(
65814            result.map(|value| (value,)),
65815            self.tx_id,
65816            0x4aa3340a1a26b89c,
65817            fidl::encoding::DynamicFlags::empty(),
65818        )
65819    }
65820}
65821
65822#[must_use = "FIDL methods require a response to be sent"]
65823#[derive(Debug)]
65824pub struct StreamSocketSetIpv6ReceiveTrafficClassResponder {
65825    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65826    tx_id: u32,
65827}
65828
65829/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65830/// if the responder is dropped without sending a response, so that the client
65831/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65832impl std::ops::Drop for StreamSocketSetIpv6ReceiveTrafficClassResponder {
65833    fn drop(&mut self) {
65834        self.control_handle.shutdown();
65835        // Safety: drops once, never accessed again
65836        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65837    }
65838}
65839
65840impl fidl::endpoints::Responder for StreamSocketSetIpv6ReceiveTrafficClassResponder {
65841    type ControlHandle = StreamSocketControlHandle;
65842
65843    fn control_handle(&self) -> &StreamSocketControlHandle {
65844        &self.control_handle
65845    }
65846
65847    fn drop_without_shutdown(mut self) {
65848        // Safety: drops once, never accessed again due to mem::forget
65849        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65850        // Prevent Drop from running (which would shut down the channel)
65851        std::mem::forget(self);
65852    }
65853}
65854
65855impl StreamSocketSetIpv6ReceiveTrafficClassResponder {
65856    /// Sends a response to the FIDL transaction.
65857    ///
65858    /// Sets the channel to shutdown if an error occurs.
65859    pub fn send(
65860        self,
65861        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65862    ) -> Result<(), fidl::Error> {
65863        let _result = self.send_raw(result);
65864        if _result.is_err() {
65865            self.control_handle.shutdown();
65866        }
65867        self.drop_without_shutdown();
65868        _result
65869    }
65870
65871    /// Similar to "send" but does not shutdown the channel if an error occurs.
65872    pub fn send_no_shutdown_on_err(
65873        self,
65874        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65875    ) -> Result<(), fidl::Error> {
65876        let _result = self.send_raw(result);
65877        self.drop_without_shutdown();
65878        _result
65879    }
65880
65881    fn send_raw(
65882        &self,
65883        mut result: Result<(), fidl_fuchsia_posix::Errno>,
65884    ) -> Result<(), fidl::Error> {
65885        self.control_handle.inner.send::<fidl::encoding::ResultType<
65886            fidl::encoding::EmptyStruct,
65887            fidl_fuchsia_posix::Errno,
65888        >>(
65889            result,
65890            self.tx_id,
65891            0x58f07c8788d099a0,
65892            fidl::encoding::DynamicFlags::empty(),
65893        )
65894    }
65895}
65896
65897#[must_use = "FIDL methods require a response to be sent"]
65898#[derive(Debug)]
65899pub struct StreamSocketGetIpv6ReceiveTrafficClassResponder {
65900    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65901    tx_id: u32,
65902}
65903
65904/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65905/// if the responder is dropped without sending a response, so that the client
65906/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65907impl std::ops::Drop for StreamSocketGetIpv6ReceiveTrafficClassResponder {
65908    fn drop(&mut self) {
65909        self.control_handle.shutdown();
65910        // Safety: drops once, never accessed again
65911        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65912    }
65913}
65914
65915impl fidl::endpoints::Responder for StreamSocketGetIpv6ReceiveTrafficClassResponder {
65916    type ControlHandle = StreamSocketControlHandle;
65917
65918    fn control_handle(&self) -> &StreamSocketControlHandle {
65919        &self.control_handle
65920    }
65921
65922    fn drop_without_shutdown(mut self) {
65923        // Safety: drops once, never accessed again due to mem::forget
65924        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65925        // Prevent Drop from running (which would shut down the channel)
65926        std::mem::forget(self);
65927    }
65928}
65929
65930impl StreamSocketGetIpv6ReceiveTrafficClassResponder {
65931    /// Sends a response to the FIDL transaction.
65932    ///
65933    /// Sets the channel to shutdown if an error occurs.
65934    pub fn send(
65935        self,
65936        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65937    ) -> Result<(), fidl::Error> {
65938        let _result = self.send_raw(result);
65939        if _result.is_err() {
65940            self.control_handle.shutdown();
65941        }
65942        self.drop_without_shutdown();
65943        _result
65944    }
65945
65946    /// Similar to "send" but does not shutdown the channel if an error occurs.
65947    pub fn send_no_shutdown_on_err(
65948        self,
65949        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65950    ) -> Result<(), fidl::Error> {
65951        let _result = self.send_raw(result);
65952        self.drop_without_shutdown();
65953        _result
65954    }
65955
65956    fn send_raw(
65957        &self,
65958        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
65959    ) -> Result<(), fidl::Error> {
65960        self.control_handle.inner.send::<fidl::encoding::ResultType<
65961            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
65962            fidl_fuchsia_posix::Errno,
65963        >>(
65964            result.map(|value| (value,)),
65965            self.tx_id,
65966            0x2e334df1da553ffa,
65967            fidl::encoding::DynamicFlags::empty(),
65968        )
65969    }
65970}
65971
65972#[must_use = "FIDL methods require a response to be sent"]
65973#[derive(Debug)]
65974pub struct StreamSocketSetIpv6TrafficClassResponder {
65975    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
65976    tx_id: u32,
65977}
65978
65979/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
65980/// if the responder is dropped without sending a response, so that the client
65981/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
65982impl std::ops::Drop for StreamSocketSetIpv6TrafficClassResponder {
65983    fn drop(&mut self) {
65984        self.control_handle.shutdown();
65985        // Safety: drops once, never accessed again
65986        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
65987    }
65988}
65989
65990impl fidl::endpoints::Responder for StreamSocketSetIpv6TrafficClassResponder {
65991    type ControlHandle = StreamSocketControlHandle;
65992
65993    fn control_handle(&self) -> &StreamSocketControlHandle {
65994        &self.control_handle
65995    }
65996
65997    fn drop_without_shutdown(mut self) {
65998        // Safety: drops once, never accessed again due to mem::forget
65999        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66000        // Prevent Drop from running (which would shut down the channel)
66001        std::mem::forget(self);
66002    }
66003}
66004
66005impl StreamSocketSetIpv6TrafficClassResponder {
66006    /// Sends a response to the FIDL transaction.
66007    ///
66008    /// Sets the channel to shutdown if an error occurs.
66009    pub fn send(
66010        self,
66011        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66012    ) -> Result<(), fidl::Error> {
66013        let _result = self.send_raw(result);
66014        if _result.is_err() {
66015            self.control_handle.shutdown();
66016        }
66017        self.drop_without_shutdown();
66018        _result
66019    }
66020
66021    /// Similar to "send" but does not shutdown the channel if an error occurs.
66022    pub fn send_no_shutdown_on_err(
66023        self,
66024        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66025    ) -> Result<(), fidl::Error> {
66026        let _result = self.send_raw(result);
66027        self.drop_without_shutdown();
66028        _result
66029    }
66030
66031    fn send_raw(
66032        &self,
66033        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66034    ) -> Result<(), fidl::Error> {
66035        self.control_handle.inner.send::<fidl::encoding::ResultType<
66036            fidl::encoding::EmptyStruct,
66037            fidl_fuchsia_posix::Errno,
66038        >>(
66039            result,
66040            self.tx_id,
66041            0x6af077800c5a0b4f,
66042            fidl::encoding::DynamicFlags::empty(),
66043        )
66044    }
66045}
66046
66047#[must_use = "FIDL methods require a response to be sent"]
66048#[derive(Debug)]
66049pub struct StreamSocketGetIpv6TrafficClassResponder {
66050    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66051    tx_id: u32,
66052}
66053
66054/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66055/// if the responder is dropped without sending a response, so that the client
66056/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66057impl std::ops::Drop for StreamSocketGetIpv6TrafficClassResponder {
66058    fn drop(&mut self) {
66059        self.control_handle.shutdown();
66060        // Safety: drops once, never accessed again
66061        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66062    }
66063}
66064
66065impl fidl::endpoints::Responder for StreamSocketGetIpv6TrafficClassResponder {
66066    type ControlHandle = StreamSocketControlHandle;
66067
66068    fn control_handle(&self) -> &StreamSocketControlHandle {
66069        &self.control_handle
66070    }
66071
66072    fn drop_without_shutdown(mut self) {
66073        // Safety: drops once, never accessed again due to mem::forget
66074        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66075        // Prevent Drop from running (which would shut down the channel)
66076        std::mem::forget(self);
66077    }
66078}
66079
66080impl StreamSocketGetIpv6TrafficClassResponder {
66081    /// Sends a response to the FIDL transaction.
66082    ///
66083    /// Sets the channel to shutdown if an error occurs.
66084    pub fn send(
66085        self,
66086        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66087    ) -> Result<(), fidl::Error> {
66088        let _result = self.send_raw(result);
66089        if _result.is_err() {
66090            self.control_handle.shutdown();
66091        }
66092        self.drop_without_shutdown();
66093        _result
66094    }
66095
66096    /// Similar to "send" but does not shutdown the channel if an error occurs.
66097    pub fn send_no_shutdown_on_err(
66098        self,
66099        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66100    ) -> Result<(), fidl::Error> {
66101        let _result = self.send_raw(result);
66102        self.drop_without_shutdown();
66103        _result
66104    }
66105
66106    fn send_raw(
66107        &self,
66108        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
66109    ) -> Result<(), fidl::Error> {
66110        self.control_handle.inner.send::<fidl::encoding::ResultType<
66111            BaseNetworkSocketGetIpv6TrafficClassResponse,
66112            fidl_fuchsia_posix::Errno,
66113        >>(
66114            result.map(|value| (value,)),
66115            self.tx_id,
66116            0x6baf6eed8fc2f04,
66117            fidl::encoding::DynamicFlags::empty(),
66118        )
66119    }
66120}
66121
66122#[must_use = "FIDL methods require a response to be sent"]
66123#[derive(Debug)]
66124pub struct StreamSocketSetIpv6ReceivePacketInfoResponder {
66125    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66126    tx_id: u32,
66127}
66128
66129/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66130/// if the responder is dropped without sending a response, so that the client
66131/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66132impl std::ops::Drop for StreamSocketSetIpv6ReceivePacketInfoResponder {
66133    fn drop(&mut self) {
66134        self.control_handle.shutdown();
66135        // Safety: drops once, never accessed again
66136        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66137    }
66138}
66139
66140impl fidl::endpoints::Responder for StreamSocketSetIpv6ReceivePacketInfoResponder {
66141    type ControlHandle = StreamSocketControlHandle;
66142
66143    fn control_handle(&self) -> &StreamSocketControlHandle {
66144        &self.control_handle
66145    }
66146
66147    fn drop_without_shutdown(mut self) {
66148        // Safety: drops once, never accessed again due to mem::forget
66149        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66150        // Prevent Drop from running (which would shut down the channel)
66151        std::mem::forget(self);
66152    }
66153}
66154
66155impl StreamSocketSetIpv6ReceivePacketInfoResponder {
66156    /// Sends a response to the FIDL transaction.
66157    ///
66158    /// Sets the channel to shutdown if an error occurs.
66159    pub fn send(
66160        self,
66161        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66162    ) -> Result<(), fidl::Error> {
66163        let _result = self.send_raw(result);
66164        if _result.is_err() {
66165            self.control_handle.shutdown();
66166        }
66167        self.drop_without_shutdown();
66168        _result
66169    }
66170
66171    /// Similar to "send" but does not shutdown the channel if an error occurs.
66172    pub fn send_no_shutdown_on_err(
66173        self,
66174        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66175    ) -> Result<(), fidl::Error> {
66176        let _result = self.send_raw(result);
66177        self.drop_without_shutdown();
66178        _result
66179    }
66180
66181    fn send_raw(
66182        &self,
66183        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66184    ) -> Result<(), fidl::Error> {
66185        self.control_handle.inner.send::<fidl::encoding::ResultType<
66186            fidl::encoding::EmptyStruct,
66187            fidl_fuchsia_posix::Errno,
66188        >>(
66189            result,
66190            self.tx_id,
66191            0x19259775b1a92768,
66192            fidl::encoding::DynamicFlags::empty(),
66193        )
66194    }
66195}
66196
66197#[must_use = "FIDL methods require a response to be sent"]
66198#[derive(Debug)]
66199pub struct StreamSocketGetIpv6ReceivePacketInfoResponder {
66200    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66201    tx_id: u32,
66202}
66203
66204/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66205/// if the responder is dropped without sending a response, so that the client
66206/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66207impl std::ops::Drop for StreamSocketGetIpv6ReceivePacketInfoResponder {
66208    fn drop(&mut self) {
66209        self.control_handle.shutdown();
66210        // Safety: drops once, never accessed again
66211        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66212    }
66213}
66214
66215impl fidl::endpoints::Responder for StreamSocketGetIpv6ReceivePacketInfoResponder {
66216    type ControlHandle = StreamSocketControlHandle;
66217
66218    fn control_handle(&self) -> &StreamSocketControlHandle {
66219        &self.control_handle
66220    }
66221
66222    fn drop_without_shutdown(mut self) {
66223        // Safety: drops once, never accessed again due to mem::forget
66224        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66225        // Prevent Drop from running (which would shut down the channel)
66226        std::mem::forget(self);
66227    }
66228}
66229
66230impl StreamSocketGetIpv6ReceivePacketInfoResponder {
66231    /// Sends a response to the FIDL transaction.
66232    ///
66233    /// Sets the channel to shutdown if an error occurs.
66234    pub fn send(
66235        self,
66236        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66237    ) -> Result<(), fidl::Error> {
66238        let _result = self.send_raw(result);
66239        if _result.is_err() {
66240            self.control_handle.shutdown();
66241        }
66242        self.drop_without_shutdown();
66243        _result
66244    }
66245
66246    /// Similar to "send" but does not shutdown the channel if an error occurs.
66247    pub fn send_no_shutdown_on_err(
66248        self,
66249        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66250    ) -> Result<(), fidl::Error> {
66251        let _result = self.send_raw(result);
66252        self.drop_without_shutdown();
66253        _result
66254    }
66255
66256    fn send_raw(
66257        &self,
66258        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66259    ) -> Result<(), fidl::Error> {
66260        self.control_handle.inner.send::<fidl::encoding::ResultType<
66261            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
66262            fidl_fuchsia_posix::Errno,
66263        >>(
66264            result.map(|value| (value,)),
66265            self.tx_id,
66266            0x7acd4a2775baec75,
66267            fidl::encoding::DynamicFlags::empty(),
66268        )
66269    }
66270}
66271
66272#[must_use = "FIDL methods require a response to be sent"]
66273#[derive(Debug)]
66274pub struct StreamSocketGetOriginalDestinationResponder {
66275    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66276    tx_id: u32,
66277}
66278
66279/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66280/// if the responder is dropped without sending a response, so that the client
66281/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66282impl std::ops::Drop for StreamSocketGetOriginalDestinationResponder {
66283    fn drop(&mut self) {
66284        self.control_handle.shutdown();
66285        // Safety: drops once, never accessed again
66286        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66287    }
66288}
66289
66290impl fidl::endpoints::Responder for StreamSocketGetOriginalDestinationResponder {
66291    type ControlHandle = StreamSocketControlHandle;
66292
66293    fn control_handle(&self) -> &StreamSocketControlHandle {
66294        &self.control_handle
66295    }
66296
66297    fn drop_without_shutdown(mut self) {
66298        // Safety: drops once, never accessed again due to mem::forget
66299        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66300        // Prevent Drop from running (which would shut down the channel)
66301        std::mem::forget(self);
66302    }
66303}
66304
66305impl StreamSocketGetOriginalDestinationResponder {
66306    /// Sends a response to the FIDL transaction.
66307    ///
66308    /// Sets the channel to shutdown if an error occurs.
66309    pub fn send(
66310        self,
66311        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
66312    ) -> Result<(), fidl::Error> {
66313        let _result = self.send_raw(result);
66314        if _result.is_err() {
66315            self.control_handle.shutdown();
66316        }
66317        self.drop_without_shutdown();
66318        _result
66319    }
66320
66321    /// Similar to "send" but does not shutdown the channel if an error occurs.
66322    pub fn send_no_shutdown_on_err(
66323        self,
66324        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
66325    ) -> Result<(), fidl::Error> {
66326        let _result = self.send_raw(result);
66327        self.drop_without_shutdown();
66328        _result
66329    }
66330
66331    fn send_raw(
66332        &self,
66333        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
66334    ) -> Result<(), fidl::Error> {
66335        self.control_handle.inner.send::<fidl::encoding::ResultType<
66336            BaseNetworkSocketGetOriginalDestinationResponse,
66337            fidl_fuchsia_posix::Errno,
66338        >>(
66339            result.map(|value| (value,)),
66340            self.tx_id,
66341            0x38bf28f0dafdbac0,
66342            fidl::encoding::DynamicFlags::empty(),
66343        )
66344    }
66345}
66346
66347#[must_use = "FIDL methods require a response to be sent"]
66348#[derive(Debug)]
66349pub struct StreamSocketDescribeResponder {
66350    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66351    tx_id: u32,
66352}
66353
66354/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66355/// if the responder is dropped without sending a response, so that the client
66356/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66357impl std::ops::Drop for StreamSocketDescribeResponder {
66358    fn drop(&mut self) {
66359        self.control_handle.shutdown();
66360        // Safety: drops once, never accessed again
66361        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66362    }
66363}
66364
66365impl fidl::endpoints::Responder for StreamSocketDescribeResponder {
66366    type ControlHandle = StreamSocketControlHandle;
66367
66368    fn control_handle(&self) -> &StreamSocketControlHandle {
66369        &self.control_handle
66370    }
66371
66372    fn drop_without_shutdown(mut self) {
66373        // Safety: drops once, never accessed again due to mem::forget
66374        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66375        // Prevent Drop from running (which would shut down the channel)
66376        std::mem::forget(self);
66377    }
66378}
66379
66380impl StreamSocketDescribeResponder {
66381    /// Sends a response to the FIDL transaction.
66382    ///
66383    /// Sets the channel to shutdown if an error occurs.
66384    pub fn send(self, mut payload: StreamSocketDescribeResponse) -> Result<(), fidl::Error> {
66385        let _result = self.send_raw(payload);
66386        if _result.is_err() {
66387            self.control_handle.shutdown();
66388        }
66389        self.drop_without_shutdown();
66390        _result
66391    }
66392
66393    /// Similar to "send" but does not shutdown the channel if an error occurs.
66394    pub fn send_no_shutdown_on_err(
66395        self,
66396        mut payload: StreamSocketDescribeResponse,
66397    ) -> Result<(), fidl::Error> {
66398        let _result = self.send_raw(payload);
66399        self.drop_without_shutdown();
66400        _result
66401    }
66402
66403    fn send_raw(&self, mut payload: StreamSocketDescribeResponse) -> Result<(), fidl::Error> {
66404        self.control_handle.inner.send::<StreamSocketDescribeResponse>(
66405            &mut payload,
66406            self.tx_id,
66407            0x29e22969a7dadc32,
66408            fidl::encoding::DynamicFlags::empty(),
66409        )
66410    }
66411}
66412
66413#[must_use = "FIDL methods require a response to be sent"]
66414#[derive(Debug)]
66415pub struct StreamSocketListenResponder {
66416    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66417    tx_id: u32,
66418}
66419
66420/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66421/// if the responder is dropped without sending a response, so that the client
66422/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66423impl std::ops::Drop for StreamSocketListenResponder {
66424    fn drop(&mut self) {
66425        self.control_handle.shutdown();
66426        // Safety: drops once, never accessed again
66427        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66428    }
66429}
66430
66431impl fidl::endpoints::Responder for StreamSocketListenResponder {
66432    type ControlHandle = StreamSocketControlHandle;
66433
66434    fn control_handle(&self) -> &StreamSocketControlHandle {
66435        &self.control_handle
66436    }
66437
66438    fn drop_without_shutdown(mut self) {
66439        // Safety: drops once, never accessed again due to mem::forget
66440        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66441        // Prevent Drop from running (which would shut down the channel)
66442        std::mem::forget(self);
66443    }
66444}
66445
66446impl StreamSocketListenResponder {
66447    /// Sends a response to the FIDL transaction.
66448    ///
66449    /// Sets the channel to shutdown if an error occurs.
66450    pub fn send(
66451        self,
66452        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66453    ) -> Result<(), fidl::Error> {
66454        let _result = self.send_raw(result);
66455        if _result.is_err() {
66456            self.control_handle.shutdown();
66457        }
66458        self.drop_without_shutdown();
66459        _result
66460    }
66461
66462    /// Similar to "send" but does not shutdown the channel if an error occurs.
66463    pub fn send_no_shutdown_on_err(
66464        self,
66465        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66466    ) -> Result<(), fidl::Error> {
66467        let _result = self.send_raw(result);
66468        self.drop_without_shutdown();
66469        _result
66470    }
66471
66472    fn send_raw(
66473        &self,
66474        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66475    ) -> Result<(), fidl::Error> {
66476        self.control_handle.inner.send::<fidl::encoding::ResultType<
66477            fidl::encoding::EmptyStruct,
66478            fidl_fuchsia_posix::Errno,
66479        >>(
66480            result,
66481            self.tx_id,
66482            0x3d0a65ced3d10108,
66483            fidl::encoding::DynamicFlags::empty(),
66484        )
66485    }
66486}
66487
66488#[must_use = "FIDL methods require a response to be sent"]
66489#[derive(Debug)]
66490pub struct StreamSocketAcceptResponder {
66491    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66492    tx_id: u32,
66493}
66494
66495/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66496/// if the responder is dropped without sending a response, so that the client
66497/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66498impl std::ops::Drop for StreamSocketAcceptResponder {
66499    fn drop(&mut self) {
66500        self.control_handle.shutdown();
66501        // Safety: drops once, never accessed again
66502        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66503    }
66504}
66505
66506impl fidl::endpoints::Responder for StreamSocketAcceptResponder {
66507    type ControlHandle = StreamSocketControlHandle;
66508
66509    fn control_handle(&self) -> &StreamSocketControlHandle {
66510        &self.control_handle
66511    }
66512
66513    fn drop_without_shutdown(mut self) {
66514        // Safety: drops once, never accessed again due to mem::forget
66515        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66516        // Prevent Drop from running (which would shut down the channel)
66517        std::mem::forget(self);
66518    }
66519}
66520
66521impl StreamSocketAcceptResponder {
66522    /// Sends a response to the FIDL transaction.
66523    ///
66524    /// Sets the channel to shutdown if an error occurs.
66525    pub fn send(
66526        self,
66527        mut result: Result<
66528            (
66529                Option<&fidl_fuchsia_net::SocketAddress>,
66530                fidl::endpoints::ClientEnd<StreamSocketMarker>,
66531            ),
66532            fidl_fuchsia_posix::Errno,
66533        >,
66534    ) -> Result<(), fidl::Error> {
66535        let _result = self.send_raw(result);
66536        if _result.is_err() {
66537            self.control_handle.shutdown();
66538        }
66539        self.drop_without_shutdown();
66540        _result
66541    }
66542
66543    /// Similar to "send" but does not shutdown the channel if an error occurs.
66544    pub fn send_no_shutdown_on_err(
66545        self,
66546        mut result: Result<
66547            (
66548                Option<&fidl_fuchsia_net::SocketAddress>,
66549                fidl::endpoints::ClientEnd<StreamSocketMarker>,
66550            ),
66551            fidl_fuchsia_posix::Errno,
66552        >,
66553    ) -> Result<(), fidl::Error> {
66554        let _result = self.send_raw(result);
66555        self.drop_without_shutdown();
66556        _result
66557    }
66558
66559    fn send_raw(
66560        &self,
66561        mut result: Result<
66562            (
66563                Option<&fidl_fuchsia_net::SocketAddress>,
66564                fidl::endpoints::ClientEnd<StreamSocketMarker>,
66565            ),
66566            fidl_fuchsia_posix::Errno,
66567        >,
66568    ) -> Result<(), fidl::Error> {
66569        self.control_handle.inner.send::<fidl::encoding::ResultType<
66570            StreamSocketAcceptResponse,
66571            fidl_fuchsia_posix::Errno,
66572        >>(
66573            result,
66574            self.tx_id,
66575            0x5ab7ad620424c163,
66576            fidl::encoding::DynamicFlags::empty(),
66577        )
66578    }
66579}
66580
66581#[must_use = "FIDL methods require a response to be sent"]
66582#[derive(Debug)]
66583pub struct StreamSocketGetInfoResponder {
66584    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66585    tx_id: u32,
66586}
66587
66588/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66589/// if the responder is dropped without sending a response, so that the client
66590/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66591impl std::ops::Drop for StreamSocketGetInfoResponder {
66592    fn drop(&mut self) {
66593        self.control_handle.shutdown();
66594        // Safety: drops once, never accessed again
66595        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66596    }
66597}
66598
66599impl fidl::endpoints::Responder for StreamSocketGetInfoResponder {
66600    type ControlHandle = StreamSocketControlHandle;
66601
66602    fn control_handle(&self) -> &StreamSocketControlHandle {
66603        &self.control_handle
66604    }
66605
66606    fn drop_without_shutdown(mut self) {
66607        // Safety: drops once, never accessed again due to mem::forget
66608        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66609        // Prevent Drop from running (which would shut down the channel)
66610        std::mem::forget(self);
66611    }
66612}
66613
66614impl StreamSocketGetInfoResponder {
66615    /// Sends a response to the FIDL transaction.
66616    ///
66617    /// Sets the channel to shutdown if an error occurs.
66618    pub fn send(
66619        self,
66620        mut result: Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>,
66621    ) -> Result<(), fidl::Error> {
66622        let _result = self.send_raw(result);
66623        if _result.is_err() {
66624            self.control_handle.shutdown();
66625        }
66626        self.drop_without_shutdown();
66627        _result
66628    }
66629
66630    /// Similar to "send" but does not shutdown the channel if an error occurs.
66631    pub fn send_no_shutdown_on_err(
66632        self,
66633        mut result: Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>,
66634    ) -> Result<(), fidl::Error> {
66635        let _result = self.send_raw(result);
66636        self.drop_without_shutdown();
66637        _result
66638    }
66639
66640    fn send_raw(
66641        &self,
66642        mut result: Result<(Domain, StreamSocketProtocol), fidl_fuchsia_posix::Errno>,
66643    ) -> Result<(), fidl::Error> {
66644        self.control_handle.inner.send::<fidl::encoding::ResultType<
66645            StreamSocketGetInfoResponse,
66646            fidl_fuchsia_posix::Errno,
66647        >>(
66648            result,
66649            self.tx_id,
66650            0x87cfa55d19f878f,
66651            fidl::encoding::DynamicFlags::empty(),
66652        )
66653    }
66654}
66655
66656#[must_use = "FIDL methods require a response to be sent"]
66657#[derive(Debug)]
66658pub struct StreamSocketSetTcpNoDelayResponder {
66659    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66660    tx_id: u32,
66661}
66662
66663/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66664/// if the responder is dropped without sending a response, so that the client
66665/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66666impl std::ops::Drop for StreamSocketSetTcpNoDelayResponder {
66667    fn drop(&mut self) {
66668        self.control_handle.shutdown();
66669        // Safety: drops once, never accessed again
66670        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66671    }
66672}
66673
66674impl fidl::endpoints::Responder for StreamSocketSetTcpNoDelayResponder {
66675    type ControlHandle = StreamSocketControlHandle;
66676
66677    fn control_handle(&self) -> &StreamSocketControlHandle {
66678        &self.control_handle
66679    }
66680
66681    fn drop_without_shutdown(mut self) {
66682        // Safety: drops once, never accessed again due to mem::forget
66683        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66684        // Prevent Drop from running (which would shut down the channel)
66685        std::mem::forget(self);
66686    }
66687}
66688
66689impl StreamSocketSetTcpNoDelayResponder {
66690    /// Sends a response to the FIDL transaction.
66691    ///
66692    /// Sets the channel to shutdown if an error occurs.
66693    pub fn send(
66694        self,
66695        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66696    ) -> Result<(), fidl::Error> {
66697        let _result = self.send_raw(result);
66698        if _result.is_err() {
66699            self.control_handle.shutdown();
66700        }
66701        self.drop_without_shutdown();
66702        _result
66703    }
66704
66705    /// Similar to "send" but does not shutdown the channel if an error occurs.
66706    pub fn send_no_shutdown_on_err(
66707        self,
66708        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66709    ) -> Result<(), fidl::Error> {
66710        let _result = self.send_raw(result);
66711        self.drop_without_shutdown();
66712        _result
66713    }
66714
66715    fn send_raw(
66716        &self,
66717        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66718    ) -> Result<(), fidl::Error> {
66719        self.control_handle.inner.send::<fidl::encoding::ResultType<
66720            fidl::encoding::EmptyStruct,
66721            fidl_fuchsia_posix::Errno,
66722        >>(
66723            result,
66724            self.tx_id,
66725            0x5a59b778f7333ada,
66726            fidl::encoding::DynamicFlags::empty(),
66727        )
66728    }
66729}
66730
66731#[must_use = "FIDL methods require a response to be sent"]
66732#[derive(Debug)]
66733pub struct StreamSocketGetTcpNoDelayResponder {
66734    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66735    tx_id: u32,
66736}
66737
66738/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66739/// if the responder is dropped without sending a response, so that the client
66740/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66741impl std::ops::Drop for StreamSocketGetTcpNoDelayResponder {
66742    fn drop(&mut self) {
66743        self.control_handle.shutdown();
66744        // Safety: drops once, never accessed again
66745        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66746    }
66747}
66748
66749impl fidl::endpoints::Responder for StreamSocketGetTcpNoDelayResponder {
66750    type ControlHandle = StreamSocketControlHandle;
66751
66752    fn control_handle(&self) -> &StreamSocketControlHandle {
66753        &self.control_handle
66754    }
66755
66756    fn drop_without_shutdown(mut self) {
66757        // Safety: drops once, never accessed again due to mem::forget
66758        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66759        // Prevent Drop from running (which would shut down the channel)
66760        std::mem::forget(self);
66761    }
66762}
66763
66764impl StreamSocketGetTcpNoDelayResponder {
66765    /// Sends a response to the FIDL transaction.
66766    ///
66767    /// Sets the channel to shutdown if an error occurs.
66768    pub fn send(
66769        self,
66770        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66771    ) -> Result<(), fidl::Error> {
66772        let _result = self.send_raw(result);
66773        if _result.is_err() {
66774            self.control_handle.shutdown();
66775        }
66776        self.drop_without_shutdown();
66777        _result
66778    }
66779
66780    /// Similar to "send" but does not shutdown the channel if an error occurs.
66781    pub fn send_no_shutdown_on_err(
66782        self,
66783        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66784    ) -> Result<(), fidl::Error> {
66785        let _result = self.send_raw(result);
66786        self.drop_without_shutdown();
66787        _result
66788    }
66789
66790    fn send_raw(
66791        &self,
66792        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
66793    ) -> Result<(), fidl::Error> {
66794        self.control_handle.inner.send::<fidl::encoding::ResultType<
66795            StreamSocketGetTcpNoDelayResponse,
66796            fidl_fuchsia_posix::Errno,
66797        >>(
66798            result.map(|value| (value,)),
66799            self.tx_id,
66800            0xac219a3218b0799,
66801            fidl::encoding::DynamicFlags::empty(),
66802        )
66803    }
66804}
66805
66806#[must_use = "FIDL methods require a response to be sent"]
66807#[derive(Debug)]
66808pub struct StreamSocketSetTcpMaxSegmentResponder {
66809    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66810    tx_id: u32,
66811}
66812
66813/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66814/// if the responder is dropped without sending a response, so that the client
66815/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66816impl std::ops::Drop for StreamSocketSetTcpMaxSegmentResponder {
66817    fn drop(&mut self) {
66818        self.control_handle.shutdown();
66819        // Safety: drops once, never accessed again
66820        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66821    }
66822}
66823
66824impl fidl::endpoints::Responder for StreamSocketSetTcpMaxSegmentResponder {
66825    type ControlHandle = StreamSocketControlHandle;
66826
66827    fn control_handle(&self) -> &StreamSocketControlHandle {
66828        &self.control_handle
66829    }
66830
66831    fn drop_without_shutdown(mut self) {
66832        // Safety: drops once, never accessed again due to mem::forget
66833        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66834        // Prevent Drop from running (which would shut down the channel)
66835        std::mem::forget(self);
66836    }
66837}
66838
66839impl StreamSocketSetTcpMaxSegmentResponder {
66840    /// Sends a response to the FIDL transaction.
66841    ///
66842    /// Sets the channel to shutdown if an error occurs.
66843    pub fn send(
66844        self,
66845        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66846    ) -> Result<(), fidl::Error> {
66847        let _result = self.send_raw(result);
66848        if _result.is_err() {
66849            self.control_handle.shutdown();
66850        }
66851        self.drop_without_shutdown();
66852        _result
66853    }
66854
66855    /// Similar to "send" but does not shutdown the channel if an error occurs.
66856    pub fn send_no_shutdown_on_err(
66857        self,
66858        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66859    ) -> Result<(), fidl::Error> {
66860        let _result = self.send_raw(result);
66861        self.drop_without_shutdown();
66862        _result
66863    }
66864
66865    fn send_raw(
66866        &self,
66867        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66868    ) -> Result<(), fidl::Error> {
66869        self.control_handle.inner.send::<fidl::encoding::ResultType<
66870            fidl::encoding::EmptyStruct,
66871            fidl_fuchsia_posix::Errno,
66872        >>(
66873            result,
66874            self.tx_id,
66875            0xb3d30c498266d18,
66876            fidl::encoding::DynamicFlags::empty(),
66877        )
66878    }
66879}
66880
66881#[must_use = "FIDL methods require a response to be sent"]
66882#[derive(Debug)]
66883pub struct StreamSocketGetTcpMaxSegmentResponder {
66884    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66885    tx_id: u32,
66886}
66887
66888/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66889/// if the responder is dropped without sending a response, so that the client
66890/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66891impl std::ops::Drop for StreamSocketGetTcpMaxSegmentResponder {
66892    fn drop(&mut self) {
66893        self.control_handle.shutdown();
66894        // Safety: drops once, never accessed again
66895        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66896    }
66897}
66898
66899impl fidl::endpoints::Responder for StreamSocketGetTcpMaxSegmentResponder {
66900    type ControlHandle = StreamSocketControlHandle;
66901
66902    fn control_handle(&self) -> &StreamSocketControlHandle {
66903        &self.control_handle
66904    }
66905
66906    fn drop_without_shutdown(mut self) {
66907        // Safety: drops once, never accessed again due to mem::forget
66908        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66909        // Prevent Drop from running (which would shut down the channel)
66910        std::mem::forget(self);
66911    }
66912}
66913
66914impl StreamSocketGetTcpMaxSegmentResponder {
66915    /// Sends a response to the FIDL transaction.
66916    ///
66917    /// Sets the channel to shutdown if an error occurs.
66918    pub fn send(
66919        self,
66920        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
66921    ) -> Result<(), fidl::Error> {
66922        let _result = self.send_raw(result);
66923        if _result.is_err() {
66924            self.control_handle.shutdown();
66925        }
66926        self.drop_without_shutdown();
66927        _result
66928    }
66929
66930    /// Similar to "send" but does not shutdown the channel if an error occurs.
66931    pub fn send_no_shutdown_on_err(
66932        self,
66933        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
66934    ) -> Result<(), fidl::Error> {
66935        let _result = self.send_raw(result);
66936        self.drop_without_shutdown();
66937        _result
66938    }
66939
66940    fn send_raw(
66941        &self,
66942        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
66943    ) -> Result<(), fidl::Error> {
66944        self.control_handle.inner.send::<fidl::encoding::ResultType<
66945            StreamSocketGetTcpMaxSegmentResponse,
66946            fidl_fuchsia_posix::Errno,
66947        >>(
66948            result.map(|value_bytes| (value_bytes,)),
66949            self.tx_id,
66950            0x637404d1b4b9982c,
66951            fidl::encoding::DynamicFlags::empty(),
66952        )
66953    }
66954}
66955
66956#[must_use = "FIDL methods require a response to be sent"]
66957#[derive(Debug)]
66958pub struct StreamSocketSetTcpCorkResponder {
66959    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
66960    tx_id: u32,
66961}
66962
66963/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
66964/// if the responder is dropped without sending a response, so that the client
66965/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
66966impl std::ops::Drop for StreamSocketSetTcpCorkResponder {
66967    fn drop(&mut self) {
66968        self.control_handle.shutdown();
66969        // Safety: drops once, never accessed again
66970        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66971    }
66972}
66973
66974impl fidl::endpoints::Responder for StreamSocketSetTcpCorkResponder {
66975    type ControlHandle = StreamSocketControlHandle;
66976
66977    fn control_handle(&self) -> &StreamSocketControlHandle {
66978        &self.control_handle
66979    }
66980
66981    fn drop_without_shutdown(mut self) {
66982        // Safety: drops once, never accessed again due to mem::forget
66983        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
66984        // Prevent Drop from running (which would shut down the channel)
66985        std::mem::forget(self);
66986    }
66987}
66988
66989impl StreamSocketSetTcpCorkResponder {
66990    /// Sends a response to the FIDL transaction.
66991    ///
66992    /// Sets the channel to shutdown if an error occurs.
66993    pub fn send(
66994        self,
66995        mut result: Result<(), fidl_fuchsia_posix::Errno>,
66996    ) -> Result<(), fidl::Error> {
66997        let _result = self.send_raw(result);
66998        if _result.is_err() {
66999            self.control_handle.shutdown();
67000        }
67001        self.drop_without_shutdown();
67002        _result
67003    }
67004
67005    /// Similar to "send" but does not shutdown the channel if an error occurs.
67006    pub fn send_no_shutdown_on_err(
67007        self,
67008        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67009    ) -> Result<(), fidl::Error> {
67010        let _result = self.send_raw(result);
67011        self.drop_without_shutdown();
67012        _result
67013    }
67014
67015    fn send_raw(
67016        &self,
67017        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67018    ) -> Result<(), fidl::Error> {
67019        self.control_handle.inner.send::<fidl::encoding::ResultType<
67020            fidl::encoding::EmptyStruct,
67021            fidl_fuchsia_posix::Errno,
67022        >>(
67023            result,
67024            self.tx_id,
67025            0x62e26891541143a0,
67026            fidl::encoding::DynamicFlags::empty(),
67027        )
67028    }
67029}
67030
67031#[must_use = "FIDL methods require a response to be sent"]
67032#[derive(Debug)]
67033pub struct StreamSocketGetTcpCorkResponder {
67034    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67035    tx_id: u32,
67036}
67037
67038/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67039/// if the responder is dropped without sending a response, so that the client
67040/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67041impl std::ops::Drop for StreamSocketGetTcpCorkResponder {
67042    fn drop(&mut self) {
67043        self.control_handle.shutdown();
67044        // Safety: drops once, never accessed again
67045        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67046    }
67047}
67048
67049impl fidl::endpoints::Responder for StreamSocketGetTcpCorkResponder {
67050    type ControlHandle = StreamSocketControlHandle;
67051
67052    fn control_handle(&self) -> &StreamSocketControlHandle {
67053        &self.control_handle
67054    }
67055
67056    fn drop_without_shutdown(mut self) {
67057        // Safety: drops once, never accessed again due to mem::forget
67058        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67059        // Prevent Drop from running (which would shut down the channel)
67060        std::mem::forget(self);
67061    }
67062}
67063
67064impl StreamSocketGetTcpCorkResponder {
67065    /// Sends a response to the FIDL transaction.
67066    ///
67067    /// Sets the channel to shutdown if an error occurs.
67068    pub fn send(
67069        self,
67070        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67071    ) -> Result<(), fidl::Error> {
67072        let _result = self.send_raw(result);
67073        if _result.is_err() {
67074            self.control_handle.shutdown();
67075        }
67076        self.drop_without_shutdown();
67077        _result
67078    }
67079
67080    /// Similar to "send" but does not shutdown the channel if an error occurs.
67081    pub fn send_no_shutdown_on_err(
67082        self,
67083        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67084    ) -> Result<(), fidl::Error> {
67085        let _result = self.send_raw(result);
67086        self.drop_without_shutdown();
67087        _result
67088    }
67089
67090    fn send_raw(
67091        &self,
67092        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
67093    ) -> Result<(), fidl::Error> {
67094        self.control_handle.inner.send::<fidl::encoding::ResultType<
67095            StreamSocketGetTcpCorkResponse,
67096            fidl_fuchsia_posix::Errno,
67097        >>(
67098            result.map(|value| (value,)),
67099            self.tx_id,
67100            0x435bb232e0e74f32,
67101            fidl::encoding::DynamicFlags::empty(),
67102        )
67103    }
67104}
67105
67106#[must_use = "FIDL methods require a response to be sent"]
67107#[derive(Debug)]
67108pub struct StreamSocketSetTcpKeepAliveIdleResponder {
67109    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67110    tx_id: u32,
67111}
67112
67113/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67114/// if the responder is dropped without sending a response, so that the client
67115/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67116impl std::ops::Drop for StreamSocketSetTcpKeepAliveIdleResponder {
67117    fn drop(&mut self) {
67118        self.control_handle.shutdown();
67119        // Safety: drops once, never accessed again
67120        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67121    }
67122}
67123
67124impl fidl::endpoints::Responder for StreamSocketSetTcpKeepAliveIdleResponder {
67125    type ControlHandle = StreamSocketControlHandle;
67126
67127    fn control_handle(&self) -> &StreamSocketControlHandle {
67128        &self.control_handle
67129    }
67130
67131    fn drop_without_shutdown(mut self) {
67132        // Safety: drops once, never accessed again due to mem::forget
67133        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67134        // Prevent Drop from running (which would shut down the channel)
67135        std::mem::forget(self);
67136    }
67137}
67138
67139impl StreamSocketSetTcpKeepAliveIdleResponder {
67140    /// Sends a response to the FIDL transaction.
67141    ///
67142    /// Sets the channel to shutdown if an error occurs.
67143    pub fn send(
67144        self,
67145        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67146    ) -> Result<(), fidl::Error> {
67147        let _result = self.send_raw(result);
67148        if _result.is_err() {
67149            self.control_handle.shutdown();
67150        }
67151        self.drop_without_shutdown();
67152        _result
67153    }
67154
67155    /// Similar to "send" but does not shutdown the channel if an error occurs.
67156    pub fn send_no_shutdown_on_err(
67157        self,
67158        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67159    ) -> Result<(), fidl::Error> {
67160        let _result = self.send_raw(result);
67161        self.drop_without_shutdown();
67162        _result
67163    }
67164
67165    fn send_raw(
67166        &self,
67167        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67168    ) -> Result<(), fidl::Error> {
67169        self.control_handle.inner.send::<fidl::encoding::ResultType<
67170            fidl::encoding::EmptyStruct,
67171            fidl_fuchsia_posix::Errno,
67172        >>(
67173            result,
67174            self.tx_id,
67175            0x196d053d8363c42,
67176            fidl::encoding::DynamicFlags::empty(),
67177        )
67178    }
67179}
67180
67181#[must_use = "FIDL methods require a response to be sent"]
67182#[derive(Debug)]
67183pub struct StreamSocketGetTcpKeepAliveIdleResponder {
67184    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67185    tx_id: u32,
67186}
67187
67188/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67189/// if the responder is dropped without sending a response, so that the client
67190/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67191impl std::ops::Drop for StreamSocketGetTcpKeepAliveIdleResponder {
67192    fn drop(&mut self) {
67193        self.control_handle.shutdown();
67194        // Safety: drops once, never accessed again
67195        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67196    }
67197}
67198
67199impl fidl::endpoints::Responder for StreamSocketGetTcpKeepAliveIdleResponder {
67200    type ControlHandle = StreamSocketControlHandle;
67201
67202    fn control_handle(&self) -> &StreamSocketControlHandle {
67203        &self.control_handle
67204    }
67205
67206    fn drop_without_shutdown(mut self) {
67207        // Safety: drops once, never accessed again due to mem::forget
67208        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67209        // Prevent Drop from running (which would shut down the channel)
67210        std::mem::forget(self);
67211    }
67212}
67213
67214impl StreamSocketGetTcpKeepAliveIdleResponder {
67215    /// Sends a response to the FIDL transaction.
67216    ///
67217    /// Sets the channel to shutdown if an error occurs.
67218    pub fn send(
67219        self,
67220        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67221    ) -> Result<(), fidl::Error> {
67222        let _result = self.send_raw(result);
67223        if _result.is_err() {
67224            self.control_handle.shutdown();
67225        }
67226        self.drop_without_shutdown();
67227        _result
67228    }
67229
67230    /// Similar to "send" but does not shutdown the channel if an error occurs.
67231    pub fn send_no_shutdown_on_err(
67232        self,
67233        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67234    ) -> Result<(), fidl::Error> {
67235        let _result = self.send_raw(result);
67236        self.drop_without_shutdown();
67237        _result
67238    }
67239
67240    fn send_raw(
67241        &self,
67242        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67243    ) -> Result<(), fidl::Error> {
67244        self.control_handle.inner.send::<fidl::encoding::ResultType<
67245            StreamSocketGetTcpKeepAliveIdleResponse,
67246            fidl_fuchsia_posix::Errno,
67247        >>(
67248            result.map(|value_secs| (value_secs,)),
67249            self.tx_id,
67250            0x35ec58564879dac,
67251            fidl::encoding::DynamicFlags::empty(),
67252        )
67253    }
67254}
67255
67256#[must_use = "FIDL methods require a response to be sent"]
67257#[derive(Debug)]
67258pub struct StreamSocketSetTcpKeepAliveIntervalResponder {
67259    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67260    tx_id: u32,
67261}
67262
67263/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67264/// if the responder is dropped without sending a response, so that the client
67265/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67266impl std::ops::Drop for StreamSocketSetTcpKeepAliveIntervalResponder {
67267    fn drop(&mut self) {
67268        self.control_handle.shutdown();
67269        // Safety: drops once, never accessed again
67270        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67271    }
67272}
67273
67274impl fidl::endpoints::Responder for StreamSocketSetTcpKeepAliveIntervalResponder {
67275    type ControlHandle = StreamSocketControlHandle;
67276
67277    fn control_handle(&self) -> &StreamSocketControlHandle {
67278        &self.control_handle
67279    }
67280
67281    fn drop_without_shutdown(mut self) {
67282        // Safety: drops once, never accessed again due to mem::forget
67283        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67284        // Prevent Drop from running (which would shut down the channel)
67285        std::mem::forget(self);
67286    }
67287}
67288
67289impl StreamSocketSetTcpKeepAliveIntervalResponder {
67290    /// Sends a response to the FIDL transaction.
67291    ///
67292    /// Sets the channel to shutdown if an error occurs.
67293    pub fn send(
67294        self,
67295        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67296    ) -> Result<(), fidl::Error> {
67297        let _result = self.send_raw(result);
67298        if _result.is_err() {
67299            self.control_handle.shutdown();
67300        }
67301        self.drop_without_shutdown();
67302        _result
67303    }
67304
67305    /// Similar to "send" but does not shutdown the channel if an error occurs.
67306    pub fn send_no_shutdown_on_err(
67307        self,
67308        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67309    ) -> Result<(), fidl::Error> {
67310        let _result = self.send_raw(result);
67311        self.drop_without_shutdown();
67312        _result
67313    }
67314
67315    fn send_raw(
67316        &self,
67317        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67318    ) -> Result<(), fidl::Error> {
67319        self.control_handle.inner.send::<fidl::encoding::ResultType<
67320            fidl::encoding::EmptyStruct,
67321            fidl_fuchsia_posix::Errno,
67322        >>(
67323            result,
67324            self.tx_id,
67325            0x485ffbc2da1243f2,
67326            fidl::encoding::DynamicFlags::empty(),
67327        )
67328    }
67329}
67330
67331#[must_use = "FIDL methods require a response to be sent"]
67332#[derive(Debug)]
67333pub struct StreamSocketGetTcpKeepAliveIntervalResponder {
67334    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67335    tx_id: u32,
67336}
67337
67338/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67339/// if the responder is dropped without sending a response, so that the client
67340/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67341impl std::ops::Drop for StreamSocketGetTcpKeepAliveIntervalResponder {
67342    fn drop(&mut self) {
67343        self.control_handle.shutdown();
67344        // Safety: drops once, never accessed again
67345        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67346    }
67347}
67348
67349impl fidl::endpoints::Responder for StreamSocketGetTcpKeepAliveIntervalResponder {
67350    type ControlHandle = StreamSocketControlHandle;
67351
67352    fn control_handle(&self) -> &StreamSocketControlHandle {
67353        &self.control_handle
67354    }
67355
67356    fn drop_without_shutdown(mut self) {
67357        // Safety: drops once, never accessed again due to mem::forget
67358        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67359        // Prevent Drop from running (which would shut down the channel)
67360        std::mem::forget(self);
67361    }
67362}
67363
67364impl StreamSocketGetTcpKeepAliveIntervalResponder {
67365    /// Sends a response to the FIDL transaction.
67366    ///
67367    /// Sets the channel to shutdown if an error occurs.
67368    pub fn send(
67369        self,
67370        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67371    ) -> Result<(), fidl::Error> {
67372        let _result = self.send_raw(result);
67373        if _result.is_err() {
67374            self.control_handle.shutdown();
67375        }
67376        self.drop_without_shutdown();
67377        _result
67378    }
67379
67380    /// Similar to "send" but does not shutdown the channel if an error occurs.
67381    pub fn send_no_shutdown_on_err(
67382        self,
67383        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67384    ) -> Result<(), fidl::Error> {
67385        let _result = self.send_raw(result);
67386        self.drop_without_shutdown();
67387        _result
67388    }
67389
67390    fn send_raw(
67391        &self,
67392        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67393    ) -> Result<(), fidl::Error> {
67394        self.control_handle.inner.send::<fidl::encoding::ResultType<
67395            StreamSocketGetTcpKeepAliveIntervalResponse,
67396            fidl_fuchsia_posix::Errno,
67397        >>(
67398            result.map(|value_secs| (value_secs,)),
67399            self.tx_id,
67400            0x264eaf46306b284,
67401            fidl::encoding::DynamicFlags::empty(),
67402        )
67403    }
67404}
67405
67406#[must_use = "FIDL methods require a response to be sent"]
67407#[derive(Debug)]
67408pub struct StreamSocketSetTcpKeepAliveCountResponder {
67409    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67410    tx_id: u32,
67411}
67412
67413/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67414/// if the responder is dropped without sending a response, so that the client
67415/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67416impl std::ops::Drop for StreamSocketSetTcpKeepAliveCountResponder {
67417    fn drop(&mut self) {
67418        self.control_handle.shutdown();
67419        // Safety: drops once, never accessed again
67420        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67421    }
67422}
67423
67424impl fidl::endpoints::Responder for StreamSocketSetTcpKeepAliveCountResponder {
67425    type ControlHandle = StreamSocketControlHandle;
67426
67427    fn control_handle(&self) -> &StreamSocketControlHandle {
67428        &self.control_handle
67429    }
67430
67431    fn drop_without_shutdown(mut self) {
67432        // Safety: drops once, never accessed again due to mem::forget
67433        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67434        // Prevent Drop from running (which would shut down the channel)
67435        std::mem::forget(self);
67436    }
67437}
67438
67439impl StreamSocketSetTcpKeepAliveCountResponder {
67440    /// Sends a response to the FIDL transaction.
67441    ///
67442    /// Sets the channel to shutdown if an error occurs.
67443    pub fn send(
67444        self,
67445        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67446    ) -> Result<(), fidl::Error> {
67447        let _result = self.send_raw(result);
67448        if _result.is_err() {
67449            self.control_handle.shutdown();
67450        }
67451        self.drop_without_shutdown();
67452        _result
67453    }
67454
67455    /// Similar to "send" but does not shutdown the channel if an error occurs.
67456    pub fn send_no_shutdown_on_err(
67457        self,
67458        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67459    ) -> Result<(), fidl::Error> {
67460        let _result = self.send_raw(result);
67461        self.drop_without_shutdown();
67462        _result
67463    }
67464
67465    fn send_raw(
67466        &self,
67467        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67468    ) -> Result<(), fidl::Error> {
67469        self.control_handle.inner.send::<fidl::encoding::ResultType<
67470            fidl::encoding::EmptyStruct,
67471            fidl_fuchsia_posix::Errno,
67472        >>(
67473            result,
67474            self.tx_id,
67475            0x2ab2e8c111708421,
67476            fidl::encoding::DynamicFlags::empty(),
67477        )
67478    }
67479}
67480
67481#[must_use = "FIDL methods require a response to be sent"]
67482#[derive(Debug)]
67483pub struct StreamSocketGetTcpKeepAliveCountResponder {
67484    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67485    tx_id: u32,
67486}
67487
67488/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67489/// if the responder is dropped without sending a response, so that the client
67490/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67491impl std::ops::Drop for StreamSocketGetTcpKeepAliveCountResponder {
67492    fn drop(&mut self) {
67493        self.control_handle.shutdown();
67494        // Safety: drops once, never accessed again
67495        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67496    }
67497}
67498
67499impl fidl::endpoints::Responder for StreamSocketGetTcpKeepAliveCountResponder {
67500    type ControlHandle = StreamSocketControlHandle;
67501
67502    fn control_handle(&self) -> &StreamSocketControlHandle {
67503        &self.control_handle
67504    }
67505
67506    fn drop_without_shutdown(mut self) {
67507        // Safety: drops once, never accessed again due to mem::forget
67508        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67509        // Prevent Drop from running (which would shut down the channel)
67510        std::mem::forget(self);
67511    }
67512}
67513
67514impl StreamSocketGetTcpKeepAliveCountResponder {
67515    /// Sends a response to the FIDL transaction.
67516    ///
67517    /// Sets the channel to shutdown if an error occurs.
67518    pub fn send(
67519        self,
67520        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67521    ) -> Result<(), fidl::Error> {
67522        let _result = self.send_raw(result);
67523        if _result.is_err() {
67524            self.control_handle.shutdown();
67525        }
67526        self.drop_without_shutdown();
67527        _result
67528    }
67529
67530    /// Similar to "send" but does not shutdown the channel if an error occurs.
67531    pub fn send_no_shutdown_on_err(
67532        self,
67533        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67534    ) -> Result<(), fidl::Error> {
67535        let _result = self.send_raw(result);
67536        self.drop_without_shutdown();
67537        _result
67538    }
67539
67540    fn send_raw(
67541        &self,
67542        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67543    ) -> Result<(), fidl::Error> {
67544        self.control_handle.inner.send::<fidl::encoding::ResultType<
67545            StreamSocketGetTcpKeepAliveCountResponse,
67546            fidl_fuchsia_posix::Errno,
67547        >>(
67548            result.map(|value| (value,)),
67549            self.tx_id,
67550            0x2f176ae271fe7a09,
67551            fidl::encoding::DynamicFlags::empty(),
67552        )
67553    }
67554}
67555
67556#[must_use = "FIDL methods require a response to be sent"]
67557#[derive(Debug)]
67558pub struct StreamSocketSetTcpSynCountResponder {
67559    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67560    tx_id: u32,
67561}
67562
67563/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67564/// if the responder is dropped without sending a response, so that the client
67565/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67566impl std::ops::Drop for StreamSocketSetTcpSynCountResponder {
67567    fn drop(&mut self) {
67568        self.control_handle.shutdown();
67569        // Safety: drops once, never accessed again
67570        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67571    }
67572}
67573
67574impl fidl::endpoints::Responder for StreamSocketSetTcpSynCountResponder {
67575    type ControlHandle = StreamSocketControlHandle;
67576
67577    fn control_handle(&self) -> &StreamSocketControlHandle {
67578        &self.control_handle
67579    }
67580
67581    fn drop_without_shutdown(mut self) {
67582        // Safety: drops once, never accessed again due to mem::forget
67583        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67584        // Prevent Drop from running (which would shut down the channel)
67585        std::mem::forget(self);
67586    }
67587}
67588
67589impl StreamSocketSetTcpSynCountResponder {
67590    /// Sends a response to the FIDL transaction.
67591    ///
67592    /// Sets the channel to shutdown if an error occurs.
67593    pub fn send(
67594        self,
67595        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67596    ) -> Result<(), fidl::Error> {
67597        let _result = self.send_raw(result);
67598        if _result.is_err() {
67599            self.control_handle.shutdown();
67600        }
67601        self.drop_without_shutdown();
67602        _result
67603    }
67604
67605    /// Similar to "send" but does not shutdown the channel if an error occurs.
67606    pub fn send_no_shutdown_on_err(
67607        self,
67608        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67609    ) -> Result<(), fidl::Error> {
67610        let _result = self.send_raw(result);
67611        self.drop_without_shutdown();
67612        _result
67613    }
67614
67615    fn send_raw(
67616        &self,
67617        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67618    ) -> Result<(), fidl::Error> {
67619        self.control_handle.inner.send::<fidl::encoding::ResultType<
67620            fidl::encoding::EmptyStruct,
67621            fidl_fuchsia_posix::Errno,
67622        >>(
67623            result,
67624            self.tx_id,
67625            0x4dcd6ab5573c1eb3,
67626            fidl::encoding::DynamicFlags::empty(),
67627        )
67628    }
67629}
67630
67631#[must_use = "FIDL methods require a response to be sent"]
67632#[derive(Debug)]
67633pub struct StreamSocketGetTcpSynCountResponder {
67634    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67635    tx_id: u32,
67636}
67637
67638/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67639/// if the responder is dropped without sending a response, so that the client
67640/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67641impl std::ops::Drop for StreamSocketGetTcpSynCountResponder {
67642    fn drop(&mut self) {
67643        self.control_handle.shutdown();
67644        // Safety: drops once, never accessed again
67645        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67646    }
67647}
67648
67649impl fidl::endpoints::Responder for StreamSocketGetTcpSynCountResponder {
67650    type ControlHandle = StreamSocketControlHandle;
67651
67652    fn control_handle(&self) -> &StreamSocketControlHandle {
67653        &self.control_handle
67654    }
67655
67656    fn drop_without_shutdown(mut self) {
67657        // Safety: drops once, never accessed again due to mem::forget
67658        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67659        // Prevent Drop from running (which would shut down the channel)
67660        std::mem::forget(self);
67661    }
67662}
67663
67664impl StreamSocketGetTcpSynCountResponder {
67665    /// Sends a response to the FIDL transaction.
67666    ///
67667    /// Sets the channel to shutdown if an error occurs.
67668    pub fn send(
67669        self,
67670        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67671    ) -> Result<(), fidl::Error> {
67672        let _result = self.send_raw(result);
67673        if _result.is_err() {
67674            self.control_handle.shutdown();
67675        }
67676        self.drop_without_shutdown();
67677        _result
67678    }
67679
67680    /// Similar to "send" but does not shutdown the channel if an error occurs.
67681    pub fn send_no_shutdown_on_err(
67682        self,
67683        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67684    ) -> Result<(), fidl::Error> {
67685        let _result = self.send_raw(result);
67686        self.drop_without_shutdown();
67687        _result
67688    }
67689
67690    fn send_raw(
67691        &self,
67692        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67693    ) -> Result<(), fidl::Error> {
67694        self.control_handle.inner.send::<fidl::encoding::ResultType<
67695            StreamSocketGetTcpSynCountResponse,
67696            fidl_fuchsia_posix::Errno,
67697        >>(
67698            result.map(|value| (value,)),
67699            self.tx_id,
67700            0x7d457cba8f5f3ee6,
67701            fidl::encoding::DynamicFlags::empty(),
67702        )
67703    }
67704}
67705
67706#[must_use = "FIDL methods require a response to be sent"]
67707#[derive(Debug)]
67708pub struct StreamSocketSetTcpLingerResponder {
67709    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67710    tx_id: u32,
67711}
67712
67713/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67714/// if the responder is dropped without sending a response, so that the client
67715/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67716impl std::ops::Drop for StreamSocketSetTcpLingerResponder {
67717    fn drop(&mut self) {
67718        self.control_handle.shutdown();
67719        // Safety: drops once, never accessed again
67720        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67721    }
67722}
67723
67724impl fidl::endpoints::Responder for StreamSocketSetTcpLingerResponder {
67725    type ControlHandle = StreamSocketControlHandle;
67726
67727    fn control_handle(&self) -> &StreamSocketControlHandle {
67728        &self.control_handle
67729    }
67730
67731    fn drop_without_shutdown(mut self) {
67732        // Safety: drops once, never accessed again due to mem::forget
67733        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67734        // Prevent Drop from running (which would shut down the channel)
67735        std::mem::forget(self);
67736    }
67737}
67738
67739impl StreamSocketSetTcpLingerResponder {
67740    /// Sends a response to the FIDL transaction.
67741    ///
67742    /// Sets the channel to shutdown if an error occurs.
67743    pub fn send(
67744        self,
67745        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67746    ) -> Result<(), fidl::Error> {
67747        let _result = self.send_raw(result);
67748        if _result.is_err() {
67749            self.control_handle.shutdown();
67750        }
67751        self.drop_without_shutdown();
67752        _result
67753    }
67754
67755    /// Similar to "send" but does not shutdown the channel if an error occurs.
67756    pub fn send_no_shutdown_on_err(
67757        self,
67758        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67759    ) -> Result<(), fidl::Error> {
67760        let _result = self.send_raw(result);
67761        self.drop_without_shutdown();
67762        _result
67763    }
67764
67765    fn send_raw(
67766        &self,
67767        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67768    ) -> Result<(), fidl::Error> {
67769        self.control_handle.inner.send::<fidl::encoding::ResultType<
67770            fidl::encoding::EmptyStruct,
67771            fidl_fuchsia_posix::Errno,
67772        >>(
67773            result,
67774            self.tx_id,
67775            0xd5cc1e8654d36e4,
67776            fidl::encoding::DynamicFlags::empty(),
67777        )
67778    }
67779}
67780
67781#[must_use = "FIDL methods require a response to be sent"]
67782#[derive(Debug)]
67783pub struct StreamSocketGetTcpLingerResponder {
67784    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67785    tx_id: u32,
67786}
67787
67788/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67789/// if the responder is dropped without sending a response, so that the client
67790/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67791impl std::ops::Drop for StreamSocketGetTcpLingerResponder {
67792    fn drop(&mut self) {
67793        self.control_handle.shutdown();
67794        // Safety: drops once, never accessed again
67795        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67796    }
67797}
67798
67799impl fidl::endpoints::Responder for StreamSocketGetTcpLingerResponder {
67800    type ControlHandle = StreamSocketControlHandle;
67801
67802    fn control_handle(&self) -> &StreamSocketControlHandle {
67803        &self.control_handle
67804    }
67805
67806    fn drop_without_shutdown(mut self) {
67807        // Safety: drops once, never accessed again due to mem::forget
67808        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67809        // Prevent Drop from running (which would shut down the channel)
67810        std::mem::forget(self);
67811    }
67812}
67813
67814impl StreamSocketGetTcpLingerResponder {
67815    /// Sends a response to the FIDL transaction.
67816    ///
67817    /// Sets the channel to shutdown if an error occurs.
67818    pub fn send(
67819        self,
67820        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
67821    ) -> Result<(), fidl::Error> {
67822        let _result = self.send_raw(result);
67823        if _result.is_err() {
67824            self.control_handle.shutdown();
67825        }
67826        self.drop_without_shutdown();
67827        _result
67828    }
67829
67830    /// Similar to "send" but does not shutdown the channel if an error occurs.
67831    pub fn send_no_shutdown_on_err(
67832        self,
67833        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
67834    ) -> Result<(), fidl::Error> {
67835        let _result = self.send_raw(result);
67836        self.drop_without_shutdown();
67837        _result
67838    }
67839
67840    fn send_raw(
67841        &self,
67842        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
67843    ) -> Result<(), fidl::Error> {
67844        self.control_handle.inner.send::<fidl::encoding::ResultType<
67845            StreamSocketGetTcpLingerResponse,
67846            fidl_fuchsia_posix::Errno,
67847        >>(
67848            result.map(|value_secs| (value_secs,)),
67849            self.tx_id,
67850            0xad870d311cf30eb,
67851            fidl::encoding::DynamicFlags::empty(),
67852        )
67853    }
67854}
67855
67856#[must_use = "FIDL methods require a response to be sent"]
67857#[derive(Debug)]
67858pub struct StreamSocketSetTcpDeferAcceptResponder {
67859    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67860    tx_id: u32,
67861}
67862
67863/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67864/// if the responder is dropped without sending a response, so that the client
67865/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67866impl std::ops::Drop for StreamSocketSetTcpDeferAcceptResponder {
67867    fn drop(&mut self) {
67868        self.control_handle.shutdown();
67869        // Safety: drops once, never accessed again
67870        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67871    }
67872}
67873
67874impl fidl::endpoints::Responder for StreamSocketSetTcpDeferAcceptResponder {
67875    type ControlHandle = StreamSocketControlHandle;
67876
67877    fn control_handle(&self) -> &StreamSocketControlHandle {
67878        &self.control_handle
67879    }
67880
67881    fn drop_without_shutdown(mut self) {
67882        // Safety: drops once, never accessed again due to mem::forget
67883        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67884        // Prevent Drop from running (which would shut down the channel)
67885        std::mem::forget(self);
67886    }
67887}
67888
67889impl StreamSocketSetTcpDeferAcceptResponder {
67890    /// Sends a response to the FIDL transaction.
67891    ///
67892    /// Sets the channel to shutdown if an error occurs.
67893    pub fn send(
67894        self,
67895        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67896    ) -> Result<(), fidl::Error> {
67897        let _result = self.send_raw(result);
67898        if _result.is_err() {
67899            self.control_handle.shutdown();
67900        }
67901        self.drop_without_shutdown();
67902        _result
67903    }
67904
67905    /// Similar to "send" but does not shutdown the channel if an error occurs.
67906    pub fn send_no_shutdown_on_err(
67907        self,
67908        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67909    ) -> Result<(), fidl::Error> {
67910        let _result = self.send_raw(result);
67911        self.drop_without_shutdown();
67912        _result
67913    }
67914
67915    fn send_raw(
67916        &self,
67917        mut result: Result<(), fidl_fuchsia_posix::Errno>,
67918    ) -> Result<(), fidl::Error> {
67919        self.control_handle.inner.send::<fidl::encoding::ResultType<
67920            fidl::encoding::EmptyStruct,
67921            fidl_fuchsia_posix::Errno,
67922        >>(
67923            result,
67924            self.tx_id,
67925            0x15092f181e57c404,
67926            fidl::encoding::DynamicFlags::empty(),
67927        )
67928    }
67929}
67930
67931#[must_use = "FIDL methods require a response to be sent"]
67932#[derive(Debug)]
67933pub struct StreamSocketGetTcpDeferAcceptResponder {
67934    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
67935    tx_id: u32,
67936}
67937
67938/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
67939/// if the responder is dropped without sending a response, so that the client
67940/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
67941impl std::ops::Drop for StreamSocketGetTcpDeferAcceptResponder {
67942    fn drop(&mut self) {
67943        self.control_handle.shutdown();
67944        // Safety: drops once, never accessed again
67945        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67946    }
67947}
67948
67949impl fidl::endpoints::Responder for StreamSocketGetTcpDeferAcceptResponder {
67950    type ControlHandle = StreamSocketControlHandle;
67951
67952    fn control_handle(&self) -> &StreamSocketControlHandle {
67953        &self.control_handle
67954    }
67955
67956    fn drop_without_shutdown(mut self) {
67957        // Safety: drops once, never accessed again due to mem::forget
67958        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
67959        // Prevent Drop from running (which would shut down the channel)
67960        std::mem::forget(self);
67961    }
67962}
67963
67964impl StreamSocketGetTcpDeferAcceptResponder {
67965    /// Sends a response to the FIDL transaction.
67966    ///
67967    /// Sets the channel to shutdown if an error occurs.
67968    pub fn send(
67969        self,
67970        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67971    ) -> Result<(), fidl::Error> {
67972        let _result = self.send_raw(result);
67973        if _result.is_err() {
67974            self.control_handle.shutdown();
67975        }
67976        self.drop_without_shutdown();
67977        _result
67978    }
67979
67980    /// Similar to "send" but does not shutdown the channel if an error occurs.
67981    pub fn send_no_shutdown_on_err(
67982        self,
67983        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67984    ) -> Result<(), fidl::Error> {
67985        let _result = self.send_raw(result);
67986        self.drop_without_shutdown();
67987        _result
67988    }
67989
67990    fn send_raw(
67991        &self,
67992        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
67993    ) -> Result<(), fidl::Error> {
67994        self.control_handle.inner.send::<fidl::encoding::ResultType<
67995            StreamSocketGetTcpDeferAcceptResponse,
67996            fidl_fuchsia_posix::Errno,
67997        >>(
67998            result.map(|value_secs| (value_secs,)),
67999            self.tx_id,
68000            0x64589790842cb7c6,
68001            fidl::encoding::DynamicFlags::empty(),
68002        )
68003    }
68004}
68005
68006#[must_use = "FIDL methods require a response to be sent"]
68007#[derive(Debug)]
68008pub struct StreamSocketSetTcpWindowClampResponder {
68009    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68010    tx_id: u32,
68011}
68012
68013/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68014/// if the responder is dropped without sending a response, so that the client
68015/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68016impl std::ops::Drop for StreamSocketSetTcpWindowClampResponder {
68017    fn drop(&mut self) {
68018        self.control_handle.shutdown();
68019        // Safety: drops once, never accessed again
68020        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68021    }
68022}
68023
68024impl fidl::endpoints::Responder for StreamSocketSetTcpWindowClampResponder {
68025    type ControlHandle = StreamSocketControlHandle;
68026
68027    fn control_handle(&self) -> &StreamSocketControlHandle {
68028        &self.control_handle
68029    }
68030
68031    fn drop_without_shutdown(mut self) {
68032        // Safety: drops once, never accessed again due to mem::forget
68033        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68034        // Prevent Drop from running (which would shut down the channel)
68035        std::mem::forget(self);
68036    }
68037}
68038
68039impl StreamSocketSetTcpWindowClampResponder {
68040    /// Sends a response to the FIDL transaction.
68041    ///
68042    /// Sets the channel to shutdown if an error occurs.
68043    pub fn send(
68044        self,
68045        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68046    ) -> Result<(), fidl::Error> {
68047        let _result = self.send_raw(result);
68048        if _result.is_err() {
68049            self.control_handle.shutdown();
68050        }
68051        self.drop_without_shutdown();
68052        _result
68053    }
68054
68055    /// Similar to "send" but does not shutdown the channel if an error occurs.
68056    pub fn send_no_shutdown_on_err(
68057        self,
68058        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68059    ) -> Result<(), fidl::Error> {
68060        let _result = self.send_raw(result);
68061        self.drop_without_shutdown();
68062        _result
68063    }
68064
68065    fn send_raw(
68066        &self,
68067        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68068    ) -> Result<(), fidl::Error> {
68069        self.control_handle.inner.send::<fidl::encoding::ResultType<
68070            fidl::encoding::EmptyStruct,
68071            fidl_fuchsia_posix::Errno,
68072        >>(
68073            result,
68074            self.tx_id,
68075            0x4a26ce07d847f1c6,
68076            fidl::encoding::DynamicFlags::empty(),
68077        )
68078    }
68079}
68080
68081#[must_use = "FIDL methods require a response to be sent"]
68082#[derive(Debug)]
68083pub struct StreamSocketGetTcpWindowClampResponder {
68084    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68085    tx_id: u32,
68086}
68087
68088/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68089/// if the responder is dropped without sending a response, so that the client
68090/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68091impl std::ops::Drop for StreamSocketGetTcpWindowClampResponder {
68092    fn drop(&mut self) {
68093        self.control_handle.shutdown();
68094        // Safety: drops once, never accessed again
68095        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68096    }
68097}
68098
68099impl fidl::endpoints::Responder for StreamSocketGetTcpWindowClampResponder {
68100    type ControlHandle = StreamSocketControlHandle;
68101
68102    fn control_handle(&self) -> &StreamSocketControlHandle {
68103        &self.control_handle
68104    }
68105
68106    fn drop_without_shutdown(mut self) {
68107        // Safety: drops once, never accessed again due to mem::forget
68108        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68109        // Prevent Drop from running (which would shut down the channel)
68110        std::mem::forget(self);
68111    }
68112}
68113
68114impl StreamSocketGetTcpWindowClampResponder {
68115    /// Sends a response to the FIDL transaction.
68116    ///
68117    /// Sets the channel to shutdown if an error occurs.
68118    pub fn send(
68119        self,
68120        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68121    ) -> Result<(), fidl::Error> {
68122        let _result = self.send_raw(result);
68123        if _result.is_err() {
68124            self.control_handle.shutdown();
68125        }
68126        self.drop_without_shutdown();
68127        _result
68128    }
68129
68130    /// Similar to "send" but does not shutdown the channel if an error occurs.
68131    pub fn send_no_shutdown_on_err(
68132        self,
68133        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68134    ) -> Result<(), fidl::Error> {
68135        let _result = self.send_raw(result);
68136        self.drop_without_shutdown();
68137        _result
68138    }
68139
68140    fn send_raw(
68141        &self,
68142        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68143    ) -> Result<(), fidl::Error> {
68144        self.control_handle.inner.send::<fidl::encoding::ResultType<
68145            StreamSocketGetTcpWindowClampResponse,
68146            fidl_fuchsia_posix::Errno,
68147        >>(
68148            result.map(|value| (value,)),
68149            self.tx_id,
68150            0x2df6b636bf0a6a4e,
68151            fidl::encoding::DynamicFlags::empty(),
68152        )
68153    }
68154}
68155
68156#[must_use = "FIDL methods require a response to be sent"]
68157#[derive(Debug)]
68158pub struct StreamSocketGetTcpInfoResponder {
68159    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68160    tx_id: u32,
68161}
68162
68163/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68164/// if the responder is dropped without sending a response, so that the client
68165/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68166impl std::ops::Drop for StreamSocketGetTcpInfoResponder {
68167    fn drop(&mut self) {
68168        self.control_handle.shutdown();
68169        // Safety: drops once, never accessed again
68170        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68171    }
68172}
68173
68174impl fidl::endpoints::Responder for StreamSocketGetTcpInfoResponder {
68175    type ControlHandle = StreamSocketControlHandle;
68176
68177    fn control_handle(&self) -> &StreamSocketControlHandle {
68178        &self.control_handle
68179    }
68180
68181    fn drop_without_shutdown(mut self) {
68182        // Safety: drops once, never accessed again due to mem::forget
68183        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68184        // Prevent Drop from running (which would shut down the channel)
68185        std::mem::forget(self);
68186    }
68187}
68188
68189impl StreamSocketGetTcpInfoResponder {
68190    /// Sends a response to the FIDL transaction.
68191    ///
68192    /// Sets the channel to shutdown if an error occurs.
68193    pub fn send(
68194        self,
68195        mut result: Result<&TcpInfo, fidl_fuchsia_posix::Errno>,
68196    ) -> Result<(), fidl::Error> {
68197        let _result = self.send_raw(result);
68198        if _result.is_err() {
68199            self.control_handle.shutdown();
68200        }
68201        self.drop_without_shutdown();
68202        _result
68203    }
68204
68205    /// Similar to "send" but does not shutdown the channel if an error occurs.
68206    pub fn send_no_shutdown_on_err(
68207        self,
68208        mut result: Result<&TcpInfo, fidl_fuchsia_posix::Errno>,
68209    ) -> Result<(), fidl::Error> {
68210        let _result = self.send_raw(result);
68211        self.drop_without_shutdown();
68212        _result
68213    }
68214
68215    fn send_raw(
68216        &self,
68217        mut result: Result<&TcpInfo, fidl_fuchsia_posix::Errno>,
68218    ) -> Result<(), fidl::Error> {
68219        self.control_handle.inner.send::<fidl::encoding::ResultType<
68220            StreamSocketGetTcpInfoResponse,
68221            fidl_fuchsia_posix::Errno,
68222        >>(
68223            result.map(|info| (info,)),
68224            self.tx_id,
68225            0x1ffb123d9f03ead2,
68226            fidl::encoding::DynamicFlags::empty(),
68227        )
68228    }
68229}
68230
68231#[must_use = "FIDL methods require a response to be sent"]
68232#[derive(Debug)]
68233pub struct StreamSocketSetTcpQuickAckResponder {
68234    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68235    tx_id: u32,
68236}
68237
68238/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68239/// if the responder is dropped without sending a response, so that the client
68240/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68241impl std::ops::Drop for StreamSocketSetTcpQuickAckResponder {
68242    fn drop(&mut self) {
68243        self.control_handle.shutdown();
68244        // Safety: drops once, never accessed again
68245        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68246    }
68247}
68248
68249impl fidl::endpoints::Responder for StreamSocketSetTcpQuickAckResponder {
68250    type ControlHandle = StreamSocketControlHandle;
68251
68252    fn control_handle(&self) -> &StreamSocketControlHandle {
68253        &self.control_handle
68254    }
68255
68256    fn drop_without_shutdown(mut self) {
68257        // Safety: drops once, never accessed again due to mem::forget
68258        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68259        // Prevent Drop from running (which would shut down the channel)
68260        std::mem::forget(self);
68261    }
68262}
68263
68264impl StreamSocketSetTcpQuickAckResponder {
68265    /// Sends a response to the FIDL transaction.
68266    ///
68267    /// Sets the channel to shutdown if an error occurs.
68268    pub fn send(
68269        self,
68270        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68271    ) -> Result<(), fidl::Error> {
68272        let _result = self.send_raw(result);
68273        if _result.is_err() {
68274            self.control_handle.shutdown();
68275        }
68276        self.drop_without_shutdown();
68277        _result
68278    }
68279
68280    /// Similar to "send" but does not shutdown the channel if an error occurs.
68281    pub fn send_no_shutdown_on_err(
68282        self,
68283        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68284    ) -> Result<(), fidl::Error> {
68285        let _result = self.send_raw(result);
68286        self.drop_without_shutdown();
68287        _result
68288    }
68289
68290    fn send_raw(
68291        &self,
68292        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68293    ) -> Result<(), fidl::Error> {
68294        self.control_handle.inner.send::<fidl::encoding::ResultType<
68295            fidl::encoding::EmptyStruct,
68296            fidl_fuchsia_posix::Errno,
68297        >>(
68298            result,
68299            self.tx_id,
68300            0x6fa811be8fde7457,
68301            fidl::encoding::DynamicFlags::empty(),
68302        )
68303    }
68304}
68305
68306#[must_use = "FIDL methods require a response to be sent"]
68307#[derive(Debug)]
68308pub struct StreamSocketGetTcpQuickAckResponder {
68309    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68310    tx_id: u32,
68311}
68312
68313/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68314/// if the responder is dropped without sending a response, so that the client
68315/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68316impl std::ops::Drop for StreamSocketGetTcpQuickAckResponder {
68317    fn drop(&mut self) {
68318        self.control_handle.shutdown();
68319        // Safety: drops once, never accessed again
68320        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68321    }
68322}
68323
68324impl fidl::endpoints::Responder for StreamSocketGetTcpQuickAckResponder {
68325    type ControlHandle = StreamSocketControlHandle;
68326
68327    fn control_handle(&self) -> &StreamSocketControlHandle {
68328        &self.control_handle
68329    }
68330
68331    fn drop_without_shutdown(mut self) {
68332        // Safety: drops once, never accessed again due to mem::forget
68333        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68334        // Prevent Drop from running (which would shut down the channel)
68335        std::mem::forget(self);
68336    }
68337}
68338
68339impl StreamSocketGetTcpQuickAckResponder {
68340    /// Sends a response to the FIDL transaction.
68341    ///
68342    /// Sets the channel to shutdown if an error occurs.
68343    pub fn send(
68344        self,
68345        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68346    ) -> Result<(), fidl::Error> {
68347        let _result = self.send_raw(result);
68348        if _result.is_err() {
68349            self.control_handle.shutdown();
68350        }
68351        self.drop_without_shutdown();
68352        _result
68353    }
68354
68355    /// Similar to "send" but does not shutdown the channel if an error occurs.
68356    pub fn send_no_shutdown_on_err(
68357        self,
68358        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68359    ) -> Result<(), fidl::Error> {
68360        let _result = self.send_raw(result);
68361        self.drop_without_shutdown();
68362        _result
68363    }
68364
68365    fn send_raw(
68366        &self,
68367        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
68368    ) -> Result<(), fidl::Error> {
68369        self.control_handle.inner.send::<fidl::encoding::ResultType<
68370            StreamSocketGetTcpQuickAckResponse,
68371            fidl_fuchsia_posix::Errno,
68372        >>(
68373            result.map(|value| (value,)),
68374            self.tx_id,
68375            0x7356a949bef2df32,
68376            fidl::encoding::DynamicFlags::empty(),
68377        )
68378    }
68379}
68380
68381#[must_use = "FIDL methods require a response to be sent"]
68382#[derive(Debug)]
68383pub struct StreamSocketSetTcpCongestionResponder {
68384    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68385    tx_id: u32,
68386}
68387
68388/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68389/// if the responder is dropped without sending a response, so that the client
68390/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68391impl std::ops::Drop for StreamSocketSetTcpCongestionResponder {
68392    fn drop(&mut self) {
68393        self.control_handle.shutdown();
68394        // Safety: drops once, never accessed again
68395        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68396    }
68397}
68398
68399impl fidl::endpoints::Responder for StreamSocketSetTcpCongestionResponder {
68400    type ControlHandle = StreamSocketControlHandle;
68401
68402    fn control_handle(&self) -> &StreamSocketControlHandle {
68403        &self.control_handle
68404    }
68405
68406    fn drop_without_shutdown(mut self) {
68407        // Safety: drops once, never accessed again due to mem::forget
68408        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68409        // Prevent Drop from running (which would shut down the channel)
68410        std::mem::forget(self);
68411    }
68412}
68413
68414impl StreamSocketSetTcpCongestionResponder {
68415    /// Sends a response to the FIDL transaction.
68416    ///
68417    /// Sets the channel to shutdown if an error occurs.
68418    pub fn send(
68419        self,
68420        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68421    ) -> Result<(), fidl::Error> {
68422        let _result = self.send_raw(result);
68423        if _result.is_err() {
68424            self.control_handle.shutdown();
68425        }
68426        self.drop_without_shutdown();
68427        _result
68428    }
68429
68430    /// Similar to "send" but does not shutdown the channel if an error occurs.
68431    pub fn send_no_shutdown_on_err(
68432        self,
68433        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68434    ) -> Result<(), fidl::Error> {
68435        let _result = self.send_raw(result);
68436        self.drop_without_shutdown();
68437        _result
68438    }
68439
68440    fn send_raw(
68441        &self,
68442        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68443    ) -> Result<(), fidl::Error> {
68444        self.control_handle.inner.send::<fidl::encoding::ResultType<
68445            fidl::encoding::EmptyStruct,
68446            fidl_fuchsia_posix::Errno,
68447        >>(
68448            result,
68449            self.tx_id,
68450            0x7924c6eabde7819e,
68451            fidl::encoding::DynamicFlags::empty(),
68452        )
68453    }
68454}
68455
68456#[must_use = "FIDL methods require a response to be sent"]
68457#[derive(Debug)]
68458pub struct StreamSocketGetTcpCongestionResponder {
68459    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68460    tx_id: u32,
68461}
68462
68463/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68464/// if the responder is dropped without sending a response, so that the client
68465/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68466impl std::ops::Drop for StreamSocketGetTcpCongestionResponder {
68467    fn drop(&mut self) {
68468        self.control_handle.shutdown();
68469        // Safety: drops once, never accessed again
68470        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68471    }
68472}
68473
68474impl fidl::endpoints::Responder for StreamSocketGetTcpCongestionResponder {
68475    type ControlHandle = StreamSocketControlHandle;
68476
68477    fn control_handle(&self) -> &StreamSocketControlHandle {
68478        &self.control_handle
68479    }
68480
68481    fn drop_without_shutdown(mut self) {
68482        // Safety: drops once, never accessed again due to mem::forget
68483        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68484        // Prevent Drop from running (which would shut down the channel)
68485        std::mem::forget(self);
68486    }
68487}
68488
68489impl StreamSocketGetTcpCongestionResponder {
68490    /// Sends a response to the FIDL transaction.
68491    ///
68492    /// Sets the channel to shutdown if an error occurs.
68493    pub fn send(
68494        self,
68495        mut result: Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>,
68496    ) -> Result<(), fidl::Error> {
68497        let _result = self.send_raw(result);
68498        if _result.is_err() {
68499            self.control_handle.shutdown();
68500        }
68501        self.drop_without_shutdown();
68502        _result
68503    }
68504
68505    /// Similar to "send" but does not shutdown the channel if an error occurs.
68506    pub fn send_no_shutdown_on_err(
68507        self,
68508        mut result: Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>,
68509    ) -> Result<(), fidl::Error> {
68510        let _result = self.send_raw(result);
68511        self.drop_without_shutdown();
68512        _result
68513    }
68514
68515    fn send_raw(
68516        &self,
68517        mut result: Result<TcpCongestionControl, fidl_fuchsia_posix::Errno>,
68518    ) -> Result<(), fidl::Error> {
68519        self.control_handle.inner.send::<fidl::encoding::ResultType<
68520            StreamSocketGetTcpCongestionResponse,
68521            fidl_fuchsia_posix::Errno,
68522        >>(
68523            result.map(|value| (value,)),
68524            self.tx_id,
68525            0x11e16397e1b72a47,
68526            fidl::encoding::DynamicFlags::empty(),
68527        )
68528    }
68529}
68530
68531#[must_use = "FIDL methods require a response to be sent"]
68532#[derive(Debug)]
68533pub struct StreamSocketSetTcpUserTimeoutResponder {
68534    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68535    tx_id: u32,
68536}
68537
68538/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68539/// if the responder is dropped without sending a response, so that the client
68540/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68541impl std::ops::Drop for StreamSocketSetTcpUserTimeoutResponder {
68542    fn drop(&mut self) {
68543        self.control_handle.shutdown();
68544        // Safety: drops once, never accessed again
68545        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68546    }
68547}
68548
68549impl fidl::endpoints::Responder for StreamSocketSetTcpUserTimeoutResponder {
68550    type ControlHandle = StreamSocketControlHandle;
68551
68552    fn control_handle(&self) -> &StreamSocketControlHandle {
68553        &self.control_handle
68554    }
68555
68556    fn drop_without_shutdown(mut self) {
68557        // Safety: drops once, never accessed again due to mem::forget
68558        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68559        // Prevent Drop from running (which would shut down the channel)
68560        std::mem::forget(self);
68561    }
68562}
68563
68564impl StreamSocketSetTcpUserTimeoutResponder {
68565    /// Sends a response to the FIDL transaction.
68566    ///
68567    /// Sets the channel to shutdown if an error occurs.
68568    pub fn send(
68569        self,
68570        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68571    ) -> Result<(), fidl::Error> {
68572        let _result = self.send_raw(result);
68573        if _result.is_err() {
68574            self.control_handle.shutdown();
68575        }
68576        self.drop_without_shutdown();
68577        _result
68578    }
68579
68580    /// Similar to "send" but does not shutdown the channel if an error occurs.
68581    pub fn send_no_shutdown_on_err(
68582        self,
68583        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68584    ) -> Result<(), fidl::Error> {
68585        let _result = self.send_raw(result);
68586        self.drop_without_shutdown();
68587        _result
68588    }
68589
68590    fn send_raw(
68591        &self,
68592        mut result: Result<(), fidl_fuchsia_posix::Errno>,
68593    ) -> Result<(), fidl::Error> {
68594        self.control_handle.inner.send::<fidl::encoding::ResultType<
68595            fidl::encoding::EmptyStruct,
68596            fidl_fuchsia_posix::Errno,
68597        >>(
68598            result,
68599            self.tx_id,
68600            0x6b459e81c3741a60,
68601            fidl::encoding::DynamicFlags::empty(),
68602        )
68603    }
68604}
68605
68606#[must_use = "FIDL methods require a response to be sent"]
68607#[derive(Debug)]
68608pub struct StreamSocketGetTcpUserTimeoutResponder {
68609    control_handle: std::mem::ManuallyDrop<StreamSocketControlHandle>,
68610    tx_id: u32,
68611}
68612
68613/// Set the the channel to be shutdown (see [`StreamSocketControlHandle::shutdown`])
68614/// if the responder is dropped without sending a response, so that the client
68615/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
68616impl std::ops::Drop for StreamSocketGetTcpUserTimeoutResponder {
68617    fn drop(&mut self) {
68618        self.control_handle.shutdown();
68619        // Safety: drops once, never accessed again
68620        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68621    }
68622}
68623
68624impl fidl::endpoints::Responder for StreamSocketGetTcpUserTimeoutResponder {
68625    type ControlHandle = StreamSocketControlHandle;
68626
68627    fn control_handle(&self) -> &StreamSocketControlHandle {
68628        &self.control_handle
68629    }
68630
68631    fn drop_without_shutdown(mut self) {
68632        // Safety: drops once, never accessed again due to mem::forget
68633        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
68634        // Prevent Drop from running (which would shut down the channel)
68635        std::mem::forget(self);
68636    }
68637}
68638
68639impl StreamSocketGetTcpUserTimeoutResponder {
68640    /// Sends a response to the FIDL transaction.
68641    ///
68642    /// Sets the channel to shutdown if an error occurs.
68643    pub fn send(
68644        self,
68645        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68646    ) -> Result<(), fidl::Error> {
68647        let _result = self.send_raw(result);
68648        if _result.is_err() {
68649            self.control_handle.shutdown();
68650        }
68651        self.drop_without_shutdown();
68652        _result
68653    }
68654
68655    /// Similar to "send" but does not shutdown the channel if an error occurs.
68656    pub fn send_no_shutdown_on_err(
68657        self,
68658        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68659    ) -> Result<(), fidl::Error> {
68660        let _result = self.send_raw(result);
68661        self.drop_without_shutdown();
68662        _result
68663    }
68664
68665    fn send_raw(
68666        &self,
68667        mut result: Result<u32, fidl_fuchsia_posix::Errno>,
68668    ) -> Result<(), fidl::Error> {
68669        self.control_handle.inner.send::<fidl::encoding::ResultType<
68670            StreamSocketGetTcpUserTimeoutResponse,
68671            fidl_fuchsia_posix::Errno,
68672        >>(
68673            result.map(|value_millis| (value_millis,)),
68674            self.tx_id,
68675            0x24bbd5858ad8c380,
68676            fidl::encoding::DynamicFlags::empty(),
68677        )
68678    }
68679}
68680
68681#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
68682pub struct SynchronousDatagramSocketMarker;
68683
68684impl fidl::endpoints::ProtocolMarker for SynchronousDatagramSocketMarker {
68685    type Proxy = SynchronousDatagramSocketProxy;
68686    type RequestStream = SynchronousDatagramSocketRequestStream;
68687    #[cfg(target_os = "fuchsia")]
68688    type SynchronousProxy = SynchronousDatagramSocketSynchronousProxy;
68689
68690    const DEBUG_NAME: &'static str = "fuchsia.posix.socket.SynchronousDatagramSocket";
68691}
68692impl fidl::endpoints::DiscoverableProtocolMarker for SynchronousDatagramSocketMarker {}
68693pub type SynchronousDatagramSocketRecvMsgResult = Result<
68694    (Option<Box<fidl_fuchsia_net::SocketAddress>>, Vec<u8>, DatagramSocketRecvControlData, u32),
68695    fidl_fuchsia_posix::Errno,
68696>;
68697pub type SynchronousDatagramSocketSendMsgResult = Result<i64, fidl_fuchsia_posix::Errno>;
68698
68699pub trait SynchronousDatagramSocketProxyInterface: Send + Sync {
68700    fn r#clone(
68701        &self,
68702        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
68703    ) -> Result<(), fidl::Error>;
68704    type CloseResponseFut: std::future::Future<
68705            Output = Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error>,
68706        > + Send;
68707    fn r#close(&self) -> Self::CloseResponseFut;
68708    type QueryResponseFut: std::future::Future<Output = Result<Vec<u8>, fidl::Error>> + Send;
68709    fn r#query(&self) -> Self::QueryResponseFut;
68710    type SetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketSetReuseAddressResult, fidl::Error>>
68711        + Send;
68712    fn r#set_reuse_address(&self, value: bool) -> Self::SetReuseAddressResponseFut;
68713    type GetReuseAddressResponseFut: std::future::Future<Output = Result<BaseSocketGetReuseAddressResult, fidl::Error>>
68714        + Send;
68715    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut;
68716    type GetErrorResponseFut: std::future::Future<Output = Result<BaseSocketGetErrorResult, fidl::Error>>
68717        + Send;
68718    fn r#get_error(&self) -> Self::GetErrorResponseFut;
68719    type SetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketSetBroadcastResult, fidl::Error>>
68720        + Send;
68721    fn r#set_broadcast(&self, value: bool) -> Self::SetBroadcastResponseFut;
68722    type GetBroadcastResponseFut: std::future::Future<Output = Result<BaseSocketGetBroadcastResult, fidl::Error>>
68723        + Send;
68724    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut;
68725    type SetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetSendBufferResult, fidl::Error>>
68726        + Send;
68727    fn r#set_send_buffer(&self, value_bytes: u64) -> Self::SetSendBufferResponseFut;
68728    type GetSendBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetSendBufferResult, fidl::Error>>
68729        + Send;
68730    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut;
68731    type SetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketSetReceiveBufferResult, fidl::Error>>
68732        + Send;
68733    fn r#set_receive_buffer(&self, value_bytes: u64) -> Self::SetReceiveBufferResponseFut;
68734    type GetReceiveBufferResponseFut: std::future::Future<Output = Result<BaseSocketGetReceiveBufferResult, fidl::Error>>
68735        + Send;
68736    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut;
68737    type SetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketSetKeepAliveResult, fidl::Error>>
68738        + Send;
68739    fn r#set_keep_alive(&self, value: bool) -> Self::SetKeepAliveResponseFut;
68740    type GetKeepAliveResponseFut: std::future::Future<Output = Result<BaseSocketGetKeepAliveResult, fidl::Error>>
68741        + Send;
68742    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut;
68743    type SetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketSetOutOfBandInlineResult, fidl::Error>>
68744        + Send;
68745    fn r#set_out_of_band_inline(&self, value: bool) -> Self::SetOutOfBandInlineResponseFut;
68746    type GetOutOfBandInlineResponseFut: std::future::Future<Output = Result<BaseSocketGetOutOfBandInlineResult, fidl::Error>>
68747        + Send;
68748    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut;
68749    type SetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketSetNoCheckResult, fidl::Error>>
68750        + Send;
68751    fn r#set_no_check(&self, value: bool) -> Self::SetNoCheckResponseFut;
68752    type GetNoCheckResponseFut: std::future::Future<Output = Result<BaseSocketGetNoCheckResult, fidl::Error>>
68753        + Send;
68754    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut;
68755    type SetLingerResponseFut: std::future::Future<Output = Result<BaseSocketSetLingerResult, fidl::Error>>
68756        + Send;
68757    fn r#set_linger(&self, linger: bool, length_secs: u32) -> Self::SetLingerResponseFut;
68758    type GetLingerResponseFut: std::future::Future<Output = Result<BaseSocketGetLingerResult, fidl::Error>>
68759        + Send;
68760    fn r#get_linger(&self) -> Self::GetLingerResponseFut;
68761    type SetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketSetReusePortResult, fidl::Error>>
68762        + Send;
68763    fn r#set_reuse_port(&self, value: bool) -> Self::SetReusePortResponseFut;
68764    type GetReusePortResponseFut: std::future::Future<Output = Result<BaseSocketGetReusePortResult, fidl::Error>>
68765        + Send;
68766    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut;
68767    type GetAcceptConnResponseFut: std::future::Future<Output = Result<BaseSocketGetAcceptConnResult, fidl::Error>>
68768        + Send;
68769    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut;
68770    type SetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToDeviceResult, fidl::Error>>
68771        + Send;
68772    fn r#set_bind_to_device(&self, value: &str) -> Self::SetBindToDeviceResponseFut;
68773    type GetBindToDeviceResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToDeviceResult, fidl::Error>>
68774        + Send;
68775    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut;
68776    type SetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error>>
68777        + Send;
68778    fn r#set_bind_to_interface_index(&self, value: u64)
68779    -> Self::SetBindToInterfaceIndexResponseFut;
68780    type GetBindToInterfaceIndexResponseFut: std::future::Future<Output = Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error>>
68781        + Send;
68782    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut;
68783    type SetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketSetTimestampResult, fidl::Error>>
68784        + Send;
68785    fn r#set_timestamp(&self, value: TimestampOption) -> Self::SetTimestampResponseFut;
68786    type GetTimestampResponseFut: std::future::Future<Output = Result<BaseSocketGetTimestampResult, fidl::Error>>
68787        + Send;
68788    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut;
68789    type SetMarkResponseFut: std::future::Future<Output = Result<BaseSocketSetMarkResult, fidl::Error>>
68790        + Send;
68791    fn r#set_mark(
68792        &self,
68793        domain: fidl_fuchsia_net::MarkDomain,
68794        mark: &OptionalUint32,
68795    ) -> Self::SetMarkResponseFut;
68796    type GetMarkResponseFut: std::future::Future<Output = Result<BaseSocketGetMarkResult, fidl::Error>>
68797        + Send;
68798    fn r#get_mark(&self, domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut;
68799    type GetCookieResponseFut: std::future::Future<Output = Result<BaseSocketGetCookieResult, fidl::Error>>
68800        + Send;
68801    fn r#get_cookie(&self) -> Self::GetCookieResponseFut;
68802    type BindResponseFut: std::future::Future<Output = Result<BaseNetworkSocketBindResult, fidl::Error>>
68803        + Send;
68804    fn r#bind(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut;
68805    type ConnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketConnectResult, fidl::Error>>
68806        + Send;
68807    fn r#connect(&self, addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut;
68808    type DisconnectResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDisconnectResult, fidl::Error>>
68809        + Send;
68810    fn r#disconnect(&self) -> Self::DisconnectResponseFut;
68811    type GetSockNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetSockNameResult, fidl::Error>>
68812        + Send;
68813    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut;
68814    type GetPeerNameResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetPeerNameResult, fidl::Error>>
68815        + Send;
68816    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut;
68817    type ShutdownResponseFut: std::future::Future<Output = Result<BaseNetworkSocketShutdownResult, fidl::Error>>
68818        + Send;
68819    fn r#shutdown(&self, mode: ShutdownMode) -> Self::ShutdownResponseFut;
68820    type SetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error>>
68821        + Send;
68822    fn r#set_ip_type_of_service(&self, value: u8) -> Self::SetIpTypeOfServiceResponseFut;
68823    type GetIpTypeOfServiceResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error>>
68824        + Send;
68825    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut;
68826    type SetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTtlResult, fidl::Error>>
68827        + Send;
68828    fn r#set_ip_ttl(&self, value: &OptionalUint8) -> Self::SetIpTtlResponseFut;
68829    type GetIpTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTtlResult, fidl::Error>>
68830        + Send;
68831    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut;
68832    type SetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error>>
68833        + Send;
68834    fn r#set_ip_packet_info(&self, value: bool) -> Self::SetIpPacketInfoResponseFut;
68835    type GetIpPacketInfoResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error>>
68836        + Send;
68837    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut;
68838    type SetIpReceiveTypeOfServiceResponseFut: std::future::Future<
68839            Output = Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error>,
68840        > + Send;
68841    fn r#set_ip_receive_type_of_service(
68842        &self,
68843        value: bool,
68844    ) -> Self::SetIpReceiveTypeOfServiceResponseFut;
68845    type GetIpReceiveTypeOfServiceResponseFut: std::future::Future<
68846            Output = Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error>,
68847        > + Send;
68848    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut;
68849    type SetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error>>
68850        + Send;
68851    fn r#set_ip_receive_ttl(&self, value: bool) -> Self::SetIpReceiveTtlResponseFut;
68852    type GetIpReceiveTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error>>
68853        + Send;
68854    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut;
68855    type SetIpMulticastInterfaceResponseFut: std::future::Future<
68856            Output = Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error>,
68857        > + Send;
68858    fn r#set_ip_multicast_interface(
68859        &self,
68860        iface: u64,
68861        address: &fidl_fuchsia_net::Ipv4Address,
68862    ) -> Self::SetIpMulticastInterfaceResponseFut;
68863    type GetIpMulticastInterfaceResponseFut: std::future::Future<
68864            Output = Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error>,
68865        > + Send;
68866    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut;
68867    type SetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error>>
68868        + Send;
68869    fn r#set_ip_multicast_ttl(&self, value: &OptionalUint8) -> Self::SetIpMulticastTtlResponseFut;
68870    type GetIpMulticastTtlResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error>>
68871        + Send;
68872    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut;
68873    type SetIpMulticastLoopbackResponseFut: std::future::Future<
68874            Output = Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error>,
68875        > + Send;
68876    fn r#set_ip_multicast_loopback(&self, value: bool) -> Self::SetIpMulticastLoopbackResponseFut;
68877    type GetIpMulticastLoopbackResponseFut: std::future::Future<
68878            Output = Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error>,
68879        > + Send;
68880    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut;
68881    type AddIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error>>
68882        + Send;
68883    fn r#add_ip_membership(
68884        &self,
68885        membership: &IpMulticastMembership,
68886    ) -> Self::AddIpMembershipResponseFut;
68887    type DropIpMembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error>>
68888        + Send;
68889    fn r#drop_ip_membership(
68890        &self,
68891        membership: &IpMulticastMembership,
68892    ) -> Self::DropIpMembershipResponseFut;
68893    type SetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error>>
68894        + Send;
68895    fn r#set_ip_transparent(&self, value: bool) -> Self::SetIpTransparentResponseFut;
68896    type GetIpTransparentResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error>>
68897        + Send;
68898    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut;
68899    type SetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
68900            Output = Result<
68901                BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
68902                fidl::Error,
68903            >,
68904        > + Send;
68905    fn r#set_ip_receive_original_destination_address(
68906        &self,
68907        value: bool,
68908    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut;
68909    type GetIpReceiveOriginalDestinationAddressResponseFut: std::future::Future<
68910            Output = Result<
68911                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
68912                fidl::Error,
68913            >,
68914        > + Send;
68915    fn r#get_ip_receive_original_destination_address(
68916        &self,
68917    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut;
68918    type AddIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error>>
68919        + Send;
68920    fn r#add_ipv6_membership(
68921        &self,
68922        membership: &Ipv6MulticastMembership,
68923    ) -> Self::AddIpv6MembershipResponseFut;
68924    type DropIpv6MembershipResponseFut: std::future::Future<Output = Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error>>
68925        + Send;
68926    fn r#drop_ipv6_membership(
68927        &self,
68928        membership: &Ipv6MulticastMembership,
68929    ) -> Self::DropIpv6MembershipResponseFut;
68930    type SetIpv6MulticastInterfaceResponseFut: std::future::Future<
68931            Output = Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error>,
68932        > + Send;
68933    fn r#set_ipv6_multicast_interface(
68934        &self,
68935        value: u64,
68936    ) -> Self::SetIpv6MulticastInterfaceResponseFut;
68937    type GetIpv6MulticastInterfaceResponseFut: std::future::Future<
68938            Output = Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error>,
68939        > + Send;
68940    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut;
68941    type SetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error>>
68942        + Send;
68943    fn r#set_ipv6_unicast_hops(&self, value: &OptionalUint8)
68944    -> Self::SetIpv6UnicastHopsResponseFut;
68945    type GetIpv6UnicastHopsResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error>>
68946        + Send;
68947    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut;
68948    type SetIpv6ReceiveHopLimitResponseFut: std::future::Future<
68949            Output = Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error>,
68950        > + Send;
68951    fn r#set_ipv6_receive_hop_limit(&self, value: bool) -> Self::SetIpv6ReceiveHopLimitResponseFut;
68952    type GetIpv6ReceiveHopLimitResponseFut: std::future::Future<
68953            Output = Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error>,
68954        > + Send;
68955    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut;
68956    type SetIpv6MulticastHopsResponseFut: std::future::Future<
68957            Output = Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error>,
68958        > + Send;
68959    fn r#set_ipv6_multicast_hops(
68960        &self,
68961        value: &OptionalUint8,
68962    ) -> Self::SetIpv6MulticastHopsResponseFut;
68963    type GetIpv6MulticastHopsResponseFut: std::future::Future<
68964            Output = Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error>,
68965        > + Send;
68966    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut;
68967    type SetIpv6MulticastLoopbackResponseFut: std::future::Future<
68968            Output = Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error>,
68969        > + Send;
68970    fn r#set_ipv6_multicast_loopback(
68971        &self,
68972        value: bool,
68973    ) -> Self::SetIpv6MulticastLoopbackResponseFut;
68974    type GetIpv6MulticastLoopbackResponseFut: std::future::Future<
68975            Output = Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error>,
68976        > + Send;
68977    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut;
68978    type SetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error>>
68979        + Send;
68980    fn r#set_ipv6_only(&self, value: bool) -> Self::SetIpv6OnlyResponseFut;
68981    type GetIpv6OnlyResponseFut: std::future::Future<Output = Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error>>
68982        + Send;
68983    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut;
68984    type SetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
68985            Output = Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error>,
68986        > + Send;
68987    fn r#set_ipv6_receive_traffic_class(
68988        &self,
68989        value: bool,
68990    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut;
68991    type GetIpv6ReceiveTrafficClassResponseFut: std::future::Future<
68992            Output = Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error>,
68993        > + Send;
68994    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut;
68995    type SetIpv6TrafficClassResponseFut: std::future::Future<
68996            Output = Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error>,
68997        > + Send;
68998    fn r#set_ipv6_traffic_class(
68999        &self,
69000        value: &OptionalUint8,
69001    ) -> Self::SetIpv6TrafficClassResponseFut;
69002    type GetIpv6TrafficClassResponseFut: std::future::Future<
69003            Output = Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error>,
69004        > + Send;
69005    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut;
69006    type SetIpv6ReceivePacketInfoResponseFut: std::future::Future<
69007            Output = Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error>,
69008        > + Send;
69009    fn r#set_ipv6_receive_packet_info(
69010        &self,
69011        value: bool,
69012    ) -> Self::SetIpv6ReceivePacketInfoResponseFut;
69013    type GetIpv6ReceivePacketInfoResponseFut: std::future::Future<
69014            Output = Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error>,
69015        > + Send;
69016    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut;
69017    type GetOriginalDestinationResponseFut: std::future::Future<
69018            Output = Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error>,
69019        > + Send;
69020    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut;
69021    type GetInfoResponseFut: std::future::Future<Output = Result<BaseDatagramSocketGetInfoResult, fidl::Error>>
69022        + Send;
69023    fn r#get_info(&self) -> Self::GetInfoResponseFut;
69024    type DescribeResponseFut: std::future::Future<Output = Result<SynchronousDatagramSocketDescribeResponse, fidl::Error>>
69025        + Send;
69026    fn r#describe(&self) -> Self::DescribeResponseFut;
69027    type RecvMsgResponseFut: std::future::Future<Output = Result<SynchronousDatagramSocketRecvMsgResult, fidl::Error>>
69028        + Send;
69029    fn r#recv_msg(
69030        &self,
69031        want_addr: bool,
69032        data_len: u32,
69033        want_control: bool,
69034        flags: RecvMsgFlags,
69035    ) -> Self::RecvMsgResponseFut;
69036    type SendMsgResponseFut: std::future::Future<Output = Result<SynchronousDatagramSocketSendMsgResult, fidl::Error>>
69037        + Send;
69038    fn r#send_msg(
69039        &self,
69040        addr: Option<&fidl_fuchsia_net::SocketAddress>,
69041        data: &[u8],
69042        control: &DatagramSocketSendControlData,
69043        flags: SendMsgFlags,
69044    ) -> Self::SendMsgResponseFut;
69045}
69046#[derive(Debug)]
69047#[cfg(target_os = "fuchsia")]
69048pub struct SynchronousDatagramSocketSynchronousProxy {
69049    client: fidl::client::sync::Client,
69050}
69051
69052#[cfg(target_os = "fuchsia")]
69053impl fidl::endpoints::SynchronousProxy for SynchronousDatagramSocketSynchronousProxy {
69054    type Proxy = SynchronousDatagramSocketProxy;
69055    type Protocol = SynchronousDatagramSocketMarker;
69056
69057    fn from_channel(inner: fidl::Channel) -> Self {
69058        Self::new(inner)
69059    }
69060
69061    fn into_channel(self) -> fidl::Channel {
69062        self.client.into_channel()
69063    }
69064
69065    fn as_channel(&self) -> &fidl::Channel {
69066        self.client.as_channel()
69067    }
69068}
69069
69070#[cfg(target_os = "fuchsia")]
69071impl SynchronousDatagramSocketSynchronousProxy {
69072    pub fn new(channel: fidl::Channel) -> Self {
69073        let protocol_name =
69074            <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
69075        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
69076    }
69077
69078    pub fn into_channel(self) -> fidl::Channel {
69079        self.client.into_channel()
69080    }
69081
69082    /// Waits until an event arrives and returns it. It is safe for other
69083    /// threads to make concurrent requests while waiting for an event.
69084    pub fn wait_for_event(
69085        &self,
69086        deadline: zx::MonotonicInstant,
69087    ) -> Result<SynchronousDatagramSocketEvent, fidl::Error> {
69088        SynchronousDatagramSocketEvent::decode(self.client.wait_for_event(deadline)?)
69089    }
69090
69091    pub fn r#clone(
69092        &self,
69093        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
69094    ) -> Result<(), fidl::Error> {
69095        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
69096            (request,),
69097            0x20d8a7aba2168a79,
69098            fidl::encoding::DynamicFlags::empty(),
69099        )
69100    }
69101
69102    /// Terminates the connection.
69103    ///
69104    /// After calling `Close`, the client must not send any other requests.
69105    ///
69106    /// Servers, after sending the status response, should close the connection
69107    /// regardless of status and without sending an epitaph.
69108    ///
69109    /// Closing the client end of the channel should be semantically equivalent
69110    /// to calling `Close` without knowing when the close has completed or its
69111    /// status.
69112    pub fn r#close(
69113        &self,
69114        ___deadline: zx::MonotonicInstant,
69115    ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
69116        let _response = self.client.send_query::<
69117            fidl::encoding::EmptyPayload,
69118            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
69119        >(
69120            (),
69121            0x5ac5d459ad7f657e,
69122            fidl::encoding::DynamicFlags::empty(),
69123            ___deadline,
69124        )?;
69125        Ok(_response.map(|x| x))
69126    }
69127
69128    pub fn r#query(&self, ___deadline: zx::MonotonicInstant) -> Result<Vec<u8>, fidl::Error> {
69129        let _response = self.client.send_query::<
69130            fidl::encoding::EmptyPayload,
69131            fidl_fuchsia_unknown::QueryableQueryResponse,
69132        >(
69133            (),
69134            0x2658edee9decfc06,
69135            fidl::encoding::DynamicFlags::empty(),
69136            ___deadline,
69137        )?;
69138        Ok(_response.protocol)
69139    }
69140
69141    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
69142    pub fn r#set_reuse_address(
69143        &self,
69144        mut value: bool,
69145        ___deadline: zx::MonotonicInstant,
69146    ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
69147        let _response =
69148            self.client.send_query::<BaseSocketSetReuseAddressRequest, fidl::encoding::ResultType<
69149                fidl::encoding::EmptyStruct,
69150                fidl_fuchsia_posix::Errno,
69151            >>(
69152                (value,),
69153                0x1fd74ee8b9a4a876,
69154                fidl::encoding::DynamicFlags::empty(),
69155                ___deadline,
69156            )?;
69157        Ok(_response.map(|x| x))
69158    }
69159
69160    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
69161    pub fn r#get_reuse_address(
69162        &self,
69163        ___deadline: zx::MonotonicInstant,
69164    ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
69165        let _response = self
69166            .client
69167            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69168                BaseSocketGetReuseAddressResponse,
69169                fidl_fuchsia_posix::Errno,
69170            >>(
69171                (), 0x67b7206b8d1bc0a5, fidl::encoding::DynamicFlags::empty(), ___deadline
69172            )?;
69173        Ok(_response.map(|x| x.value))
69174    }
69175
69176    /// Get `SOL_SOCKET` -> `SO_ERROR`.
69177    /// Returns the last error if there is an error set on the socket.
69178    pub fn r#get_error(
69179        &self,
69180        ___deadline: zx::MonotonicInstant,
69181    ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
69182        let _response =
69183            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69184                fidl::encoding::EmptyStruct,
69185                fidl_fuchsia_posix::Errno,
69186            >>(
69187                (),
69188                0x5aad39b33e5f6ebb,
69189                fidl::encoding::DynamicFlags::empty(),
69190                ___deadline,
69191            )?;
69192        Ok(_response.map(|x| x))
69193    }
69194
69195    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
69196    pub fn r#set_broadcast(
69197        &self,
69198        mut value: bool,
69199        ___deadline: zx::MonotonicInstant,
69200    ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
69201        let _response =
69202            self.client.send_query::<BaseSocketSetBroadcastRequest, fidl::encoding::ResultType<
69203                fidl::encoding::EmptyStruct,
69204                fidl_fuchsia_posix::Errno,
69205            >>(
69206                (value,),
69207                0x6023e081ce3cd947,
69208                fidl::encoding::DynamicFlags::empty(),
69209                ___deadline,
69210            )?;
69211        Ok(_response.map(|x| x))
69212    }
69213
69214    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
69215    pub fn r#get_broadcast(
69216        &self,
69217        ___deadline: zx::MonotonicInstant,
69218    ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
69219        let _response =
69220            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69221                BaseSocketGetBroadcastResponse,
69222                fidl_fuchsia_posix::Errno,
69223            >>(
69224                (),
69225                0x68796fc556f9780d,
69226                fidl::encoding::DynamicFlags::empty(),
69227                ___deadline,
69228            )?;
69229        Ok(_response.map(|x| x.value))
69230    }
69231
69232    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
69233    pub fn r#set_send_buffer(
69234        &self,
69235        mut value_bytes: u64,
69236        ___deadline: zx::MonotonicInstant,
69237    ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
69238        let _response =
69239            self.client.send_query::<BaseSocketSetSendBufferRequest, fidl::encoding::ResultType<
69240                fidl::encoding::EmptyStruct,
69241                fidl_fuchsia_posix::Errno,
69242            >>(
69243                (value_bytes,),
69244                0x756eac32d73a7a70,
69245                fidl::encoding::DynamicFlags::empty(),
69246                ___deadline,
69247            )?;
69248        Ok(_response.map(|x| x))
69249    }
69250
69251    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
69252    pub fn r#get_send_buffer(
69253        &self,
69254        ___deadline: zx::MonotonicInstant,
69255    ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
69256        let _response = self
69257            .client
69258            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69259                BaseSocketGetSendBufferResponse,
69260                fidl_fuchsia_posix::Errno,
69261            >>(
69262                (), 0x78a52fd9c7b2410b, fidl::encoding::DynamicFlags::empty(), ___deadline
69263            )?;
69264        Ok(_response.map(|x| x.value_bytes))
69265    }
69266
69267    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
69268    pub fn r#set_receive_buffer(
69269        &self,
69270        mut value_bytes: u64,
69271        ___deadline: zx::MonotonicInstant,
69272    ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
69273        let _response =
69274            self.client
69275                .send_query::<BaseSocketSetReceiveBufferRequest, fidl::encoding::ResultType<
69276                    fidl::encoding::EmptyStruct,
69277                    fidl_fuchsia_posix::Errno,
69278                >>(
69279                    (value_bytes,),
69280                    0x6b0cf2f1919c7001,
69281                    fidl::encoding::DynamicFlags::empty(),
69282                    ___deadline,
69283                )?;
69284        Ok(_response.map(|x| x))
69285    }
69286
69287    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
69288    pub fn r#get_receive_buffer(
69289        &self,
69290        ___deadline: zx::MonotonicInstant,
69291    ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
69292        let _response = self
69293            .client
69294            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69295                BaseSocketGetReceiveBufferResponse,
69296                fidl_fuchsia_posix::Errno,
69297            >>(
69298                (), 0x14c1a4b64f709e5c, fidl::encoding::DynamicFlags::empty(), ___deadline
69299            )?;
69300        Ok(_response.map(|x| x.value_bytes))
69301    }
69302
69303    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
69304    pub fn r#set_keep_alive(
69305        &self,
69306        mut value: bool,
69307        ___deadline: zx::MonotonicInstant,
69308    ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
69309        let _response =
69310            self.client.send_query::<BaseSocketSetKeepAliveRequest, fidl::encoding::ResultType<
69311                fidl::encoding::EmptyStruct,
69312                fidl_fuchsia_posix::Errno,
69313            >>(
69314                (value,),
69315                0x572df8f0b920d2c7,
69316                fidl::encoding::DynamicFlags::empty(),
69317                ___deadline,
69318            )?;
69319        Ok(_response.map(|x| x))
69320    }
69321
69322    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
69323    pub fn r#get_keep_alive(
69324        &self,
69325        ___deadline: zx::MonotonicInstant,
69326    ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
69327        let _response =
69328            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69329                BaseSocketGetKeepAliveResponse,
69330                fidl_fuchsia_posix::Errno,
69331            >>(
69332                (),
69333                0x2dd29d3215f2c9d2,
69334                fidl::encoding::DynamicFlags::empty(),
69335                ___deadline,
69336            )?;
69337        Ok(_response.map(|x| x.value))
69338    }
69339
69340    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
69341    pub fn r#set_out_of_band_inline(
69342        &self,
69343        mut value: bool,
69344        ___deadline: zx::MonotonicInstant,
69345    ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
69346        let _response =
69347            self.client
69348                .send_query::<BaseSocketSetOutOfBandInlineRequest, fidl::encoding::ResultType<
69349                    fidl::encoding::EmptyStruct,
69350                    fidl_fuchsia_posix::Errno,
69351                >>(
69352                    (value,),
69353                    0x3ecb49968bee439,
69354                    fidl::encoding::DynamicFlags::empty(),
69355                    ___deadline,
69356                )?;
69357        Ok(_response.map(|x| x))
69358    }
69359
69360    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
69361    pub fn r#get_out_of_band_inline(
69362        &self,
69363        ___deadline: zx::MonotonicInstant,
69364    ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
69365        let _response = self
69366            .client
69367            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69368                BaseSocketGetOutOfBandInlineResponse,
69369                fidl_fuchsia_posix::Errno,
69370            >>(
69371                (), 0x348c1ab3aeca1745, fidl::encoding::DynamicFlags::empty(), ___deadline
69372            )?;
69373        Ok(_response.map(|x| x.value))
69374    }
69375
69376    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
69377    pub fn r#set_no_check(
69378        &self,
69379        mut value: bool,
69380        ___deadline: zx::MonotonicInstant,
69381    ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
69382        let _response =
69383            self.client.send_query::<BaseSocketSetNoCheckRequest, fidl::encoding::ResultType<
69384                fidl::encoding::EmptyStruct,
69385                fidl_fuchsia_posix::Errno,
69386            >>(
69387                (value,),
69388                0x6bbf00c53a4c78c2,
69389                fidl::encoding::DynamicFlags::empty(),
69390                ___deadline,
69391            )?;
69392        Ok(_response.map(|x| x))
69393    }
69394
69395    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
69396    pub fn r#get_no_check(
69397        &self,
69398        ___deadline: zx::MonotonicInstant,
69399    ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
69400        let _response =
69401            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69402                BaseSocketGetNoCheckResponse,
69403                fidl_fuchsia_posix::Errno,
69404            >>(
69405                (),
69406                0x2cd4249286417694,
69407                fidl::encoding::DynamicFlags::empty(),
69408                ___deadline,
69409            )?;
69410        Ok(_response.map(|x| x.value))
69411    }
69412
69413    /// Set `SOL_SOCKET` -> `SO_LINGER`.
69414    pub fn r#set_linger(
69415        &self,
69416        mut linger: bool,
69417        mut length_secs: u32,
69418        ___deadline: zx::MonotonicInstant,
69419    ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
69420        let _response =
69421            self.client.send_query::<BaseSocketSetLingerRequest, fidl::encoding::ResultType<
69422                fidl::encoding::EmptyStruct,
69423                fidl_fuchsia_posix::Errno,
69424            >>(
69425                (linger, length_secs),
69426                0x45386351246e998e,
69427                fidl::encoding::DynamicFlags::empty(),
69428                ___deadline,
69429            )?;
69430        Ok(_response.map(|x| x))
69431    }
69432
69433    /// Get `SOL_SOCKET` -> `SO_LINGER`.
69434    pub fn r#get_linger(
69435        &self,
69436        ___deadline: zx::MonotonicInstant,
69437    ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
69438        let _response =
69439            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69440                BaseSocketGetLingerResponse,
69441                fidl_fuchsia_posix::Errno,
69442            >>(
69443                (),
69444                0x48eb20fc5ccb0e45,
69445                fidl::encoding::DynamicFlags::empty(),
69446                ___deadline,
69447            )?;
69448        Ok(_response.map(|x| (x.linger, x.length_secs)))
69449    }
69450
69451    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
69452    pub fn r#set_reuse_port(
69453        &self,
69454        mut value: bool,
69455        ___deadline: zx::MonotonicInstant,
69456    ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
69457        let _response =
69458            self.client.send_query::<BaseSocketSetReusePortRequest, fidl::encoding::ResultType<
69459                fidl::encoding::EmptyStruct,
69460                fidl_fuchsia_posix::Errno,
69461            >>(
69462                (value,),
69463                0x24dd3e5cb36d9ccb,
69464                fidl::encoding::DynamicFlags::empty(),
69465                ___deadline,
69466            )?;
69467        Ok(_response.map(|x| x))
69468    }
69469
69470    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
69471    pub fn r#get_reuse_port(
69472        &self,
69473        ___deadline: zx::MonotonicInstant,
69474    ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
69475        let _response =
69476            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69477                BaseSocketGetReusePortResponse,
69478                fidl_fuchsia_posix::Errno,
69479            >>(
69480                (),
69481                0x7a112c1ab54ff828,
69482                fidl::encoding::DynamicFlags::empty(),
69483                ___deadline,
69484            )?;
69485        Ok(_response.map(|x| x.value))
69486    }
69487
69488    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
69489    pub fn r#get_accept_conn(
69490        &self,
69491        ___deadline: zx::MonotonicInstant,
69492    ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
69493        let _response = self
69494            .client
69495            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69496                BaseSocketGetAcceptConnResponse,
69497                fidl_fuchsia_posix::Errno,
69498            >>(
69499                (), 0x67ce6db6c2ec8966, fidl::encoding::DynamicFlags::empty(), ___deadline
69500            )?;
69501        Ok(_response.map(|x| x.value))
69502    }
69503
69504    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
69505    pub fn r#set_bind_to_device(
69506        &self,
69507        mut value: &str,
69508        ___deadline: zx::MonotonicInstant,
69509    ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
69510        let _response =
69511            self.client.send_query::<BaseSocketSetBindToDeviceRequest, fidl::encoding::ResultType<
69512                fidl::encoding::EmptyStruct,
69513                fidl_fuchsia_posix::Errno,
69514            >>(
69515                (value,),
69516                0x2118b483f28aafc4,
69517                fidl::encoding::DynamicFlags::empty(),
69518                ___deadline,
69519            )?;
69520        Ok(_response.map(|x| x))
69521    }
69522
69523    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
69524    pub fn r#get_bind_to_device(
69525        &self,
69526        ___deadline: zx::MonotonicInstant,
69527    ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
69528        let _response = self
69529            .client
69530            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69531                BaseSocketGetBindToDeviceResponse,
69532                fidl_fuchsia_posix::Errno,
69533            >>(
69534                (), 0x1ab1fbf0ef7906c8, fidl::encoding::DynamicFlags::empty(), ___deadline
69535            )?;
69536        Ok(_response.map(|x| x.value))
69537    }
69538
69539    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
69540    /// If `value` is 0, this clears the bound interface.
69541    pub fn r#set_bind_to_interface_index(
69542        &self,
69543        mut value: u64,
69544        ___deadline: zx::MonotonicInstant,
69545    ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
69546        let _response =
69547            self.client
69548                .send_query::<BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::ResultType<
69549                    fidl::encoding::EmptyStruct,
69550                    fidl_fuchsia_posix::Errno,
69551                >>(
69552                    (value,),
69553                    0x6e387a0def00821,
69554                    fidl::encoding::DynamicFlags::empty(),
69555                    ___deadline,
69556                )?;
69557        Ok(_response.map(|x| x))
69558    }
69559
69560    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
69561    pub fn r#get_bind_to_interface_index(
69562        &self,
69563        ___deadline: zx::MonotonicInstant,
69564    ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
69565        let _response = self
69566            .client
69567            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69568                BaseSocketGetBindToInterfaceIndexResponse,
69569                fidl_fuchsia_posix::Errno,
69570            >>(
69571                (), 0x59c31dd3e3078295, fidl::encoding::DynamicFlags::empty(), ___deadline
69572            )?;
69573        Ok(_response.map(|x| x.value))
69574    }
69575
69576    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
69577    pub fn r#set_timestamp(
69578        &self,
69579        mut value: TimestampOption,
69580        ___deadline: zx::MonotonicInstant,
69581    ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
69582        let _response =
69583            self.client.send_query::<BaseSocketSetTimestampRequest, fidl::encoding::ResultType<
69584                fidl::encoding::EmptyStruct,
69585                fidl_fuchsia_posix::Errno,
69586            >>(
69587                (value,),
69588                0x285d6516c263d839,
69589                fidl::encoding::DynamicFlags::empty(),
69590                ___deadline,
69591            )?;
69592        Ok(_response.map(|x| x))
69593    }
69594
69595    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
69596    pub fn r#get_timestamp(
69597        &self,
69598        ___deadline: zx::MonotonicInstant,
69599    ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
69600        let _response =
69601            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69602                BaseSocketGetTimestampResponse,
69603                fidl_fuchsia_posix::Errno,
69604            >>(
69605                (),
69606                0x49f2fffbbcc2bd27,
69607                fidl::encoding::DynamicFlags::empty(),
69608                ___deadline,
69609            )?;
69610        Ok(_response.map(|x| x.value))
69611    }
69612
69613    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
69614    /// unlike the standard SO_MARK, this API has multiple mark domains and each
69615    /// mark can be set independently in each domain.
69616    pub fn r#set_mark(
69617        &self,
69618        mut domain: fidl_fuchsia_net::MarkDomain,
69619        mut mark: &OptionalUint32,
69620        ___deadline: zx::MonotonicInstant,
69621    ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
69622        let _response =
69623            self.client.send_query::<BaseSocketSetMarkRequest, fidl::encoding::ResultType<
69624                fidl::encoding::EmptyStruct,
69625                fidl_fuchsia_posix::Errno,
69626            >>(
69627                (domain, mark),
69628                0x6ead6de09f653236,
69629                fidl::encoding::DynamicFlags::empty(),
69630                ___deadline,
69631            )?;
69632        Ok(_response.map(|x| x))
69633    }
69634
69635    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
69636    /// unlike the standard SO_MARK, this API has multiple mark domains and each
69637    /// mark can be retrieved independently in each domain.
69638    pub fn r#get_mark(
69639        &self,
69640        mut domain: fidl_fuchsia_net::MarkDomain,
69641        ___deadline: zx::MonotonicInstant,
69642    ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
69643        let _response =
69644            self.client.send_query::<BaseSocketGetMarkRequest, fidl::encoding::ResultType<
69645                BaseSocketGetMarkResponse,
69646                fidl_fuchsia_posix::Errno,
69647            >>(
69648                (domain,),
69649                0x57a2752c61d93d47,
69650                fidl::encoding::DynamicFlags::empty(),
69651                ___deadline,
69652            )?;
69653        Ok(_response.map(|x| x.mark))
69654    }
69655
69656    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
69657    pub fn r#get_cookie(
69658        &self,
69659        ___deadline: zx::MonotonicInstant,
69660    ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
69661        let _response =
69662            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69663                BaseSocketGetCookieResponse,
69664                fidl_fuchsia_posix::Errno,
69665            >>(
69666                (),
69667                0x2c2f47fd8f924e52,
69668                fidl::encoding::DynamicFlags::empty(),
69669                ___deadline,
69670            )?;
69671        Ok(_response.map(|x| x.value))
69672    }
69673
69674    /// Sets the local address used for the socket.
69675    pub fn r#bind(
69676        &self,
69677        mut addr: &fidl_fuchsia_net::SocketAddress,
69678        ___deadline: zx::MonotonicInstant,
69679    ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
69680        let _response =
69681            self.client.send_query::<BaseNetworkSocketBindRequest, fidl::encoding::ResultType<
69682                fidl::encoding::EmptyStruct,
69683                fidl_fuchsia_posix::Errno,
69684            >>(
69685                (addr,),
69686                0x4bc6400ae92125d,
69687                fidl::encoding::DynamicFlags::empty(),
69688                ___deadline,
69689            )?;
69690        Ok(_response.map(|x| x))
69691    }
69692
69693    /// Initiates a connection to a remote address.
69694    pub fn r#connect(
69695        &self,
69696        mut addr: &fidl_fuchsia_net::SocketAddress,
69697        ___deadline: zx::MonotonicInstant,
69698    ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
69699        let _response =
69700            self.client.send_query::<BaseNetworkSocketConnectRequest, fidl::encoding::ResultType<
69701                fidl::encoding::EmptyStruct,
69702                fidl_fuchsia_posix::Errno,
69703            >>(
69704                (addr,),
69705                0x5f05f19bfdd38871,
69706                fidl::encoding::DynamicFlags::empty(),
69707                ___deadline,
69708            )?;
69709        Ok(_response.map(|x| x))
69710    }
69711
69712    /// Clears connection information from this socket.
69713    pub fn r#disconnect(
69714        &self,
69715        ___deadline: zx::MonotonicInstant,
69716    ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
69717        let _response =
69718            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69719                fidl::encoding::EmptyStruct,
69720                fidl_fuchsia_posix::Errno,
69721            >>(
69722                (),
69723                0x74e63b91f7b29b2,
69724                fidl::encoding::DynamicFlags::empty(),
69725                ___deadline,
69726            )?;
69727        Ok(_response.map(|x| x))
69728    }
69729
69730    /// Retrieves the local socket address.
69731    pub fn r#get_sock_name(
69732        &self,
69733        ___deadline: zx::MonotonicInstant,
69734    ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
69735        let _response = self
69736            .client
69737            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69738                BaseNetworkSocketGetSockNameResponse,
69739                fidl_fuchsia_posix::Errno,
69740            >>(
69741                (), 0x475f23f84a1a4f85, fidl::encoding::DynamicFlags::empty(), ___deadline
69742            )?;
69743        Ok(_response.map(|x| x.addr))
69744    }
69745
69746    /// Retrieves the remote socket address.
69747    pub fn r#get_peer_name(
69748        &self,
69749        ___deadline: zx::MonotonicInstant,
69750    ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
69751        let _response = self
69752            .client
69753            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69754                BaseNetworkSocketGetPeerNameResponse,
69755                fidl_fuchsia_posix::Errno,
69756            >>(
69757                (), 0x1ffecf4bd5b6432e, fidl::encoding::DynamicFlags::empty(), ___deadline
69758            )?;
69759        Ok(_response.map(|x| x.addr))
69760    }
69761
69762    /// Shuts down part of the socket.
69763    pub fn r#shutdown(
69764        &self,
69765        mut mode: ShutdownMode,
69766        ___deadline: zx::MonotonicInstant,
69767    ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
69768        let _response =
69769            self.client.send_query::<BaseNetworkSocketShutdownRequest, fidl::encoding::ResultType<
69770                fidl::encoding::EmptyStruct,
69771                fidl_fuchsia_posix::Errno,
69772            >>(
69773                (mode,),
69774                0x247f38b6db68c336,
69775                fidl::encoding::DynamicFlags::empty(),
69776                ___deadline,
69777            )?;
69778        Ok(_response.map(|x| x))
69779    }
69780
69781    /// Set `SOL_IP` -> `IP_TOS`.
69782    pub fn r#set_ip_type_of_service(
69783        &self,
69784        mut value: u8,
69785        ___deadline: zx::MonotonicInstant,
69786    ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
69787        let _response = self.client.send_query::<
69788            BaseNetworkSocketSetIpTypeOfServiceRequest,
69789            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
69790        >(
69791            (value,),
69792            0x995c600475b6d46,
69793            fidl::encoding::DynamicFlags::empty(),
69794            ___deadline,
69795        )?;
69796        Ok(_response.map(|x| x))
69797    }
69798
69799    /// Get `SOL_IP` -> `IP_TOS`.
69800    pub fn r#get_ip_type_of_service(
69801        &self,
69802        ___deadline: zx::MonotonicInstant,
69803    ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
69804        let _response = self
69805            .client
69806            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69807                BaseNetworkSocketGetIpTypeOfServiceResponse,
69808                fidl_fuchsia_posix::Errno,
69809            >>(
69810                (), 0x3814a04259f75fcb, fidl::encoding::DynamicFlags::empty(), ___deadline
69811            )?;
69812        Ok(_response.map(|x| x.value))
69813    }
69814
69815    /// Set `SOL_IP` -> `IP_TTL`.
69816    pub fn r#set_ip_ttl(
69817        &self,
69818        mut value: &OptionalUint8,
69819        ___deadline: zx::MonotonicInstant,
69820    ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
69821        let _response =
69822            self.client.send_query::<BaseNetworkSocketSetIpTtlRequest, fidl::encoding::ResultType<
69823                fidl::encoding::EmptyStruct,
69824                fidl_fuchsia_posix::Errno,
69825            >>(
69826                (value,),
69827                0x29e2424b433ae1ef,
69828                fidl::encoding::DynamicFlags::empty(),
69829                ___deadline,
69830            )?;
69831        Ok(_response.map(|x| x))
69832    }
69833
69834    /// Get `SOL_IP` -> `IP_TTL`.
69835    pub fn r#get_ip_ttl(
69836        &self,
69837        ___deadline: zx::MonotonicInstant,
69838    ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
69839        let _response = self
69840            .client
69841            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69842                BaseNetworkSocketGetIpTtlResponse,
69843                fidl_fuchsia_posix::Errno,
69844            >>(
69845                (), 0x47e47fa1f24da471, fidl::encoding::DynamicFlags::empty(), ___deadline
69846            )?;
69847        Ok(_response.map(|x| x.value))
69848    }
69849
69850    /// Set `SOL_IP` -> `IP_PKTINFO`.
69851    pub fn r#set_ip_packet_info(
69852        &self,
69853        mut value: bool,
69854        ___deadline: zx::MonotonicInstant,
69855    ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
69856        let _response =
69857            self.client
69858                .send_query::<BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::ResultType<
69859                    fidl::encoding::EmptyStruct,
69860                    fidl_fuchsia_posix::Errno,
69861                >>(
69862                    (value,),
69863                    0x392d16bee20c0e16,
69864                    fidl::encoding::DynamicFlags::empty(),
69865                    ___deadline,
69866                )?;
69867        Ok(_response.map(|x| x))
69868    }
69869
69870    /// Get `SOL_IP` -> `IP_PKTINFO`.
69871    pub fn r#get_ip_packet_info(
69872        &self,
69873        ___deadline: zx::MonotonicInstant,
69874    ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
69875        let _response = self
69876            .client
69877            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69878                BaseNetworkSocketGetIpPacketInfoResponse,
69879                fidl_fuchsia_posix::Errno,
69880            >>(
69881                (), 0x54b505f242280740, fidl::encoding::DynamicFlags::empty(), ___deadline
69882            )?;
69883        Ok(_response.map(|x| x.value))
69884    }
69885
69886    /// Set `SOL_IP` -> `IP_RECVTOS`.
69887    pub fn r#set_ip_receive_type_of_service(
69888        &self,
69889        mut value: bool,
69890        ___deadline: zx::MonotonicInstant,
69891    ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
69892        let _response = self.client.send_query::<
69893            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
69894            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
69895        >(
69896            (value,),
69897            0x6c4f6714995f84ef,
69898            fidl::encoding::DynamicFlags::empty(),
69899            ___deadline,
69900        )?;
69901        Ok(_response.map(|x| x))
69902    }
69903
69904    /// Get `SOL_IP` -> `IP_RECVTOS`.
69905    pub fn r#get_ip_receive_type_of_service(
69906        &self,
69907        ___deadline: zx::MonotonicInstant,
69908    ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
69909        let _response = self
69910            .client
69911            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69912                BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
69913                fidl_fuchsia_posix::Errno,
69914            >>(
69915                (), 0x4158ba7dc2795960, fidl::encoding::DynamicFlags::empty(), ___deadline
69916            )?;
69917        Ok(_response.map(|x| x.value))
69918    }
69919
69920    /// Set `SOL_IP` -> `IP_RECVTTL`.
69921    pub fn r#set_ip_receive_ttl(
69922        &self,
69923        mut value: bool,
69924        ___deadline: zx::MonotonicInstant,
69925    ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
69926        let _response =
69927            self.client
69928                .send_query::<BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::ResultType<
69929                    fidl::encoding::EmptyStruct,
69930                    fidl_fuchsia_posix::Errno,
69931                >>(
69932                    (value,),
69933                    0x46f15be0ce0ab82b,
69934                    fidl::encoding::DynamicFlags::empty(),
69935                    ___deadline,
69936                )?;
69937        Ok(_response.map(|x| x))
69938    }
69939
69940    /// Get `SOL_IP` -> `IP_RECVTTL`.
69941    pub fn r#get_ip_receive_ttl(
69942        &self,
69943        ___deadline: zx::MonotonicInstant,
69944    ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
69945        let _response = self
69946            .client
69947            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69948                BaseNetworkSocketGetIpReceiveTtlResponse,
69949                fidl_fuchsia_posix::Errno,
69950            >>(
69951                (), 0x678ddd5a5dfa2eb5, fidl::encoding::DynamicFlags::empty(), ___deadline
69952            )?;
69953        Ok(_response.map(|x| x.value))
69954    }
69955
69956    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
69957    pub fn r#set_ip_multicast_interface(
69958        &self,
69959        mut iface: u64,
69960        mut address: &fidl_fuchsia_net::Ipv4Address,
69961        ___deadline: zx::MonotonicInstant,
69962    ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
69963        let _response = self.client.send_query::<
69964            BaseNetworkSocketSetIpMulticastInterfaceRequest,
69965            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
69966        >(
69967            (iface, address,),
69968            0x752fbfa9b12befe,
69969            fidl::encoding::DynamicFlags::empty(),
69970            ___deadline,
69971        )?;
69972        Ok(_response.map(|x| x))
69973    }
69974
69975    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
69976    pub fn r#get_ip_multicast_interface(
69977        &self,
69978        ___deadline: zx::MonotonicInstant,
69979    ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
69980        let _response = self
69981            .client
69982            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
69983                BaseNetworkSocketGetIpMulticastInterfaceResponse,
69984                fidl_fuchsia_posix::Errno,
69985            >>(
69986                (), 0x320bd14c4df046c4, fidl::encoding::DynamicFlags::empty(), ___deadline
69987            )?;
69988        Ok(_response.map(|x| x.value))
69989    }
69990
69991    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
69992    pub fn r#set_ip_multicast_ttl(
69993        &self,
69994        mut value: &OptionalUint8,
69995        ___deadline: zx::MonotonicInstant,
69996    ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
69997        let _response =
69998            self.client
69999                .send_query::<BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::ResultType<
70000                    fidl::encoding::EmptyStruct,
70001                    fidl_fuchsia_posix::Errno,
70002                >>(
70003                    (value,),
70004                    0x63134d53772916a1,
70005                    fidl::encoding::DynamicFlags::empty(),
70006                    ___deadline,
70007                )?;
70008        Ok(_response.map(|x| x))
70009    }
70010
70011    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
70012    pub fn r#get_ip_multicast_ttl(
70013        &self,
70014        ___deadline: zx::MonotonicInstant,
70015    ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
70016        let _response = self
70017            .client
70018            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70019                BaseNetworkSocketGetIpMulticastTtlResponse,
70020                fidl_fuchsia_posix::Errno,
70021            >>(
70022                (), 0x4665cd378f39e1a, fidl::encoding::DynamicFlags::empty(), ___deadline
70023            )?;
70024        Ok(_response.map(|x| x.value))
70025    }
70026
70027    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
70028    pub fn r#set_ip_multicast_loopback(
70029        &self,
70030        mut value: bool,
70031        ___deadline: zx::MonotonicInstant,
70032    ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
70033        let _response = self.client.send_query::<
70034            BaseNetworkSocketSetIpMulticastLoopbackRequest,
70035            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70036        >(
70037            (value,),
70038            0x20c55c11f00943ea,
70039            fidl::encoding::DynamicFlags::empty(),
70040            ___deadline,
70041        )?;
70042        Ok(_response.map(|x| x))
70043    }
70044
70045    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
70046    pub fn r#get_ip_multicast_loopback(
70047        &self,
70048        ___deadline: zx::MonotonicInstant,
70049    ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
70050        let _response = self
70051            .client
70052            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70053                BaseNetworkSocketGetIpMulticastLoopbackResponse,
70054                fidl_fuchsia_posix::Errno,
70055            >>(
70056                (), 0x3b6b26ff558298f2, fidl::encoding::DynamicFlags::empty(), ___deadline
70057            )?;
70058        Ok(_response.map(|x| x.value))
70059    }
70060
70061    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
70062    pub fn r#add_ip_membership(
70063        &self,
70064        mut membership: &IpMulticastMembership,
70065        ___deadline: zx::MonotonicInstant,
70066    ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
70067        let _response =
70068            self.client
70069                .send_query::<BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::ResultType<
70070                    fidl::encoding::EmptyStruct,
70071                    fidl_fuchsia_posix::Errno,
70072                >>(
70073                    (membership,),
70074                    0x76bc7df115a3b4d0,
70075                    fidl::encoding::DynamicFlags::empty(),
70076                    ___deadline,
70077                )?;
70078        Ok(_response.map(|x| x))
70079    }
70080
70081    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
70082    pub fn r#drop_ip_membership(
70083        &self,
70084        mut membership: &IpMulticastMembership,
70085        ___deadline: zx::MonotonicInstant,
70086    ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
70087        let _response =
70088            self.client
70089                .send_query::<BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::ResultType<
70090                    fidl::encoding::EmptyStruct,
70091                    fidl_fuchsia_posix::Errno,
70092                >>(
70093                    (membership,),
70094                    0x2888f3099188d03,
70095                    fidl::encoding::DynamicFlags::empty(),
70096                    ___deadline,
70097                )?;
70098        Ok(_response.map(|x| x))
70099    }
70100
70101    /// Set `SOL_IP` -> `IP_TRANSPARENT`
70102    pub fn r#set_ip_transparent(
70103        &self,
70104        mut value: bool,
70105        ___deadline: zx::MonotonicInstant,
70106    ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
70107        let _response =
70108            self.client
70109                .send_query::<BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::ResultType<
70110                    fidl::encoding::EmptyStruct,
70111                    fidl_fuchsia_posix::Errno,
70112                >>(
70113                    (value,),
70114                    0x1ae532b0c066e3a0,
70115                    fidl::encoding::DynamicFlags::empty(),
70116                    ___deadline,
70117                )?;
70118        Ok(_response.map(|x| x))
70119    }
70120
70121    /// Get `SOL_IP` -> `IP_TRANSPARENT`
70122    pub fn r#get_ip_transparent(
70123        &self,
70124        ___deadline: zx::MonotonicInstant,
70125    ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
70126        let _response = self
70127            .client
70128            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70129                BaseNetworkSocketGetIpTransparentResponse,
70130                fidl_fuchsia_posix::Errno,
70131            >>(
70132                (), 0x51d43695962ebfb5, fidl::encoding::DynamicFlags::empty(), ___deadline
70133            )?;
70134        Ok(_response.map(|x| x.value))
70135    }
70136
70137    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
70138    pub fn r#set_ip_receive_original_destination_address(
70139        &self,
70140        mut value: bool,
70141        ___deadline: zx::MonotonicInstant,
70142    ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
70143        let _response = self.client.send_query::<
70144            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
70145            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70146        >(
70147            (value,),
70148            0x4722b4ce52f7840,
70149            fidl::encoding::DynamicFlags::empty(),
70150            ___deadline,
70151        )?;
70152        Ok(_response.map(|x| x))
70153    }
70154
70155    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
70156    pub fn r#get_ip_receive_original_destination_address(
70157        &self,
70158        ___deadline: zx::MonotonicInstant,
70159    ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error> {
70160        let _response = self
70161            .client
70162            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70163                BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
70164                fidl_fuchsia_posix::Errno,
70165            >>(
70166                (), 0x2a0e7dc5d6bfdfe9, fidl::encoding::DynamicFlags::empty(), ___deadline
70167            )?;
70168        Ok(_response.map(|x| x.value))
70169    }
70170
70171    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
70172    pub fn r#add_ipv6_membership(
70173        &self,
70174        mut membership: &Ipv6MulticastMembership,
70175        ___deadline: zx::MonotonicInstant,
70176    ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
70177        let _response =
70178            self.client
70179                .send_query::<BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::ResultType<
70180                    fidl::encoding::EmptyStruct,
70181                    fidl_fuchsia_posix::Errno,
70182                >>(
70183                    (membership,),
70184                    0x7c94727acb4ea4b3,
70185                    fidl::encoding::DynamicFlags::empty(),
70186                    ___deadline,
70187                )?;
70188        Ok(_response.map(|x| x))
70189    }
70190
70191    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
70192    pub fn r#drop_ipv6_membership(
70193        &self,
70194        mut membership: &Ipv6MulticastMembership,
70195        ___deadline: zx::MonotonicInstant,
70196    ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
70197        let _response = self.client.send_query::<
70198            BaseNetworkSocketDropIpv6MembershipRequest,
70199            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70200        >(
70201            (membership,),
70202            0x42104c70ccaba304,
70203            fidl::encoding::DynamicFlags::empty(),
70204            ___deadline,
70205        )?;
70206        Ok(_response.map(|x| x))
70207    }
70208
70209    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
70210    pub fn r#set_ipv6_multicast_interface(
70211        &self,
70212        mut value: u64,
70213        ___deadline: zx::MonotonicInstant,
70214    ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
70215        let _response = self.client.send_query::<
70216            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
70217            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70218        >(
70219            (value,),
70220            0x135f76db3774ab3b,
70221            fidl::encoding::DynamicFlags::empty(),
70222            ___deadline,
70223        )?;
70224        Ok(_response.map(|x| x))
70225    }
70226
70227    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
70228    pub fn r#get_ipv6_multicast_interface(
70229        &self,
70230        ___deadline: zx::MonotonicInstant,
70231    ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
70232        let _response = self
70233            .client
70234            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70235                BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
70236                fidl_fuchsia_posix::Errno,
70237            >>(
70238                (), 0x1f26fcdd348f1882, fidl::encoding::DynamicFlags::empty(), ___deadline
70239            )?;
70240        Ok(_response.map(|x| x.value))
70241    }
70242
70243    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
70244    pub fn r#set_ipv6_unicast_hops(
70245        &self,
70246        mut value: &OptionalUint8,
70247        ___deadline: zx::MonotonicInstant,
70248    ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
70249        let _response = self.client.send_query::<
70250            BaseNetworkSocketSetIpv6UnicastHopsRequest,
70251            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70252        >(
70253            (value,),
70254            0x157d51e98f462859,
70255            fidl::encoding::DynamicFlags::empty(),
70256            ___deadline,
70257        )?;
70258        Ok(_response.map(|x| x))
70259    }
70260
70261    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
70262    pub fn r#get_ipv6_unicast_hops(
70263        &self,
70264        ___deadline: zx::MonotonicInstant,
70265    ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
70266        let _response = self
70267            .client
70268            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70269                BaseNetworkSocketGetIpv6UnicastHopsResponse,
70270                fidl_fuchsia_posix::Errno,
70271            >>(
70272                (), 0x21f4641cad8bd8d2, fidl::encoding::DynamicFlags::empty(), ___deadline
70273            )?;
70274        Ok(_response.map(|x| x.value))
70275    }
70276
70277    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
70278    pub fn r#set_ipv6_receive_hop_limit(
70279        &self,
70280        mut value: bool,
70281        ___deadline: zx::MonotonicInstant,
70282    ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
70283        let _response = self.client.send_query::<
70284            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
70285            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70286        >(
70287            (value,),
70288            0x5c24808ed2e84a1e,
70289            fidl::encoding::DynamicFlags::empty(),
70290            ___deadline,
70291        )?;
70292        Ok(_response.map(|x| x))
70293    }
70294
70295    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
70296    pub fn r#get_ipv6_receive_hop_limit(
70297        &self,
70298        ___deadline: zx::MonotonicInstant,
70299    ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
70300        let _response = self
70301            .client
70302            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70303                BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
70304                fidl_fuchsia_posix::Errno,
70305            >>(
70306                (), 0x341e06689885b4c0, fidl::encoding::DynamicFlags::empty(), ___deadline
70307            )?;
70308        Ok(_response.map(|x| x.value))
70309    }
70310
70311    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
70312    pub fn r#set_ipv6_multicast_hops(
70313        &self,
70314        mut value: &OptionalUint8,
70315        ___deadline: zx::MonotonicInstant,
70316    ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
70317        let _response = self.client.send_query::<
70318            BaseNetworkSocketSetIpv6MulticastHopsRequest,
70319            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70320        >(
70321            (value,),
70322            0x25b9cd4d181f82c1,
70323            fidl::encoding::DynamicFlags::empty(),
70324            ___deadline,
70325        )?;
70326        Ok(_response.map(|x| x))
70327    }
70328
70329    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
70330    pub fn r#get_ipv6_multicast_hops(
70331        &self,
70332        ___deadline: zx::MonotonicInstant,
70333    ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
70334        let _response = self
70335            .client
70336            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70337                BaseNetworkSocketGetIpv6MulticastHopsResponse,
70338                fidl_fuchsia_posix::Errno,
70339            >>(
70340                (), 0x52916948a365012a, fidl::encoding::DynamicFlags::empty(), ___deadline
70341            )?;
70342        Ok(_response.map(|x| x.value))
70343    }
70344
70345    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
70346    pub fn r#set_ipv6_multicast_loopback(
70347        &self,
70348        mut value: bool,
70349        ___deadline: zx::MonotonicInstant,
70350    ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
70351        let _response = self.client.send_query::<
70352            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
70353            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70354        >(
70355            (value,),
70356            0x55701c409ff41b40,
70357            fidl::encoding::DynamicFlags::empty(),
70358            ___deadline,
70359        )?;
70360        Ok(_response.map(|x| x))
70361    }
70362
70363    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
70364    pub fn r#get_ipv6_multicast_loopback(
70365        &self,
70366        ___deadline: zx::MonotonicInstant,
70367    ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
70368        let _response = self
70369            .client
70370            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70371                BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
70372                fidl_fuchsia_posix::Errno,
70373            >>(
70374                (), 0x4415b701fde319c3, fidl::encoding::DynamicFlags::empty(), ___deadline
70375            )?;
70376        Ok(_response.map(|x| x.value))
70377    }
70378
70379    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
70380    pub fn r#set_ipv6_only(
70381        &self,
70382        mut value: bool,
70383        ___deadline: zx::MonotonicInstant,
70384    ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
70385        let _response =
70386            self.client
70387                .send_query::<BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::ResultType<
70388                    fidl::encoding::EmptyStruct,
70389                    fidl_fuchsia_posix::Errno,
70390                >>(
70391                    (value,),
70392                    0x4873f1364758cbba,
70393                    fidl::encoding::DynamicFlags::empty(),
70394                    ___deadline,
70395                )?;
70396        Ok(_response.map(|x| x))
70397    }
70398
70399    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
70400    pub fn r#get_ipv6_only(
70401        &self,
70402        ___deadline: zx::MonotonicInstant,
70403    ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
70404        let _response = self
70405            .client
70406            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70407                BaseNetworkSocketGetIpv6OnlyResponse,
70408                fidl_fuchsia_posix::Errno,
70409            >>(
70410                (), 0x4aa3340a1a26b89c, fidl::encoding::DynamicFlags::empty(), ___deadline
70411            )?;
70412        Ok(_response.map(|x| x.value))
70413    }
70414
70415    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
70416    pub fn r#set_ipv6_receive_traffic_class(
70417        &self,
70418        mut value: bool,
70419        ___deadline: zx::MonotonicInstant,
70420    ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
70421        let _response = self.client.send_query::<
70422            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
70423            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70424        >(
70425            (value,),
70426            0x58f07c8788d099a0,
70427            fidl::encoding::DynamicFlags::empty(),
70428            ___deadline,
70429        )?;
70430        Ok(_response.map(|x| x))
70431    }
70432
70433    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
70434    pub fn r#get_ipv6_receive_traffic_class(
70435        &self,
70436        ___deadline: zx::MonotonicInstant,
70437    ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
70438        let _response = self
70439            .client
70440            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70441                BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
70442                fidl_fuchsia_posix::Errno,
70443            >>(
70444                (), 0x2e334df1da553ffa, fidl::encoding::DynamicFlags::empty(), ___deadline
70445            )?;
70446        Ok(_response.map(|x| x.value))
70447    }
70448
70449    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
70450    pub fn r#set_ipv6_traffic_class(
70451        &self,
70452        mut value: &OptionalUint8,
70453        ___deadline: zx::MonotonicInstant,
70454    ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
70455        let _response = self.client.send_query::<
70456            BaseNetworkSocketSetIpv6TrafficClassRequest,
70457            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70458        >(
70459            (value,),
70460            0x6af077800c5a0b4f,
70461            fidl::encoding::DynamicFlags::empty(),
70462            ___deadline,
70463        )?;
70464        Ok(_response.map(|x| x))
70465    }
70466
70467    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
70468    pub fn r#get_ipv6_traffic_class(
70469        &self,
70470        ___deadline: zx::MonotonicInstant,
70471    ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
70472        let _response = self
70473            .client
70474            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70475                BaseNetworkSocketGetIpv6TrafficClassResponse,
70476                fidl_fuchsia_posix::Errno,
70477            >>(
70478                (), 0x6baf6eed8fc2f04, fidl::encoding::DynamicFlags::empty(), ___deadline
70479            )?;
70480        Ok(_response.map(|x| x.value))
70481    }
70482
70483    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
70484    pub fn r#set_ipv6_receive_packet_info(
70485        &self,
70486        mut value: bool,
70487        ___deadline: zx::MonotonicInstant,
70488    ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
70489        let _response = self.client.send_query::<
70490            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
70491            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
70492        >(
70493            (value,),
70494            0x19259775b1a92768,
70495            fidl::encoding::DynamicFlags::empty(),
70496            ___deadline,
70497        )?;
70498        Ok(_response.map(|x| x))
70499    }
70500
70501    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
70502    pub fn r#get_ipv6_receive_packet_info(
70503        &self,
70504        ___deadline: zx::MonotonicInstant,
70505    ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
70506        let _response = self
70507            .client
70508            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70509                BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
70510                fidl_fuchsia_posix::Errno,
70511            >>(
70512                (), 0x7acd4a2775baec75, fidl::encoding::DynamicFlags::empty(), ___deadline
70513            )?;
70514        Ok(_response.map(|x| x.value))
70515    }
70516
70517    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
70518    pub fn r#get_original_destination(
70519        &self,
70520        ___deadline: zx::MonotonicInstant,
70521    ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
70522        let _response = self
70523            .client
70524            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70525                BaseNetworkSocketGetOriginalDestinationResponse,
70526                fidl_fuchsia_posix::Errno,
70527            >>(
70528                (), 0x38bf28f0dafdbac0, fidl::encoding::DynamicFlags::empty(), ___deadline
70529            )?;
70530        Ok(_response.map(|x| x.value))
70531    }
70532
70533    /// Retrieves creation information from the socket.
70534    ///
70535    /// - response `domain` the socket's associated domain.
70536    /// - response `proto` the socket's associated protocol.
70537    pub fn r#get_info(
70538        &self,
70539        ___deadline: zx::MonotonicInstant,
70540    ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
70541        let _response = self
70542            .client
70543            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
70544                BaseDatagramSocketGetInfoResponse,
70545                fidl_fuchsia_posix::Errno,
70546            >>(
70547                (), 0x48aa0a1f6a32d2ed, fidl::encoding::DynamicFlags::empty(), ___deadline
70548            )?;
70549        Ok(_response.map(|x| (x.domain, x.proto)))
70550    }
70551
70552    pub fn r#describe(
70553        &self,
70554        ___deadline: zx::MonotonicInstant,
70555    ) -> Result<SynchronousDatagramSocketDescribeResponse, fidl::Error> {
70556        let _response = self
70557            .client
70558            .send_query::<fidl::encoding::EmptyPayload, SynchronousDatagramSocketDescribeResponse>(
70559                (),
70560                0x585f20b73631070d,
70561                fidl::encoding::DynamicFlags::empty(),
70562                ___deadline,
70563            )?;
70564        Ok(_response)
70565    }
70566
70567    /// Receives a message from the socket.
70568    ///
70569    /// + request `want_addr` request message's source address information to
70570    ///   be returned.
70571    /// + request `data_len` the maximum allowed length of the response data
70572    ///   buffer.
70573    /// + request `want_control` request ancillary data to be returned.
70574    /// + request `flags` flags for the receive request.
70575    /// - response `addr` the message's source address information, if
70576    ///   requested.
70577    /// - response `data` the message.
70578    /// - response `control` control messages, if requested.
70579    /// - response `truncated` indicates whether or not the returned message
70580    ///   was truncated.
70581    pub fn r#recv_msg(
70582        &self,
70583        mut want_addr: bool,
70584        mut data_len: u32,
70585        mut want_control: bool,
70586        mut flags: RecvMsgFlags,
70587        ___deadline: zx::MonotonicInstant,
70588    ) -> Result<SynchronousDatagramSocketRecvMsgResult, fidl::Error> {
70589        let _response = self
70590            .client
70591            .send_query::<SynchronousDatagramSocketRecvMsgRequest, fidl::encoding::ResultType<
70592                SynchronousDatagramSocketRecvMsgResponse,
70593                fidl_fuchsia_posix::Errno,
70594            >>(
70595                (want_addr, data_len, want_control, flags),
70596                0x28e494e48fb5dbf3,
70597                fidl::encoding::DynamicFlags::empty(),
70598                ___deadline,
70599            )?;
70600        Ok(_response.map(|x| (x.addr, x.data, x.control, x.truncated)))
70601    }
70602
70603    /// Sends a message on the socket.
70604    ///
70605    /// + request `addr` the address to send the message to. If unset, will send
70606    ///   to the connected peer.
70607    /// + request `data` the message.
70608    /// + request `control` ancillary data.
70609    /// + request `flags` flags for the send request.
70610    /// - response `len` the number of bytes sent.
70611    pub fn r#send_msg(
70612        &self,
70613        mut addr: Option<&fidl_fuchsia_net::SocketAddress>,
70614        mut data: &[u8],
70615        mut control: &DatagramSocketSendControlData,
70616        mut flags: SendMsgFlags,
70617        ___deadline: zx::MonotonicInstant,
70618    ) -> Result<SynchronousDatagramSocketSendMsgResult, fidl::Error> {
70619        let _response = self
70620            .client
70621            .send_query::<SynchronousDatagramSocketSendMsgRequest, fidl::encoding::ResultType<
70622                SynchronousDatagramSocketSendMsgResponse,
70623                fidl_fuchsia_posix::Errno,
70624            >>(
70625                (addr, data, control, flags),
70626                0x12dc2fceab6cefaa,
70627                fidl::encoding::DynamicFlags::empty(),
70628                ___deadline,
70629            )?;
70630        Ok(_response.map(|x| x.len))
70631    }
70632}
70633
70634#[cfg(target_os = "fuchsia")]
70635impl From<SynchronousDatagramSocketSynchronousProxy> for zx::Handle {
70636    fn from(value: SynchronousDatagramSocketSynchronousProxy) -> Self {
70637        value.into_channel().into()
70638    }
70639}
70640
70641#[cfg(target_os = "fuchsia")]
70642impl From<fidl::Channel> for SynchronousDatagramSocketSynchronousProxy {
70643    fn from(value: fidl::Channel) -> Self {
70644        Self::new(value)
70645    }
70646}
70647
70648#[cfg(target_os = "fuchsia")]
70649impl fidl::endpoints::FromClient for SynchronousDatagramSocketSynchronousProxy {
70650    type Protocol = SynchronousDatagramSocketMarker;
70651
70652    fn from_client(value: fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>) -> Self {
70653        Self::new(value.into_channel())
70654    }
70655}
70656
70657#[derive(Debug, Clone)]
70658pub struct SynchronousDatagramSocketProxy {
70659    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
70660}
70661
70662impl fidl::endpoints::Proxy for SynchronousDatagramSocketProxy {
70663    type Protocol = SynchronousDatagramSocketMarker;
70664
70665    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
70666        Self::new(inner)
70667    }
70668
70669    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
70670        self.client.into_channel().map_err(|client| Self { client })
70671    }
70672
70673    fn as_channel(&self) -> &::fidl::AsyncChannel {
70674        self.client.as_channel()
70675    }
70676}
70677
70678impl SynchronousDatagramSocketProxy {
70679    /// Create a new Proxy for fuchsia.posix.socket/SynchronousDatagramSocket.
70680    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
70681        let protocol_name =
70682            <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
70683        Self { client: fidl::client::Client::new(channel, protocol_name) }
70684    }
70685
70686    /// Get a Stream of events from the remote end of the protocol.
70687    ///
70688    /// # Panics
70689    ///
70690    /// Panics if the event stream was already taken.
70691    pub fn take_event_stream(&self) -> SynchronousDatagramSocketEventStream {
70692        SynchronousDatagramSocketEventStream { event_receiver: self.client.take_event_receiver() }
70693    }
70694
70695    pub fn r#clone(
70696        &self,
70697        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
70698    ) -> Result<(), fidl::Error> {
70699        SynchronousDatagramSocketProxyInterface::r#clone(self, request)
70700    }
70701
70702    /// Terminates the connection.
70703    ///
70704    /// After calling `Close`, the client must not send any other requests.
70705    ///
70706    /// Servers, after sending the status response, should close the connection
70707    /// regardless of status and without sending an epitaph.
70708    ///
70709    /// Closing the client end of the channel should be semantically equivalent
70710    /// to calling `Close` without knowing when the close has completed or its
70711    /// status.
70712    pub fn r#close(
70713        &self,
70714    ) -> fidl::client::QueryResponseFut<
70715        fidl_fuchsia_unknown::CloseableCloseResult,
70716        fidl::encoding::DefaultFuchsiaResourceDialect,
70717    > {
70718        SynchronousDatagramSocketProxyInterface::r#close(self)
70719    }
70720
70721    pub fn r#query(
70722        &self,
70723    ) -> fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>
70724    {
70725        SynchronousDatagramSocketProxyInterface::r#query(self)
70726    }
70727
70728    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
70729    pub fn r#set_reuse_address(
70730        &self,
70731        mut value: bool,
70732    ) -> fidl::client::QueryResponseFut<
70733        BaseSocketSetReuseAddressResult,
70734        fidl::encoding::DefaultFuchsiaResourceDialect,
70735    > {
70736        SynchronousDatagramSocketProxyInterface::r#set_reuse_address(self, value)
70737    }
70738
70739    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
70740    pub fn r#get_reuse_address(
70741        &self,
70742    ) -> fidl::client::QueryResponseFut<
70743        BaseSocketGetReuseAddressResult,
70744        fidl::encoding::DefaultFuchsiaResourceDialect,
70745    > {
70746        SynchronousDatagramSocketProxyInterface::r#get_reuse_address(self)
70747    }
70748
70749    /// Get `SOL_SOCKET` -> `SO_ERROR`.
70750    /// Returns the last error if there is an error set on the socket.
70751    pub fn r#get_error(
70752        &self,
70753    ) -> fidl::client::QueryResponseFut<
70754        BaseSocketGetErrorResult,
70755        fidl::encoding::DefaultFuchsiaResourceDialect,
70756    > {
70757        SynchronousDatagramSocketProxyInterface::r#get_error(self)
70758    }
70759
70760    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
70761    pub fn r#set_broadcast(
70762        &self,
70763        mut value: bool,
70764    ) -> fidl::client::QueryResponseFut<
70765        BaseSocketSetBroadcastResult,
70766        fidl::encoding::DefaultFuchsiaResourceDialect,
70767    > {
70768        SynchronousDatagramSocketProxyInterface::r#set_broadcast(self, value)
70769    }
70770
70771    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
70772    pub fn r#get_broadcast(
70773        &self,
70774    ) -> fidl::client::QueryResponseFut<
70775        BaseSocketGetBroadcastResult,
70776        fidl::encoding::DefaultFuchsiaResourceDialect,
70777    > {
70778        SynchronousDatagramSocketProxyInterface::r#get_broadcast(self)
70779    }
70780
70781    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
70782    pub fn r#set_send_buffer(
70783        &self,
70784        mut value_bytes: u64,
70785    ) -> fidl::client::QueryResponseFut<
70786        BaseSocketSetSendBufferResult,
70787        fidl::encoding::DefaultFuchsiaResourceDialect,
70788    > {
70789        SynchronousDatagramSocketProxyInterface::r#set_send_buffer(self, value_bytes)
70790    }
70791
70792    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
70793    pub fn r#get_send_buffer(
70794        &self,
70795    ) -> fidl::client::QueryResponseFut<
70796        BaseSocketGetSendBufferResult,
70797        fidl::encoding::DefaultFuchsiaResourceDialect,
70798    > {
70799        SynchronousDatagramSocketProxyInterface::r#get_send_buffer(self)
70800    }
70801
70802    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
70803    pub fn r#set_receive_buffer(
70804        &self,
70805        mut value_bytes: u64,
70806    ) -> fidl::client::QueryResponseFut<
70807        BaseSocketSetReceiveBufferResult,
70808        fidl::encoding::DefaultFuchsiaResourceDialect,
70809    > {
70810        SynchronousDatagramSocketProxyInterface::r#set_receive_buffer(self, value_bytes)
70811    }
70812
70813    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
70814    pub fn r#get_receive_buffer(
70815        &self,
70816    ) -> fidl::client::QueryResponseFut<
70817        BaseSocketGetReceiveBufferResult,
70818        fidl::encoding::DefaultFuchsiaResourceDialect,
70819    > {
70820        SynchronousDatagramSocketProxyInterface::r#get_receive_buffer(self)
70821    }
70822
70823    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
70824    pub fn r#set_keep_alive(
70825        &self,
70826        mut value: bool,
70827    ) -> fidl::client::QueryResponseFut<
70828        BaseSocketSetKeepAliveResult,
70829        fidl::encoding::DefaultFuchsiaResourceDialect,
70830    > {
70831        SynchronousDatagramSocketProxyInterface::r#set_keep_alive(self, value)
70832    }
70833
70834    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
70835    pub fn r#get_keep_alive(
70836        &self,
70837    ) -> fidl::client::QueryResponseFut<
70838        BaseSocketGetKeepAliveResult,
70839        fidl::encoding::DefaultFuchsiaResourceDialect,
70840    > {
70841        SynchronousDatagramSocketProxyInterface::r#get_keep_alive(self)
70842    }
70843
70844    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
70845    pub fn r#set_out_of_band_inline(
70846        &self,
70847        mut value: bool,
70848    ) -> fidl::client::QueryResponseFut<
70849        BaseSocketSetOutOfBandInlineResult,
70850        fidl::encoding::DefaultFuchsiaResourceDialect,
70851    > {
70852        SynchronousDatagramSocketProxyInterface::r#set_out_of_band_inline(self, value)
70853    }
70854
70855    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
70856    pub fn r#get_out_of_band_inline(
70857        &self,
70858    ) -> fidl::client::QueryResponseFut<
70859        BaseSocketGetOutOfBandInlineResult,
70860        fidl::encoding::DefaultFuchsiaResourceDialect,
70861    > {
70862        SynchronousDatagramSocketProxyInterface::r#get_out_of_band_inline(self)
70863    }
70864
70865    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
70866    pub fn r#set_no_check(
70867        &self,
70868        mut value: bool,
70869    ) -> fidl::client::QueryResponseFut<
70870        BaseSocketSetNoCheckResult,
70871        fidl::encoding::DefaultFuchsiaResourceDialect,
70872    > {
70873        SynchronousDatagramSocketProxyInterface::r#set_no_check(self, value)
70874    }
70875
70876    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
70877    pub fn r#get_no_check(
70878        &self,
70879    ) -> fidl::client::QueryResponseFut<
70880        BaseSocketGetNoCheckResult,
70881        fidl::encoding::DefaultFuchsiaResourceDialect,
70882    > {
70883        SynchronousDatagramSocketProxyInterface::r#get_no_check(self)
70884    }
70885
70886    /// Set `SOL_SOCKET` -> `SO_LINGER`.
70887    pub fn r#set_linger(
70888        &self,
70889        mut linger: bool,
70890        mut length_secs: u32,
70891    ) -> fidl::client::QueryResponseFut<
70892        BaseSocketSetLingerResult,
70893        fidl::encoding::DefaultFuchsiaResourceDialect,
70894    > {
70895        SynchronousDatagramSocketProxyInterface::r#set_linger(self, linger, length_secs)
70896    }
70897
70898    /// Get `SOL_SOCKET` -> `SO_LINGER`.
70899    pub fn r#get_linger(
70900        &self,
70901    ) -> fidl::client::QueryResponseFut<
70902        BaseSocketGetLingerResult,
70903        fidl::encoding::DefaultFuchsiaResourceDialect,
70904    > {
70905        SynchronousDatagramSocketProxyInterface::r#get_linger(self)
70906    }
70907
70908    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
70909    pub fn r#set_reuse_port(
70910        &self,
70911        mut value: bool,
70912    ) -> fidl::client::QueryResponseFut<
70913        BaseSocketSetReusePortResult,
70914        fidl::encoding::DefaultFuchsiaResourceDialect,
70915    > {
70916        SynchronousDatagramSocketProxyInterface::r#set_reuse_port(self, value)
70917    }
70918
70919    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
70920    pub fn r#get_reuse_port(
70921        &self,
70922    ) -> fidl::client::QueryResponseFut<
70923        BaseSocketGetReusePortResult,
70924        fidl::encoding::DefaultFuchsiaResourceDialect,
70925    > {
70926        SynchronousDatagramSocketProxyInterface::r#get_reuse_port(self)
70927    }
70928
70929    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
70930    pub fn r#get_accept_conn(
70931        &self,
70932    ) -> fidl::client::QueryResponseFut<
70933        BaseSocketGetAcceptConnResult,
70934        fidl::encoding::DefaultFuchsiaResourceDialect,
70935    > {
70936        SynchronousDatagramSocketProxyInterface::r#get_accept_conn(self)
70937    }
70938
70939    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
70940    pub fn r#set_bind_to_device(
70941        &self,
70942        mut value: &str,
70943    ) -> fidl::client::QueryResponseFut<
70944        BaseSocketSetBindToDeviceResult,
70945        fidl::encoding::DefaultFuchsiaResourceDialect,
70946    > {
70947        SynchronousDatagramSocketProxyInterface::r#set_bind_to_device(self, value)
70948    }
70949
70950    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
70951    pub fn r#get_bind_to_device(
70952        &self,
70953    ) -> fidl::client::QueryResponseFut<
70954        BaseSocketGetBindToDeviceResult,
70955        fidl::encoding::DefaultFuchsiaResourceDialect,
70956    > {
70957        SynchronousDatagramSocketProxyInterface::r#get_bind_to_device(self)
70958    }
70959
70960    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
70961    /// If `value` is 0, this clears the bound interface.
70962    pub fn r#set_bind_to_interface_index(
70963        &self,
70964        mut value: u64,
70965    ) -> fidl::client::QueryResponseFut<
70966        BaseSocketSetBindToInterfaceIndexResult,
70967        fidl::encoding::DefaultFuchsiaResourceDialect,
70968    > {
70969        SynchronousDatagramSocketProxyInterface::r#set_bind_to_interface_index(self, value)
70970    }
70971
70972    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
70973    pub fn r#get_bind_to_interface_index(
70974        &self,
70975    ) -> fidl::client::QueryResponseFut<
70976        BaseSocketGetBindToInterfaceIndexResult,
70977        fidl::encoding::DefaultFuchsiaResourceDialect,
70978    > {
70979        SynchronousDatagramSocketProxyInterface::r#get_bind_to_interface_index(self)
70980    }
70981
70982    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
70983    pub fn r#set_timestamp(
70984        &self,
70985        mut value: TimestampOption,
70986    ) -> fidl::client::QueryResponseFut<
70987        BaseSocketSetTimestampResult,
70988        fidl::encoding::DefaultFuchsiaResourceDialect,
70989    > {
70990        SynchronousDatagramSocketProxyInterface::r#set_timestamp(self, value)
70991    }
70992
70993    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
70994    pub fn r#get_timestamp(
70995        &self,
70996    ) -> fidl::client::QueryResponseFut<
70997        BaseSocketGetTimestampResult,
70998        fidl::encoding::DefaultFuchsiaResourceDialect,
70999    > {
71000        SynchronousDatagramSocketProxyInterface::r#get_timestamp(self)
71001    }
71002
71003    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
71004    /// unlike the standard SO_MARK, this API has multiple mark domains and each
71005    /// mark can be set independently in each domain.
71006    pub fn r#set_mark(
71007        &self,
71008        mut domain: fidl_fuchsia_net::MarkDomain,
71009        mut mark: &OptionalUint32,
71010    ) -> fidl::client::QueryResponseFut<
71011        BaseSocketSetMarkResult,
71012        fidl::encoding::DefaultFuchsiaResourceDialect,
71013    > {
71014        SynchronousDatagramSocketProxyInterface::r#set_mark(self, domain, mark)
71015    }
71016
71017    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
71018    /// unlike the standard SO_MARK, this API has multiple mark domains and each
71019    /// mark can be retrieved independently in each domain.
71020    pub fn r#get_mark(
71021        &self,
71022        mut domain: fidl_fuchsia_net::MarkDomain,
71023    ) -> fidl::client::QueryResponseFut<
71024        BaseSocketGetMarkResult,
71025        fidl::encoding::DefaultFuchsiaResourceDialect,
71026    > {
71027        SynchronousDatagramSocketProxyInterface::r#get_mark(self, domain)
71028    }
71029
71030    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
71031    pub fn r#get_cookie(
71032        &self,
71033    ) -> fidl::client::QueryResponseFut<
71034        BaseSocketGetCookieResult,
71035        fidl::encoding::DefaultFuchsiaResourceDialect,
71036    > {
71037        SynchronousDatagramSocketProxyInterface::r#get_cookie(self)
71038    }
71039
71040    /// Sets the local address used for the socket.
71041    pub fn r#bind(
71042        &self,
71043        mut addr: &fidl_fuchsia_net::SocketAddress,
71044    ) -> fidl::client::QueryResponseFut<
71045        BaseNetworkSocketBindResult,
71046        fidl::encoding::DefaultFuchsiaResourceDialect,
71047    > {
71048        SynchronousDatagramSocketProxyInterface::r#bind(self, addr)
71049    }
71050
71051    /// Initiates a connection to a remote address.
71052    pub fn r#connect(
71053        &self,
71054        mut addr: &fidl_fuchsia_net::SocketAddress,
71055    ) -> fidl::client::QueryResponseFut<
71056        BaseNetworkSocketConnectResult,
71057        fidl::encoding::DefaultFuchsiaResourceDialect,
71058    > {
71059        SynchronousDatagramSocketProxyInterface::r#connect(self, addr)
71060    }
71061
71062    /// Clears connection information from this socket.
71063    pub fn r#disconnect(
71064        &self,
71065    ) -> fidl::client::QueryResponseFut<
71066        BaseNetworkSocketDisconnectResult,
71067        fidl::encoding::DefaultFuchsiaResourceDialect,
71068    > {
71069        SynchronousDatagramSocketProxyInterface::r#disconnect(self)
71070    }
71071
71072    /// Retrieves the local socket address.
71073    pub fn r#get_sock_name(
71074        &self,
71075    ) -> fidl::client::QueryResponseFut<
71076        BaseNetworkSocketGetSockNameResult,
71077        fidl::encoding::DefaultFuchsiaResourceDialect,
71078    > {
71079        SynchronousDatagramSocketProxyInterface::r#get_sock_name(self)
71080    }
71081
71082    /// Retrieves the remote socket address.
71083    pub fn r#get_peer_name(
71084        &self,
71085    ) -> fidl::client::QueryResponseFut<
71086        BaseNetworkSocketGetPeerNameResult,
71087        fidl::encoding::DefaultFuchsiaResourceDialect,
71088    > {
71089        SynchronousDatagramSocketProxyInterface::r#get_peer_name(self)
71090    }
71091
71092    /// Shuts down part of the socket.
71093    pub fn r#shutdown(
71094        &self,
71095        mut mode: ShutdownMode,
71096    ) -> fidl::client::QueryResponseFut<
71097        BaseNetworkSocketShutdownResult,
71098        fidl::encoding::DefaultFuchsiaResourceDialect,
71099    > {
71100        SynchronousDatagramSocketProxyInterface::r#shutdown(self, mode)
71101    }
71102
71103    /// Set `SOL_IP` -> `IP_TOS`.
71104    pub fn r#set_ip_type_of_service(
71105        &self,
71106        mut value: u8,
71107    ) -> fidl::client::QueryResponseFut<
71108        BaseNetworkSocketSetIpTypeOfServiceResult,
71109        fidl::encoding::DefaultFuchsiaResourceDialect,
71110    > {
71111        SynchronousDatagramSocketProxyInterface::r#set_ip_type_of_service(self, value)
71112    }
71113
71114    /// Get `SOL_IP` -> `IP_TOS`.
71115    pub fn r#get_ip_type_of_service(
71116        &self,
71117    ) -> fidl::client::QueryResponseFut<
71118        BaseNetworkSocketGetIpTypeOfServiceResult,
71119        fidl::encoding::DefaultFuchsiaResourceDialect,
71120    > {
71121        SynchronousDatagramSocketProxyInterface::r#get_ip_type_of_service(self)
71122    }
71123
71124    /// Set `SOL_IP` -> `IP_TTL`.
71125    pub fn r#set_ip_ttl(
71126        &self,
71127        mut value: &OptionalUint8,
71128    ) -> fidl::client::QueryResponseFut<
71129        BaseNetworkSocketSetIpTtlResult,
71130        fidl::encoding::DefaultFuchsiaResourceDialect,
71131    > {
71132        SynchronousDatagramSocketProxyInterface::r#set_ip_ttl(self, value)
71133    }
71134
71135    /// Get `SOL_IP` -> `IP_TTL`.
71136    pub fn r#get_ip_ttl(
71137        &self,
71138    ) -> fidl::client::QueryResponseFut<
71139        BaseNetworkSocketGetIpTtlResult,
71140        fidl::encoding::DefaultFuchsiaResourceDialect,
71141    > {
71142        SynchronousDatagramSocketProxyInterface::r#get_ip_ttl(self)
71143    }
71144
71145    /// Set `SOL_IP` -> `IP_PKTINFO`.
71146    pub fn r#set_ip_packet_info(
71147        &self,
71148        mut value: bool,
71149    ) -> fidl::client::QueryResponseFut<
71150        BaseNetworkSocketSetIpPacketInfoResult,
71151        fidl::encoding::DefaultFuchsiaResourceDialect,
71152    > {
71153        SynchronousDatagramSocketProxyInterface::r#set_ip_packet_info(self, value)
71154    }
71155
71156    /// Get `SOL_IP` -> `IP_PKTINFO`.
71157    pub fn r#get_ip_packet_info(
71158        &self,
71159    ) -> fidl::client::QueryResponseFut<
71160        BaseNetworkSocketGetIpPacketInfoResult,
71161        fidl::encoding::DefaultFuchsiaResourceDialect,
71162    > {
71163        SynchronousDatagramSocketProxyInterface::r#get_ip_packet_info(self)
71164    }
71165
71166    /// Set `SOL_IP` -> `IP_RECVTOS`.
71167    pub fn r#set_ip_receive_type_of_service(
71168        &self,
71169        mut value: bool,
71170    ) -> fidl::client::QueryResponseFut<
71171        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
71172        fidl::encoding::DefaultFuchsiaResourceDialect,
71173    > {
71174        SynchronousDatagramSocketProxyInterface::r#set_ip_receive_type_of_service(self, value)
71175    }
71176
71177    /// Get `SOL_IP` -> `IP_RECVTOS`.
71178    pub fn r#get_ip_receive_type_of_service(
71179        &self,
71180    ) -> fidl::client::QueryResponseFut<
71181        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
71182        fidl::encoding::DefaultFuchsiaResourceDialect,
71183    > {
71184        SynchronousDatagramSocketProxyInterface::r#get_ip_receive_type_of_service(self)
71185    }
71186
71187    /// Set `SOL_IP` -> `IP_RECVTTL`.
71188    pub fn r#set_ip_receive_ttl(
71189        &self,
71190        mut value: bool,
71191    ) -> fidl::client::QueryResponseFut<
71192        BaseNetworkSocketSetIpReceiveTtlResult,
71193        fidl::encoding::DefaultFuchsiaResourceDialect,
71194    > {
71195        SynchronousDatagramSocketProxyInterface::r#set_ip_receive_ttl(self, value)
71196    }
71197
71198    /// Get `SOL_IP` -> `IP_RECVTTL`.
71199    pub fn r#get_ip_receive_ttl(
71200        &self,
71201    ) -> fidl::client::QueryResponseFut<
71202        BaseNetworkSocketGetIpReceiveTtlResult,
71203        fidl::encoding::DefaultFuchsiaResourceDialect,
71204    > {
71205        SynchronousDatagramSocketProxyInterface::r#get_ip_receive_ttl(self)
71206    }
71207
71208    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
71209    pub fn r#set_ip_multicast_interface(
71210        &self,
71211        mut iface: u64,
71212        mut address: &fidl_fuchsia_net::Ipv4Address,
71213    ) -> fidl::client::QueryResponseFut<
71214        BaseNetworkSocketSetIpMulticastInterfaceResult,
71215        fidl::encoding::DefaultFuchsiaResourceDialect,
71216    > {
71217        SynchronousDatagramSocketProxyInterface::r#set_ip_multicast_interface(self, iface, address)
71218    }
71219
71220    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
71221    pub fn r#get_ip_multicast_interface(
71222        &self,
71223    ) -> fidl::client::QueryResponseFut<
71224        BaseNetworkSocketGetIpMulticastInterfaceResult,
71225        fidl::encoding::DefaultFuchsiaResourceDialect,
71226    > {
71227        SynchronousDatagramSocketProxyInterface::r#get_ip_multicast_interface(self)
71228    }
71229
71230    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
71231    pub fn r#set_ip_multicast_ttl(
71232        &self,
71233        mut value: &OptionalUint8,
71234    ) -> fidl::client::QueryResponseFut<
71235        BaseNetworkSocketSetIpMulticastTtlResult,
71236        fidl::encoding::DefaultFuchsiaResourceDialect,
71237    > {
71238        SynchronousDatagramSocketProxyInterface::r#set_ip_multicast_ttl(self, value)
71239    }
71240
71241    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
71242    pub fn r#get_ip_multicast_ttl(
71243        &self,
71244    ) -> fidl::client::QueryResponseFut<
71245        BaseNetworkSocketGetIpMulticastTtlResult,
71246        fidl::encoding::DefaultFuchsiaResourceDialect,
71247    > {
71248        SynchronousDatagramSocketProxyInterface::r#get_ip_multicast_ttl(self)
71249    }
71250
71251    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
71252    pub fn r#set_ip_multicast_loopback(
71253        &self,
71254        mut value: bool,
71255    ) -> fidl::client::QueryResponseFut<
71256        BaseNetworkSocketSetIpMulticastLoopbackResult,
71257        fidl::encoding::DefaultFuchsiaResourceDialect,
71258    > {
71259        SynchronousDatagramSocketProxyInterface::r#set_ip_multicast_loopback(self, value)
71260    }
71261
71262    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
71263    pub fn r#get_ip_multicast_loopback(
71264        &self,
71265    ) -> fidl::client::QueryResponseFut<
71266        BaseNetworkSocketGetIpMulticastLoopbackResult,
71267        fidl::encoding::DefaultFuchsiaResourceDialect,
71268    > {
71269        SynchronousDatagramSocketProxyInterface::r#get_ip_multicast_loopback(self)
71270    }
71271
71272    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
71273    pub fn r#add_ip_membership(
71274        &self,
71275        mut membership: &IpMulticastMembership,
71276    ) -> fidl::client::QueryResponseFut<
71277        BaseNetworkSocketAddIpMembershipResult,
71278        fidl::encoding::DefaultFuchsiaResourceDialect,
71279    > {
71280        SynchronousDatagramSocketProxyInterface::r#add_ip_membership(self, membership)
71281    }
71282
71283    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
71284    pub fn r#drop_ip_membership(
71285        &self,
71286        mut membership: &IpMulticastMembership,
71287    ) -> fidl::client::QueryResponseFut<
71288        BaseNetworkSocketDropIpMembershipResult,
71289        fidl::encoding::DefaultFuchsiaResourceDialect,
71290    > {
71291        SynchronousDatagramSocketProxyInterface::r#drop_ip_membership(self, membership)
71292    }
71293
71294    /// Set `SOL_IP` -> `IP_TRANSPARENT`
71295    pub fn r#set_ip_transparent(
71296        &self,
71297        mut value: bool,
71298    ) -> fidl::client::QueryResponseFut<
71299        BaseNetworkSocketSetIpTransparentResult,
71300        fidl::encoding::DefaultFuchsiaResourceDialect,
71301    > {
71302        SynchronousDatagramSocketProxyInterface::r#set_ip_transparent(self, value)
71303    }
71304
71305    /// Get `SOL_IP` -> `IP_TRANSPARENT`
71306    pub fn r#get_ip_transparent(
71307        &self,
71308    ) -> fidl::client::QueryResponseFut<
71309        BaseNetworkSocketGetIpTransparentResult,
71310        fidl::encoding::DefaultFuchsiaResourceDialect,
71311    > {
71312        SynchronousDatagramSocketProxyInterface::r#get_ip_transparent(self)
71313    }
71314
71315    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
71316    pub fn r#set_ip_receive_original_destination_address(
71317        &self,
71318        mut value: bool,
71319    ) -> fidl::client::QueryResponseFut<
71320        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
71321        fidl::encoding::DefaultFuchsiaResourceDialect,
71322    > {
71323        SynchronousDatagramSocketProxyInterface::r#set_ip_receive_original_destination_address(
71324            self, value,
71325        )
71326    }
71327
71328    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
71329    pub fn r#get_ip_receive_original_destination_address(
71330        &self,
71331    ) -> fidl::client::QueryResponseFut<
71332        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
71333        fidl::encoding::DefaultFuchsiaResourceDialect,
71334    > {
71335        SynchronousDatagramSocketProxyInterface::r#get_ip_receive_original_destination_address(self)
71336    }
71337
71338    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
71339    pub fn r#add_ipv6_membership(
71340        &self,
71341        mut membership: &Ipv6MulticastMembership,
71342    ) -> fidl::client::QueryResponseFut<
71343        BaseNetworkSocketAddIpv6MembershipResult,
71344        fidl::encoding::DefaultFuchsiaResourceDialect,
71345    > {
71346        SynchronousDatagramSocketProxyInterface::r#add_ipv6_membership(self, membership)
71347    }
71348
71349    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
71350    pub fn r#drop_ipv6_membership(
71351        &self,
71352        mut membership: &Ipv6MulticastMembership,
71353    ) -> fidl::client::QueryResponseFut<
71354        BaseNetworkSocketDropIpv6MembershipResult,
71355        fidl::encoding::DefaultFuchsiaResourceDialect,
71356    > {
71357        SynchronousDatagramSocketProxyInterface::r#drop_ipv6_membership(self, membership)
71358    }
71359
71360    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
71361    pub fn r#set_ipv6_multicast_interface(
71362        &self,
71363        mut value: u64,
71364    ) -> fidl::client::QueryResponseFut<
71365        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
71366        fidl::encoding::DefaultFuchsiaResourceDialect,
71367    > {
71368        SynchronousDatagramSocketProxyInterface::r#set_ipv6_multicast_interface(self, value)
71369    }
71370
71371    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
71372    pub fn r#get_ipv6_multicast_interface(
71373        &self,
71374    ) -> fidl::client::QueryResponseFut<
71375        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
71376        fidl::encoding::DefaultFuchsiaResourceDialect,
71377    > {
71378        SynchronousDatagramSocketProxyInterface::r#get_ipv6_multicast_interface(self)
71379    }
71380
71381    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
71382    pub fn r#set_ipv6_unicast_hops(
71383        &self,
71384        mut value: &OptionalUint8,
71385    ) -> fidl::client::QueryResponseFut<
71386        BaseNetworkSocketSetIpv6UnicastHopsResult,
71387        fidl::encoding::DefaultFuchsiaResourceDialect,
71388    > {
71389        SynchronousDatagramSocketProxyInterface::r#set_ipv6_unicast_hops(self, value)
71390    }
71391
71392    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
71393    pub fn r#get_ipv6_unicast_hops(
71394        &self,
71395    ) -> fidl::client::QueryResponseFut<
71396        BaseNetworkSocketGetIpv6UnicastHopsResult,
71397        fidl::encoding::DefaultFuchsiaResourceDialect,
71398    > {
71399        SynchronousDatagramSocketProxyInterface::r#get_ipv6_unicast_hops(self)
71400    }
71401
71402    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
71403    pub fn r#set_ipv6_receive_hop_limit(
71404        &self,
71405        mut value: bool,
71406    ) -> fidl::client::QueryResponseFut<
71407        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
71408        fidl::encoding::DefaultFuchsiaResourceDialect,
71409    > {
71410        SynchronousDatagramSocketProxyInterface::r#set_ipv6_receive_hop_limit(self, value)
71411    }
71412
71413    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
71414    pub fn r#get_ipv6_receive_hop_limit(
71415        &self,
71416    ) -> fidl::client::QueryResponseFut<
71417        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
71418        fidl::encoding::DefaultFuchsiaResourceDialect,
71419    > {
71420        SynchronousDatagramSocketProxyInterface::r#get_ipv6_receive_hop_limit(self)
71421    }
71422
71423    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
71424    pub fn r#set_ipv6_multicast_hops(
71425        &self,
71426        mut value: &OptionalUint8,
71427    ) -> fidl::client::QueryResponseFut<
71428        BaseNetworkSocketSetIpv6MulticastHopsResult,
71429        fidl::encoding::DefaultFuchsiaResourceDialect,
71430    > {
71431        SynchronousDatagramSocketProxyInterface::r#set_ipv6_multicast_hops(self, value)
71432    }
71433
71434    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
71435    pub fn r#get_ipv6_multicast_hops(
71436        &self,
71437    ) -> fidl::client::QueryResponseFut<
71438        BaseNetworkSocketGetIpv6MulticastHopsResult,
71439        fidl::encoding::DefaultFuchsiaResourceDialect,
71440    > {
71441        SynchronousDatagramSocketProxyInterface::r#get_ipv6_multicast_hops(self)
71442    }
71443
71444    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
71445    pub fn r#set_ipv6_multicast_loopback(
71446        &self,
71447        mut value: bool,
71448    ) -> fidl::client::QueryResponseFut<
71449        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
71450        fidl::encoding::DefaultFuchsiaResourceDialect,
71451    > {
71452        SynchronousDatagramSocketProxyInterface::r#set_ipv6_multicast_loopback(self, value)
71453    }
71454
71455    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
71456    pub fn r#get_ipv6_multicast_loopback(
71457        &self,
71458    ) -> fidl::client::QueryResponseFut<
71459        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
71460        fidl::encoding::DefaultFuchsiaResourceDialect,
71461    > {
71462        SynchronousDatagramSocketProxyInterface::r#get_ipv6_multicast_loopback(self)
71463    }
71464
71465    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
71466    pub fn r#set_ipv6_only(
71467        &self,
71468        mut value: bool,
71469    ) -> fidl::client::QueryResponseFut<
71470        BaseNetworkSocketSetIpv6OnlyResult,
71471        fidl::encoding::DefaultFuchsiaResourceDialect,
71472    > {
71473        SynchronousDatagramSocketProxyInterface::r#set_ipv6_only(self, value)
71474    }
71475
71476    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
71477    pub fn r#get_ipv6_only(
71478        &self,
71479    ) -> fidl::client::QueryResponseFut<
71480        BaseNetworkSocketGetIpv6OnlyResult,
71481        fidl::encoding::DefaultFuchsiaResourceDialect,
71482    > {
71483        SynchronousDatagramSocketProxyInterface::r#get_ipv6_only(self)
71484    }
71485
71486    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
71487    pub fn r#set_ipv6_receive_traffic_class(
71488        &self,
71489        mut value: bool,
71490    ) -> fidl::client::QueryResponseFut<
71491        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
71492        fidl::encoding::DefaultFuchsiaResourceDialect,
71493    > {
71494        SynchronousDatagramSocketProxyInterface::r#set_ipv6_receive_traffic_class(self, value)
71495    }
71496
71497    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
71498    pub fn r#get_ipv6_receive_traffic_class(
71499        &self,
71500    ) -> fidl::client::QueryResponseFut<
71501        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
71502        fidl::encoding::DefaultFuchsiaResourceDialect,
71503    > {
71504        SynchronousDatagramSocketProxyInterface::r#get_ipv6_receive_traffic_class(self)
71505    }
71506
71507    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
71508    pub fn r#set_ipv6_traffic_class(
71509        &self,
71510        mut value: &OptionalUint8,
71511    ) -> fidl::client::QueryResponseFut<
71512        BaseNetworkSocketSetIpv6TrafficClassResult,
71513        fidl::encoding::DefaultFuchsiaResourceDialect,
71514    > {
71515        SynchronousDatagramSocketProxyInterface::r#set_ipv6_traffic_class(self, value)
71516    }
71517
71518    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
71519    pub fn r#get_ipv6_traffic_class(
71520        &self,
71521    ) -> fidl::client::QueryResponseFut<
71522        BaseNetworkSocketGetIpv6TrafficClassResult,
71523        fidl::encoding::DefaultFuchsiaResourceDialect,
71524    > {
71525        SynchronousDatagramSocketProxyInterface::r#get_ipv6_traffic_class(self)
71526    }
71527
71528    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
71529    pub fn r#set_ipv6_receive_packet_info(
71530        &self,
71531        mut value: bool,
71532    ) -> fidl::client::QueryResponseFut<
71533        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
71534        fidl::encoding::DefaultFuchsiaResourceDialect,
71535    > {
71536        SynchronousDatagramSocketProxyInterface::r#set_ipv6_receive_packet_info(self, value)
71537    }
71538
71539    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
71540    pub fn r#get_ipv6_receive_packet_info(
71541        &self,
71542    ) -> fidl::client::QueryResponseFut<
71543        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
71544        fidl::encoding::DefaultFuchsiaResourceDialect,
71545    > {
71546        SynchronousDatagramSocketProxyInterface::r#get_ipv6_receive_packet_info(self)
71547    }
71548
71549    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
71550    pub fn r#get_original_destination(
71551        &self,
71552    ) -> fidl::client::QueryResponseFut<
71553        BaseNetworkSocketGetOriginalDestinationResult,
71554        fidl::encoding::DefaultFuchsiaResourceDialect,
71555    > {
71556        SynchronousDatagramSocketProxyInterface::r#get_original_destination(self)
71557    }
71558
71559    /// Retrieves creation information from the socket.
71560    ///
71561    /// - response `domain` the socket's associated domain.
71562    /// - response `proto` the socket's associated protocol.
71563    pub fn r#get_info(
71564        &self,
71565    ) -> fidl::client::QueryResponseFut<
71566        BaseDatagramSocketGetInfoResult,
71567        fidl::encoding::DefaultFuchsiaResourceDialect,
71568    > {
71569        SynchronousDatagramSocketProxyInterface::r#get_info(self)
71570    }
71571
71572    pub fn r#describe(
71573        &self,
71574    ) -> fidl::client::QueryResponseFut<
71575        SynchronousDatagramSocketDescribeResponse,
71576        fidl::encoding::DefaultFuchsiaResourceDialect,
71577    > {
71578        SynchronousDatagramSocketProxyInterface::r#describe(self)
71579    }
71580
71581    /// Receives a message from the socket.
71582    ///
71583    /// + request `want_addr` request message's source address information to
71584    ///   be returned.
71585    /// + request `data_len` the maximum allowed length of the response data
71586    ///   buffer.
71587    /// + request `want_control` request ancillary data to be returned.
71588    /// + request `flags` flags for the receive request.
71589    /// - response `addr` the message's source address information, if
71590    ///   requested.
71591    /// - response `data` the message.
71592    /// - response `control` control messages, if requested.
71593    /// - response `truncated` indicates whether or not the returned message
71594    ///   was truncated.
71595    pub fn r#recv_msg(
71596        &self,
71597        mut want_addr: bool,
71598        mut data_len: u32,
71599        mut want_control: bool,
71600        mut flags: RecvMsgFlags,
71601    ) -> fidl::client::QueryResponseFut<
71602        SynchronousDatagramSocketRecvMsgResult,
71603        fidl::encoding::DefaultFuchsiaResourceDialect,
71604    > {
71605        SynchronousDatagramSocketProxyInterface::r#recv_msg(
71606            self,
71607            want_addr,
71608            data_len,
71609            want_control,
71610            flags,
71611        )
71612    }
71613
71614    /// Sends a message on the socket.
71615    ///
71616    /// + request `addr` the address to send the message to. If unset, will send
71617    ///   to the connected peer.
71618    /// + request `data` the message.
71619    /// + request `control` ancillary data.
71620    /// + request `flags` flags for the send request.
71621    /// - response `len` the number of bytes sent.
71622    pub fn r#send_msg(
71623        &self,
71624        mut addr: Option<&fidl_fuchsia_net::SocketAddress>,
71625        mut data: &[u8],
71626        mut control: &DatagramSocketSendControlData,
71627        mut flags: SendMsgFlags,
71628    ) -> fidl::client::QueryResponseFut<
71629        SynchronousDatagramSocketSendMsgResult,
71630        fidl::encoding::DefaultFuchsiaResourceDialect,
71631    > {
71632        SynchronousDatagramSocketProxyInterface::r#send_msg(self, addr, data, control, flags)
71633    }
71634}
71635
71636impl SynchronousDatagramSocketProxyInterface for SynchronousDatagramSocketProxy {
71637    fn r#clone(
71638        &self,
71639        mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
71640    ) -> Result<(), fidl::Error> {
71641        self.client.send::<fidl_fuchsia_unknown::CloneableCloneRequest>(
71642            (request,),
71643            0x20d8a7aba2168a79,
71644            fidl::encoding::DynamicFlags::empty(),
71645        )
71646    }
71647
71648    type CloseResponseFut = fidl::client::QueryResponseFut<
71649        fidl_fuchsia_unknown::CloseableCloseResult,
71650        fidl::encoding::DefaultFuchsiaResourceDialect,
71651    >;
71652    fn r#close(&self) -> Self::CloseResponseFut {
71653        fn _decode(
71654            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71655        ) -> Result<fidl_fuchsia_unknown::CloseableCloseResult, fidl::Error> {
71656            let _response = fidl::client::decode_transaction_body::<
71657                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
71658                fidl::encoding::DefaultFuchsiaResourceDialect,
71659                0x5ac5d459ad7f657e,
71660            >(_buf?)?;
71661            Ok(_response.map(|x| x))
71662        }
71663        self.client.send_query_and_decode::<
71664            fidl::encoding::EmptyPayload,
71665            fidl_fuchsia_unknown::CloseableCloseResult,
71666        >(
71667            (),
71668            0x5ac5d459ad7f657e,
71669            fidl::encoding::DynamicFlags::empty(),
71670            _decode,
71671        )
71672    }
71673
71674    type QueryResponseFut =
71675        fidl::client::QueryResponseFut<Vec<u8>, fidl::encoding::DefaultFuchsiaResourceDialect>;
71676    fn r#query(&self) -> Self::QueryResponseFut {
71677        fn _decode(
71678            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71679        ) -> Result<Vec<u8>, fidl::Error> {
71680            let _response = fidl::client::decode_transaction_body::<
71681                fidl_fuchsia_unknown::QueryableQueryResponse,
71682                fidl::encoding::DefaultFuchsiaResourceDialect,
71683                0x2658edee9decfc06,
71684            >(_buf?)?;
71685            Ok(_response.protocol)
71686        }
71687        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<u8>>(
71688            (),
71689            0x2658edee9decfc06,
71690            fidl::encoding::DynamicFlags::empty(),
71691            _decode,
71692        )
71693    }
71694
71695    type SetReuseAddressResponseFut = fidl::client::QueryResponseFut<
71696        BaseSocketSetReuseAddressResult,
71697        fidl::encoding::DefaultFuchsiaResourceDialect,
71698    >;
71699    fn r#set_reuse_address(&self, mut value: bool) -> Self::SetReuseAddressResponseFut {
71700        fn _decode(
71701            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71702        ) -> Result<BaseSocketSetReuseAddressResult, fidl::Error> {
71703            let _response = fidl::client::decode_transaction_body::<
71704                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71705                fidl::encoding::DefaultFuchsiaResourceDialect,
71706                0x1fd74ee8b9a4a876,
71707            >(_buf?)?;
71708            Ok(_response.map(|x| x))
71709        }
71710        self.client.send_query_and_decode::<
71711            BaseSocketSetReuseAddressRequest,
71712            BaseSocketSetReuseAddressResult,
71713        >(
71714            (value,),
71715            0x1fd74ee8b9a4a876,
71716            fidl::encoding::DynamicFlags::empty(),
71717            _decode,
71718        )
71719    }
71720
71721    type GetReuseAddressResponseFut = fidl::client::QueryResponseFut<
71722        BaseSocketGetReuseAddressResult,
71723        fidl::encoding::DefaultFuchsiaResourceDialect,
71724    >;
71725    fn r#get_reuse_address(&self) -> Self::GetReuseAddressResponseFut {
71726        fn _decode(
71727            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71728        ) -> Result<BaseSocketGetReuseAddressResult, fidl::Error> {
71729            let _response = fidl::client::decode_transaction_body::<
71730                fidl::encoding::ResultType<
71731                    BaseSocketGetReuseAddressResponse,
71732                    fidl_fuchsia_posix::Errno,
71733                >,
71734                fidl::encoding::DefaultFuchsiaResourceDialect,
71735                0x67b7206b8d1bc0a5,
71736            >(_buf?)?;
71737            Ok(_response.map(|x| x.value))
71738        }
71739        self.client
71740            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReuseAddressResult>(
71741                (),
71742                0x67b7206b8d1bc0a5,
71743                fidl::encoding::DynamicFlags::empty(),
71744                _decode,
71745            )
71746    }
71747
71748    type GetErrorResponseFut = fidl::client::QueryResponseFut<
71749        BaseSocketGetErrorResult,
71750        fidl::encoding::DefaultFuchsiaResourceDialect,
71751    >;
71752    fn r#get_error(&self) -> Self::GetErrorResponseFut {
71753        fn _decode(
71754            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71755        ) -> Result<BaseSocketGetErrorResult, fidl::Error> {
71756            let _response = fidl::client::decode_transaction_body::<
71757                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71758                fidl::encoding::DefaultFuchsiaResourceDialect,
71759                0x5aad39b33e5f6ebb,
71760            >(_buf?)?;
71761            Ok(_response.map(|x| x))
71762        }
71763        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetErrorResult>(
71764            (),
71765            0x5aad39b33e5f6ebb,
71766            fidl::encoding::DynamicFlags::empty(),
71767            _decode,
71768        )
71769    }
71770
71771    type SetBroadcastResponseFut = fidl::client::QueryResponseFut<
71772        BaseSocketSetBroadcastResult,
71773        fidl::encoding::DefaultFuchsiaResourceDialect,
71774    >;
71775    fn r#set_broadcast(&self, mut value: bool) -> Self::SetBroadcastResponseFut {
71776        fn _decode(
71777            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71778        ) -> Result<BaseSocketSetBroadcastResult, fidl::Error> {
71779            let _response = fidl::client::decode_transaction_body::<
71780                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71781                fidl::encoding::DefaultFuchsiaResourceDialect,
71782                0x6023e081ce3cd947,
71783            >(_buf?)?;
71784            Ok(_response.map(|x| x))
71785        }
71786        self.client
71787            .send_query_and_decode::<BaseSocketSetBroadcastRequest, BaseSocketSetBroadcastResult>(
71788                (value,),
71789                0x6023e081ce3cd947,
71790                fidl::encoding::DynamicFlags::empty(),
71791                _decode,
71792            )
71793    }
71794
71795    type GetBroadcastResponseFut = fidl::client::QueryResponseFut<
71796        BaseSocketGetBroadcastResult,
71797        fidl::encoding::DefaultFuchsiaResourceDialect,
71798    >;
71799    fn r#get_broadcast(&self) -> Self::GetBroadcastResponseFut {
71800        fn _decode(
71801            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71802        ) -> Result<BaseSocketGetBroadcastResult, fidl::Error> {
71803            let _response = fidl::client::decode_transaction_body::<
71804                fidl::encoding::ResultType<
71805                    BaseSocketGetBroadcastResponse,
71806                    fidl_fuchsia_posix::Errno,
71807                >,
71808                fidl::encoding::DefaultFuchsiaResourceDialect,
71809                0x68796fc556f9780d,
71810            >(_buf?)?;
71811            Ok(_response.map(|x| x.value))
71812        }
71813        self.client
71814            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBroadcastResult>(
71815                (),
71816                0x68796fc556f9780d,
71817                fidl::encoding::DynamicFlags::empty(),
71818                _decode,
71819            )
71820    }
71821
71822    type SetSendBufferResponseFut = fidl::client::QueryResponseFut<
71823        BaseSocketSetSendBufferResult,
71824        fidl::encoding::DefaultFuchsiaResourceDialect,
71825    >;
71826    fn r#set_send_buffer(&self, mut value_bytes: u64) -> Self::SetSendBufferResponseFut {
71827        fn _decode(
71828            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71829        ) -> Result<BaseSocketSetSendBufferResult, fidl::Error> {
71830            let _response = fidl::client::decode_transaction_body::<
71831                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71832                fidl::encoding::DefaultFuchsiaResourceDialect,
71833                0x756eac32d73a7a70,
71834            >(_buf?)?;
71835            Ok(_response.map(|x| x))
71836        }
71837        self.client
71838            .send_query_and_decode::<BaseSocketSetSendBufferRequest, BaseSocketSetSendBufferResult>(
71839                (value_bytes,),
71840                0x756eac32d73a7a70,
71841                fidl::encoding::DynamicFlags::empty(),
71842                _decode,
71843            )
71844    }
71845
71846    type GetSendBufferResponseFut = fidl::client::QueryResponseFut<
71847        BaseSocketGetSendBufferResult,
71848        fidl::encoding::DefaultFuchsiaResourceDialect,
71849    >;
71850    fn r#get_send_buffer(&self) -> Self::GetSendBufferResponseFut {
71851        fn _decode(
71852            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71853        ) -> Result<BaseSocketGetSendBufferResult, fidl::Error> {
71854            let _response = fidl::client::decode_transaction_body::<
71855                fidl::encoding::ResultType<
71856                    BaseSocketGetSendBufferResponse,
71857                    fidl_fuchsia_posix::Errno,
71858                >,
71859                fidl::encoding::DefaultFuchsiaResourceDialect,
71860                0x78a52fd9c7b2410b,
71861            >(_buf?)?;
71862            Ok(_response.map(|x| x.value_bytes))
71863        }
71864        self.client
71865            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetSendBufferResult>(
71866                (),
71867                0x78a52fd9c7b2410b,
71868                fidl::encoding::DynamicFlags::empty(),
71869                _decode,
71870            )
71871    }
71872
71873    type SetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
71874        BaseSocketSetReceiveBufferResult,
71875        fidl::encoding::DefaultFuchsiaResourceDialect,
71876    >;
71877    fn r#set_receive_buffer(&self, mut value_bytes: u64) -> Self::SetReceiveBufferResponseFut {
71878        fn _decode(
71879            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71880        ) -> Result<BaseSocketSetReceiveBufferResult, fidl::Error> {
71881            let _response = fidl::client::decode_transaction_body::<
71882                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71883                fidl::encoding::DefaultFuchsiaResourceDialect,
71884                0x6b0cf2f1919c7001,
71885            >(_buf?)?;
71886            Ok(_response.map(|x| x))
71887        }
71888        self.client.send_query_and_decode::<
71889            BaseSocketSetReceiveBufferRequest,
71890            BaseSocketSetReceiveBufferResult,
71891        >(
71892            (value_bytes,),
71893            0x6b0cf2f1919c7001,
71894            fidl::encoding::DynamicFlags::empty(),
71895            _decode,
71896        )
71897    }
71898
71899    type GetReceiveBufferResponseFut = fidl::client::QueryResponseFut<
71900        BaseSocketGetReceiveBufferResult,
71901        fidl::encoding::DefaultFuchsiaResourceDialect,
71902    >;
71903    fn r#get_receive_buffer(&self) -> Self::GetReceiveBufferResponseFut {
71904        fn _decode(
71905            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71906        ) -> Result<BaseSocketGetReceiveBufferResult, fidl::Error> {
71907            let _response = fidl::client::decode_transaction_body::<
71908                fidl::encoding::ResultType<
71909                    BaseSocketGetReceiveBufferResponse,
71910                    fidl_fuchsia_posix::Errno,
71911                >,
71912                fidl::encoding::DefaultFuchsiaResourceDialect,
71913                0x14c1a4b64f709e5c,
71914            >(_buf?)?;
71915            Ok(_response.map(|x| x.value_bytes))
71916        }
71917        self.client.send_query_and_decode::<
71918            fidl::encoding::EmptyPayload,
71919            BaseSocketGetReceiveBufferResult,
71920        >(
71921            (),
71922            0x14c1a4b64f709e5c,
71923            fidl::encoding::DynamicFlags::empty(),
71924            _decode,
71925        )
71926    }
71927
71928    type SetKeepAliveResponseFut = fidl::client::QueryResponseFut<
71929        BaseSocketSetKeepAliveResult,
71930        fidl::encoding::DefaultFuchsiaResourceDialect,
71931    >;
71932    fn r#set_keep_alive(&self, mut value: bool) -> Self::SetKeepAliveResponseFut {
71933        fn _decode(
71934            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71935        ) -> Result<BaseSocketSetKeepAliveResult, fidl::Error> {
71936            let _response = fidl::client::decode_transaction_body::<
71937                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71938                fidl::encoding::DefaultFuchsiaResourceDialect,
71939                0x572df8f0b920d2c7,
71940            >(_buf?)?;
71941            Ok(_response.map(|x| x))
71942        }
71943        self.client
71944            .send_query_and_decode::<BaseSocketSetKeepAliveRequest, BaseSocketSetKeepAliveResult>(
71945                (value,),
71946                0x572df8f0b920d2c7,
71947                fidl::encoding::DynamicFlags::empty(),
71948                _decode,
71949            )
71950    }
71951
71952    type GetKeepAliveResponseFut = fidl::client::QueryResponseFut<
71953        BaseSocketGetKeepAliveResult,
71954        fidl::encoding::DefaultFuchsiaResourceDialect,
71955    >;
71956    fn r#get_keep_alive(&self) -> Self::GetKeepAliveResponseFut {
71957        fn _decode(
71958            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71959        ) -> Result<BaseSocketGetKeepAliveResult, fidl::Error> {
71960            let _response = fidl::client::decode_transaction_body::<
71961                fidl::encoding::ResultType<
71962                    BaseSocketGetKeepAliveResponse,
71963                    fidl_fuchsia_posix::Errno,
71964                >,
71965                fidl::encoding::DefaultFuchsiaResourceDialect,
71966                0x2dd29d3215f2c9d2,
71967            >(_buf?)?;
71968            Ok(_response.map(|x| x.value))
71969        }
71970        self.client
71971            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetKeepAliveResult>(
71972                (),
71973                0x2dd29d3215f2c9d2,
71974                fidl::encoding::DynamicFlags::empty(),
71975                _decode,
71976            )
71977    }
71978
71979    type SetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
71980        BaseSocketSetOutOfBandInlineResult,
71981        fidl::encoding::DefaultFuchsiaResourceDialect,
71982    >;
71983    fn r#set_out_of_band_inline(&self, mut value: bool) -> Self::SetOutOfBandInlineResponseFut {
71984        fn _decode(
71985            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
71986        ) -> Result<BaseSocketSetOutOfBandInlineResult, fidl::Error> {
71987            let _response = fidl::client::decode_transaction_body::<
71988                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
71989                fidl::encoding::DefaultFuchsiaResourceDialect,
71990                0x3ecb49968bee439,
71991            >(_buf?)?;
71992            Ok(_response.map(|x| x))
71993        }
71994        self.client.send_query_and_decode::<
71995            BaseSocketSetOutOfBandInlineRequest,
71996            BaseSocketSetOutOfBandInlineResult,
71997        >(
71998            (value,),
71999            0x3ecb49968bee439,
72000            fidl::encoding::DynamicFlags::empty(),
72001            _decode,
72002        )
72003    }
72004
72005    type GetOutOfBandInlineResponseFut = fidl::client::QueryResponseFut<
72006        BaseSocketGetOutOfBandInlineResult,
72007        fidl::encoding::DefaultFuchsiaResourceDialect,
72008    >;
72009    fn r#get_out_of_band_inline(&self) -> Self::GetOutOfBandInlineResponseFut {
72010        fn _decode(
72011            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72012        ) -> Result<BaseSocketGetOutOfBandInlineResult, fidl::Error> {
72013            let _response = fidl::client::decode_transaction_body::<
72014                fidl::encoding::ResultType<
72015                    BaseSocketGetOutOfBandInlineResponse,
72016                    fidl_fuchsia_posix::Errno,
72017                >,
72018                fidl::encoding::DefaultFuchsiaResourceDialect,
72019                0x348c1ab3aeca1745,
72020            >(_buf?)?;
72021            Ok(_response.map(|x| x.value))
72022        }
72023        self.client.send_query_and_decode::<
72024            fidl::encoding::EmptyPayload,
72025            BaseSocketGetOutOfBandInlineResult,
72026        >(
72027            (),
72028            0x348c1ab3aeca1745,
72029            fidl::encoding::DynamicFlags::empty(),
72030            _decode,
72031        )
72032    }
72033
72034    type SetNoCheckResponseFut = fidl::client::QueryResponseFut<
72035        BaseSocketSetNoCheckResult,
72036        fidl::encoding::DefaultFuchsiaResourceDialect,
72037    >;
72038    fn r#set_no_check(&self, mut value: bool) -> Self::SetNoCheckResponseFut {
72039        fn _decode(
72040            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72041        ) -> Result<BaseSocketSetNoCheckResult, fidl::Error> {
72042            let _response = fidl::client::decode_transaction_body::<
72043                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72044                fidl::encoding::DefaultFuchsiaResourceDialect,
72045                0x6bbf00c53a4c78c2,
72046            >(_buf?)?;
72047            Ok(_response.map(|x| x))
72048        }
72049        self.client
72050            .send_query_and_decode::<BaseSocketSetNoCheckRequest, BaseSocketSetNoCheckResult>(
72051                (value,),
72052                0x6bbf00c53a4c78c2,
72053                fidl::encoding::DynamicFlags::empty(),
72054                _decode,
72055            )
72056    }
72057
72058    type GetNoCheckResponseFut = fidl::client::QueryResponseFut<
72059        BaseSocketGetNoCheckResult,
72060        fidl::encoding::DefaultFuchsiaResourceDialect,
72061    >;
72062    fn r#get_no_check(&self) -> Self::GetNoCheckResponseFut {
72063        fn _decode(
72064            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72065        ) -> Result<BaseSocketGetNoCheckResult, fidl::Error> {
72066            let _response = fidl::client::decode_transaction_body::<
72067                fidl::encoding::ResultType<BaseSocketGetNoCheckResponse, fidl_fuchsia_posix::Errno>,
72068                fidl::encoding::DefaultFuchsiaResourceDialect,
72069                0x2cd4249286417694,
72070            >(_buf?)?;
72071            Ok(_response.map(|x| x.value))
72072        }
72073        self.client
72074            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetNoCheckResult>(
72075                (),
72076                0x2cd4249286417694,
72077                fidl::encoding::DynamicFlags::empty(),
72078                _decode,
72079            )
72080    }
72081
72082    type SetLingerResponseFut = fidl::client::QueryResponseFut<
72083        BaseSocketSetLingerResult,
72084        fidl::encoding::DefaultFuchsiaResourceDialect,
72085    >;
72086    fn r#set_linger(&self, mut linger: bool, mut length_secs: u32) -> Self::SetLingerResponseFut {
72087        fn _decode(
72088            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72089        ) -> Result<BaseSocketSetLingerResult, fidl::Error> {
72090            let _response = fidl::client::decode_transaction_body::<
72091                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72092                fidl::encoding::DefaultFuchsiaResourceDialect,
72093                0x45386351246e998e,
72094            >(_buf?)?;
72095            Ok(_response.map(|x| x))
72096        }
72097        self.client.send_query_and_decode::<BaseSocketSetLingerRequest, BaseSocketSetLingerResult>(
72098            (linger, length_secs),
72099            0x45386351246e998e,
72100            fidl::encoding::DynamicFlags::empty(),
72101            _decode,
72102        )
72103    }
72104
72105    type GetLingerResponseFut = fidl::client::QueryResponseFut<
72106        BaseSocketGetLingerResult,
72107        fidl::encoding::DefaultFuchsiaResourceDialect,
72108    >;
72109    fn r#get_linger(&self) -> Self::GetLingerResponseFut {
72110        fn _decode(
72111            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72112        ) -> Result<BaseSocketGetLingerResult, fidl::Error> {
72113            let _response = fidl::client::decode_transaction_body::<
72114                fidl::encoding::ResultType<BaseSocketGetLingerResponse, fidl_fuchsia_posix::Errno>,
72115                fidl::encoding::DefaultFuchsiaResourceDialect,
72116                0x48eb20fc5ccb0e45,
72117            >(_buf?)?;
72118            Ok(_response.map(|x| (x.linger, x.length_secs)))
72119        }
72120        self.client
72121            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetLingerResult>(
72122                (),
72123                0x48eb20fc5ccb0e45,
72124                fidl::encoding::DynamicFlags::empty(),
72125                _decode,
72126            )
72127    }
72128
72129    type SetReusePortResponseFut = fidl::client::QueryResponseFut<
72130        BaseSocketSetReusePortResult,
72131        fidl::encoding::DefaultFuchsiaResourceDialect,
72132    >;
72133    fn r#set_reuse_port(&self, mut value: bool) -> Self::SetReusePortResponseFut {
72134        fn _decode(
72135            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72136        ) -> Result<BaseSocketSetReusePortResult, fidl::Error> {
72137            let _response = fidl::client::decode_transaction_body::<
72138                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72139                fidl::encoding::DefaultFuchsiaResourceDialect,
72140                0x24dd3e5cb36d9ccb,
72141            >(_buf?)?;
72142            Ok(_response.map(|x| x))
72143        }
72144        self.client
72145            .send_query_and_decode::<BaseSocketSetReusePortRequest, BaseSocketSetReusePortResult>(
72146                (value,),
72147                0x24dd3e5cb36d9ccb,
72148                fidl::encoding::DynamicFlags::empty(),
72149                _decode,
72150            )
72151    }
72152
72153    type GetReusePortResponseFut = fidl::client::QueryResponseFut<
72154        BaseSocketGetReusePortResult,
72155        fidl::encoding::DefaultFuchsiaResourceDialect,
72156    >;
72157    fn r#get_reuse_port(&self) -> Self::GetReusePortResponseFut {
72158        fn _decode(
72159            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72160        ) -> Result<BaseSocketGetReusePortResult, fidl::Error> {
72161            let _response = fidl::client::decode_transaction_body::<
72162                fidl::encoding::ResultType<
72163                    BaseSocketGetReusePortResponse,
72164                    fidl_fuchsia_posix::Errno,
72165                >,
72166                fidl::encoding::DefaultFuchsiaResourceDialect,
72167                0x7a112c1ab54ff828,
72168            >(_buf?)?;
72169            Ok(_response.map(|x| x.value))
72170        }
72171        self.client
72172            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetReusePortResult>(
72173                (),
72174                0x7a112c1ab54ff828,
72175                fidl::encoding::DynamicFlags::empty(),
72176                _decode,
72177            )
72178    }
72179
72180    type GetAcceptConnResponseFut = fidl::client::QueryResponseFut<
72181        BaseSocketGetAcceptConnResult,
72182        fidl::encoding::DefaultFuchsiaResourceDialect,
72183    >;
72184    fn r#get_accept_conn(&self) -> Self::GetAcceptConnResponseFut {
72185        fn _decode(
72186            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72187        ) -> Result<BaseSocketGetAcceptConnResult, fidl::Error> {
72188            let _response = fidl::client::decode_transaction_body::<
72189                fidl::encoding::ResultType<
72190                    BaseSocketGetAcceptConnResponse,
72191                    fidl_fuchsia_posix::Errno,
72192                >,
72193                fidl::encoding::DefaultFuchsiaResourceDialect,
72194                0x67ce6db6c2ec8966,
72195            >(_buf?)?;
72196            Ok(_response.map(|x| x.value))
72197        }
72198        self.client
72199            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetAcceptConnResult>(
72200                (),
72201                0x67ce6db6c2ec8966,
72202                fidl::encoding::DynamicFlags::empty(),
72203                _decode,
72204            )
72205    }
72206
72207    type SetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
72208        BaseSocketSetBindToDeviceResult,
72209        fidl::encoding::DefaultFuchsiaResourceDialect,
72210    >;
72211    fn r#set_bind_to_device(&self, mut value: &str) -> Self::SetBindToDeviceResponseFut {
72212        fn _decode(
72213            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72214        ) -> Result<BaseSocketSetBindToDeviceResult, fidl::Error> {
72215            let _response = fidl::client::decode_transaction_body::<
72216                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72217                fidl::encoding::DefaultFuchsiaResourceDialect,
72218                0x2118b483f28aafc4,
72219            >(_buf?)?;
72220            Ok(_response.map(|x| x))
72221        }
72222        self.client.send_query_and_decode::<
72223            BaseSocketSetBindToDeviceRequest,
72224            BaseSocketSetBindToDeviceResult,
72225        >(
72226            (value,),
72227            0x2118b483f28aafc4,
72228            fidl::encoding::DynamicFlags::empty(),
72229            _decode,
72230        )
72231    }
72232
72233    type GetBindToDeviceResponseFut = fidl::client::QueryResponseFut<
72234        BaseSocketGetBindToDeviceResult,
72235        fidl::encoding::DefaultFuchsiaResourceDialect,
72236    >;
72237    fn r#get_bind_to_device(&self) -> Self::GetBindToDeviceResponseFut {
72238        fn _decode(
72239            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72240        ) -> Result<BaseSocketGetBindToDeviceResult, fidl::Error> {
72241            let _response = fidl::client::decode_transaction_body::<
72242                fidl::encoding::ResultType<
72243                    BaseSocketGetBindToDeviceResponse,
72244                    fidl_fuchsia_posix::Errno,
72245                >,
72246                fidl::encoding::DefaultFuchsiaResourceDialect,
72247                0x1ab1fbf0ef7906c8,
72248            >(_buf?)?;
72249            Ok(_response.map(|x| x.value))
72250        }
72251        self.client
72252            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetBindToDeviceResult>(
72253                (),
72254                0x1ab1fbf0ef7906c8,
72255                fidl::encoding::DynamicFlags::empty(),
72256                _decode,
72257            )
72258    }
72259
72260    type SetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
72261        BaseSocketSetBindToInterfaceIndexResult,
72262        fidl::encoding::DefaultFuchsiaResourceDialect,
72263    >;
72264    fn r#set_bind_to_interface_index(
72265        &self,
72266        mut value: u64,
72267    ) -> Self::SetBindToInterfaceIndexResponseFut {
72268        fn _decode(
72269            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72270        ) -> Result<BaseSocketSetBindToInterfaceIndexResult, fidl::Error> {
72271            let _response = fidl::client::decode_transaction_body::<
72272                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72273                fidl::encoding::DefaultFuchsiaResourceDialect,
72274                0x6e387a0def00821,
72275            >(_buf?)?;
72276            Ok(_response.map(|x| x))
72277        }
72278        self.client.send_query_and_decode::<
72279            BaseSocketSetBindToInterfaceIndexRequest,
72280            BaseSocketSetBindToInterfaceIndexResult,
72281        >(
72282            (value,),
72283            0x6e387a0def00821,
72284            fidl::encoding::DynamicFlags::empty(),
72285            _decode,
72286        )
72287    }
72288
72289    type GetBindToInterfaceIndexResponseFut = fidl::client::QueryResponseFut<
72290        BaseSocketGetBindToInterfaceIndexResult,
72291        fidl::encoding::DefaultFuchsiaResourceDialect,
72292    >;
72293    fn r#get_bind_to_interface_index(&self) -> Self::GetBindToInterfaceIndexResponseFut {
72294        fn _decode(
72295            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72296        ) -> Result<BaseSocketGetBindToInterfaceIndexResult, fidl::Error> {
72297            let _response = fidl::client::decode_transaction_body::<
72298                fidl::encoding::ResultType<
72299                    BaseSocketGetBindToInterfaceIndexResponse,
72300                    fidl_fuchsia_posix::Errno,
72301                >,
72302                fidl::encoding::DefaultFuchsiaResourceDialect,
72303                0x59c31dd3e3078295,
72304            >(_buf?)?;
72305            Ok(_response.map(|x| x.value))
72306        }
72307        self.client.send_query_and_decode::<
72308            fidl::encoding::EmptyPayload,
72309            BaseSocketGetBindToInterfaceIndexResult,
72310        >(
72311            (),
72312            0x59c31dd3e3078295,
72313            fidl::encoding::DynamicFlags::empty(),
72314            _decode,
72315        )
72316    }
72317
72318    type SetTimestampResponseFut = fidl::client::QueryResponseFut<
72319        BaseSocketSetTimestampResult,
72320        fidl::encoding::DefaultFuchsiaResourceDialect,
72321    >;
72322    fn r#set_timestamp(&self, mut value: TimestampOption) -> Self::SetTimestampResponseFut {
72323        fn _decode(
72324            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72325        ) -> Result<BaseSocketSetTimestampResult, fidl::Error> {
72326            let _response = fidl::client::decode_transaction_body::<
72327                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72328                fidl::encoding::DefaultFuchsiaResourceDialect,
72329                0x285d6516c263d839,
72330            >(_buf?)?;
72331            Ok(_response.map(|x| x))
72332        }
72333        self.client
72334            .send_query_and_decode::<BaseSocketSetTimestampRequest, BaseSocketSetTimestampResult>(
72335                (value,),
72336                0x285d6516c263d839,
72337                fidl::encoding::DynamicFlags::empty(),
72338                _decode,
72339            )
72340    }
72341
72342    type GetTimestampResponseFut = fidl::client::QueryResponseFut<
72343        BaseSocketGetTimestampResult,
72344        fidl::encoding::DefaultFuchsiaResourceDialect,
72345    >;
72346    fn r#get_timestamp(&self) -> Self::GetTimestampResponseFut {
72347        fn _decode(
72348            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72349        ) -> Result<BaseSocketGetTimestampResult, fidl::Error> {
72350            let _response = fidl::client::decode_transaction_body::<
72351                fidl::encoding::ResultType<
72352                    BaseSocketGetTimestampResponse,
72353                    fidl_fuchsia_posix::Errno,
72354                >,
72355                fidl::encoding::DefaultFuchsiaResourceDialect,
72356                0x49f2fffbbcc2bd27,
72357            >(_buf?)?;
72358            Ok(_response.map(|x| x.value))
72359        }
72360        self.client
72361            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetTimestampResult>(
72362                (),
72363                0x49f2fffbbcc2bd27,
72364                fidl::encoding::DynamicFlags::empty(),
72365                _decode,
72366            )
72367    }
72368
72369    type SetMarkResponseFut = fidl::client::QueryResponseFut<
72370        BaseSocketSetMarkResult,
72371        fidl::encoding::DefaultFuchsiaResourceDialect,
72372    >;
72373    fn r#set_mark(
72374        &self,
72375        mut domain: fidl_fuchsia_net::MarkDomain,
72376        mut mark: &OptionalUint32,
72377    ) -> Self::SetMarkResponseFut {
72378        fn _decode(
72379            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72380        ) -> Result<BaseSocketSetMarkResult, fidl::Error> {
72381            let _response = fidl::client::decode_transaction_body::<
72382                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72383                fidl::encoding::DefaultFuchsiaResourceDialect,
72384                0x6ead6de09f653236,
72385            >(_buf?)?;
72386            Ok(_response.map(|x| x))
72387        }
72388        self.client.send_query_and_decode::<BaseSocketSetMarkRequest, BaseSocketSetMarkResult>(
72389            (domain, mark),
72390            0x6ead6de09f653236,
72391            fidl::encoding::DynamicFlags::empty(),
72392            _decode,
72393        )
72394    }
72395
72396    type GetMarkResponseFut = fidl::client::QueryResponseFut<
72397        BaseSocketGetMarkResult,
72398        fidl::encoding::DefaultFuchsiaResourceDialect,
72399    >;
72400    fn r#get_mark(&self, mut domain: fidl_fuchsia_net::MarkDomain) -> Self::GetMarkResponseFut {
72401        fn _decode(
72402            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72403        ) -> Result<BaseSocketGetMarkResult, fidl::Error> {
72404            let _response = fidl::client::decode_transaction_body::<
72405                fidl::encoding::ResultType<BaseSocketGetMarkResponse, fidl_fuchsia_posix::Errno>,
72406                fidl::encoding::DefaultFuchsiaResourceDialect,
72407                0x57a2752c61d93d47,
72408            >(_buf?)?;
72409            Ok(_response.map(|x| x.mark))
72410        }
72411        self.client.send_query_and_decode::<BaseSocketGetMarkRequest, BaseSocketGetMarkResult>(
72412            (domain,),
72413            0x57a2752c61d93d47,
72414            fidl::encoding::DynamicFlags::empty(),
72415            _decode,
72416        )
72417    }
72418
72419    type GetCookieResponseFut = fidl::client::QueryResponseFut<
72420        BaseSocketGetCookieResult,
72421        fidl::encoding::DefaultFuchsiaResourceDialect,
72422    >;
72423    fn r#get_cookie(&self) -> Self::GetCookieResponseFut {
72424        fn _decode(
72425            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72426        ) -> Result<BaseSocketGetCookieResult, fidl::Error> {
72427            let _response = fidl::client::decode_transaction_body::<
72428                fidl::encoding::ResultType<BaseSocketGetCookieResponse, fidl_fuchsia_posix::Errno>,
72429                fidl::encoding::DefaultFuchsiaResourceDialect,
72430                0x2c2f47fd8f924e52,
72431            >(_buf?)?;
72432            Ok(_response.map(|x| x.value))
72433        }
72434        self.client
72435            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseSocketGetCookieResult>(
72436                (),
72437                0x2c2f47fd8f924e52,
72438                fidl::encoding::DynamicFlags::empty(),
72439                _decode,
72440            )
72441    }
72442
72443    type BindResponseFut = fidl::client::QueryResponseFut<
72444        BaseNetworkSocketBindResult,
72445        fidl::encoding::DefaultFuchsiaResourceDialect,
72446    >;
72447    fn r#bind(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::BindResponseFut {
72448        fn _decode(
72449            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72450        ) -> Result<BaseNetworkSocketBindResult, fidl::Error> {
72451            let _response = fidl::client::decode_transaction_body::<
72452                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72453                fidl::encoding::DefaultFuchsiaResourceDialect,
72454                0x4bc6400ae92125d,
72455            >(_buf?)?;
72456            Ok(_response.map(|x| x))
72457        }
72458        self.client
72459            .send_query_and_decode::<BaseNetworkSocketBindRequest, BaseNetworkSocketBindResult>(
72460                (addr,),
72461                0x4bc6400ae92125d,
72462                fidl::encoding::DynamicFlags::empty(),
72463                _decode,
72464            )
72465    }
72466
72467    type ConnectResponseFut = fidl::client::QueryResponseFut<
72468        BaseNetworkSocketConnectResult,
72469        fidl::encoding::DefaultFuchsiaResourceDialect,
72470    >;
72471    fn r#connect(&self, mut addr: &fidl_fuchsia_net::SocketAddress) -> Self::ConnectResponseFut {
72472        fn _decode(
72473            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72474        ) -> Result<BaseNetworkSocketConnectResult, fidl::Error> {
72475            let _response = fidl::client::decode_transaction_body::<
72476                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72477                fidl::encoding::DefaultFuchsiaResourceDialect,
72478                0x5f05f19bfdd38871,
72479            >(_buf?)?;
72480            Ok(_response.map(|x| x))
72481        }
72482        self.client.send_query_and_decode::<
72483            BaseNetworkSocketConnectRequest,
72484            BaseNetworkSocketConnectResult,
72485        >(
72486            (addr,),
72487            0x5f05f19bfdd38871,
72488            fidl::encoding::DynamicFlags::empty(),
72489            _decode,
72490        )
72491    }
72492
72493    type DisconnectResponseFut = fidl::client::QueryResponseFut<
72494        BaseNetworkSocketDisconnectResult,
72495        fidl::encoding::DefaultFuchsiaResourceDialect,
72496    >;
72497    fn r#disconnect(&self) -> Self::DisconnectResponseFut {
72498        fn _decode(
72499            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72500        ) -> Result<BaseNetworkSocketDisconnectResult, fidl::Error> {
72501            let _response = fidl::client::decode_transaction_body::<
72502                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72503                fidl::encoding::DefaultFuchsiaResourceDialect,
72504                0x74e63b91f7b29b2,
72505            >(_buf?)?;
72506            Ok(_response.map(|x| x))
72507        }
72508        self.client.send_query_and_decode::<
72509            fidl::encoding::EmptyPayload,
72510            BaseNetworkSocketDisconnectResult,
72511        >(
72512            (),
72513            0x74e63b91f7b29b2,
72514            fidl::encoding::DynamicFlags::empty(),
72515            _decode,
72516        )
72517    }
72518
72519    type GetSockNameResponseFut = fidl::client::QueryResponseFut<
72520        BaseNetworkSocketGetSockNameResult,
72521        fidl::encoding::DefaultFuchsiaResourceDialect,
72522    >;
72523    fn r#get_sock_name(&self) -> Self::GetSockNameResponseFut {
72524        fn _decode(
72525            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72526        ) -> Result<BaseNetworkSocketGetSockNameResult, fidl::Error> {
72527            let _response = fidl::client::decode_transaction_body::<
72528                fidl::encoding::ResultType<
72529                    BaseNetworkSocketGetSockNameResponse,
72530                    fidl_fuchsia_posix::Errno,
72531                >,
72532                fidl::encoding::DefaultFuchsiaResourceDialect,
72533                0x475f23f84a1a4f85,
72534            >(_buf?)?;
72535            Ok(_response.map(|x| x.addr))
72536        }
72537        self.client.send_query_and_decode::<
72538            fidl::encoding::EmptyPayload,
72539            BaseNetworkSocketGetSockNameResult,
72540        >(
72541            (),
72542            0x475f23f84a1a4f85,
72543            fidl::encoding::DynamicFlags::empty(),
72544            _decode,
72545        )
72546    }
72547
72548    type GetPeerNameResponseFut = fidl::client::QueryResponseFut<
72549        BaseNetworkSocketGetPeerNameResult,
72550        fidl::encoding::DefaultFuchsiaResourceDialect,
72551    >;
72552    fn r#get_peer_name(&self) -> Self::GetPeerNameResponseFut {
72553        fn _decode(
72554            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72555        ) -> Result<BaseNetworkSocketGetPeerNameResult, fidl::Error> {
72556            let _response = fidl::client::decode_transaction_body::<
72557                fidl::encoding::ResultType<
72558                    BaseNetworkSocketGetPeerNameResponse,
72559                    fidl_fuchsia_posix::Errno,
72560                >,
72561                fidl::encoding::DefaultFuchsiaResourceDialect,
72562                0x1ffecf4bd5b6432e,
72563            >(_buf?)?;
72564            Ok(_response.map(|x| x.addr))
72565        }
72566        self.client.send_query_and_decode::<
72567            fidl::encoding::EmptyPayload,
72568            BaseNetworkSocketGetPeerNameResult,
72569        >(
72570            (),
72571            0x1ffecf4bd5b6432e,
72572            fidl::encoding::DynamicFlags::empty(),
72573            _decode,
72574        )
72575    }
72576
72577    type ShutdownResponseFut = fidl::client::QueryResponseFut<
72578        BaseNetworkSocketShutdownResult,
72579        fidl::encoding::DefaultFuchsiaResourceDialect,
72580    >;
72581    fn r#shutdown(&self, mut mode: ShutdownMode) -> Self::ShutdownResponseFut {
72582        fn _decode(
72583            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72584        ) -> Result<BaseNetworkSocketShutdownResult, fidl::Error> {
72585            let _response = fidl::client::decode_transaction_body::<
72586                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72587                fidl::encoding::DefaultFuchsiaResourceDialect,
72588                0x247f38b6db68c336,
72589            >(_buf?)?;
72590            Ok(_response.map(|x| x))
72591        }
72592        self.client.send_query_and_decode::<
72593            BaseNetworkSocketShutdownRequest,
72594            BaseNetworkSocketShutdownResult,
72595        >(
72596            (mode,),
72597            0x247f38b6db68c336,
72598            fidl::encoding::DynamicFlags::empty(),
72599            _decode,
72600        )
72601    }
72602
72603    type SetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
72604        BaseNetworkSocketSetIpTypeOfServiceResult,
72605        fidl::encoding::DefaultFuchsiaResourceDialect,
72606    >;
72607    fn r#set_ip_type_of_service(&self, mut value: u8) -> Self::SetIpTypeOfServiceResponseFut {
72608        fn _decode(
72609            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72610        ) -> Result<BaseNetworkSocketSetIpTypeOfServiceResult, fidl::Error> {
72611            let _response = fidl::client::decode_transaction_body::<
72612                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72613                fidl::encoding::DefaultFuchsiaResourceDialect,
72614                0x995c600475b6d46,
72615            >(_buf?)?;
72616            Ok(_response.map(|x| x))
72617        }
72618        self.client.send_query_and_decode::<
72619            BaseNetworkSocketSetIpTypeOfServiceRequest,
72620            BaseNetworkSocketSetIpTypeOfServiceResult,
72621        >(
72622            (value,),
72623            0x995c600475b6d46,
72624            fidl::encoding::DynamicFlags::empty(),
72625            _decode,
72626        )
72627    }
72628
72629    type GetIpTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
72630        BaseNetworkSocketGetIpTypeOfServiceResult,
72631        fidl::encoding::DefaultFuchsiaResourceDialect,
72632    >;
72633    fn r#get_ip_type_of_service(&self) -> Self::GetIpTypeOfServiceResponseFut {
72634        fn _decode(
72635            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72636        ) -> Result<BaseNetworkSocketGetIpTypeOfServiceResult, fidl::Error> {
72637            let _response = fidl::client::decode_transaction_body::<
72638                fidl::encoding::ResultType<
72639                    BaseNetworkSocketGetIpTypeOfServiceResponse,
72640                    fidl_fuchsia_posix::Errno,
72641                >,
72642                fidl::encoding::DefaultFuchsiaResourceDialect,
72643                0x3814a04259f75fcb,
72644            >(_buf?)?;
72645            Ok(_response.map(|x| x.value))
72646        }
72647        self.client.send_query_and_decode::<
72648            fidl::encoding::EmptyPayload,
72649            BaseNetworkSocketGetIpTypeOfServiceResult,
72650        >(
72651            (),
72652            0x3814a04259f75fcb,
72653            fidl::encoding::DynamicFlags::empty(),
72654            _decode,
72655        )
72656    }
72657
72658    type SetIpTtlResponseFut = fidl::client::QueryResponseFut<
72659        BaseNetworkSocketSetIpTtlResult,
72660        fidl::encoding::DefaultFuchsiaResourceDialect,
72661    >;
72662    fn r#set_ip_ttl(&self, mut value: &OptionalUint8) -> Self::SetIpTtlResponseFut {
72663        fn _decode(
72664            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72665        ) -> Result<BaseNetworkSocketSetIpTtlResult, fidl::Error> {
72666            let _response = fidl::client::decode_transaction_body::<
72667                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72668                fidl::encoding::DefaultFuchsiaResourceDialect,
72669                0x29e2424b433ae1ef,
72670            >(_buf?)?;
72671            Ok(_response.map(|x| x))
72672        }
72673        self.client.send_query_and_decode::<
72674            BaseNetworkSocketSetIpTtlRequest,
72675            BaseNetworkSocketSetIpTtlResult,
72676        >(
72677            (value,),
72678            0x29e2424b433ae1ef,
72679            fidl::encoding::DynamicFlags::empty(),
72680            _decode,
72681        )
72682    }
72683
72684    type GetIpTtlResponseFut = fidl::client::QueryResponseFut<
72685        BaseNetworkSocketGetIpTtlResult,
72686        fidl::encoding::DefaultFuchsiaResourceDialect,
72687    >;
72688    fn r#get_ip_ttl(&self) -> Self::GetIpTtlResponseFut {
72689        fn _decode(
72690            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72691        ) -> Result<BaseNetworkSocketGetIpTtlResult, fidl::Error> {
72692            let _response = fidl::client::decode_transaction_body::<
72693                fidl::encoding::ResultType<
72694                    BaseNetworkSocketGetIpTtlResponse,
72695                    fidl_fuchsia_posix::Errno,
72696                >,
72697                fidl::encoding::DefaultFuchsiaResourceDialect,
72698                0x47e47fa1f24da471,
72699            >(_buf?)?;
72700            Ok(_response.map(|x| x.value))
72701        }
72702        self.client
72703            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseNetworkSocketGetIpTtlResult>(
72704                (),
72705                0x47e47fa1f24da471,
72706                fidl::encoding::DynamicFlags::empty(),
72707                _decode,
72708            )
72709    }
72710
72711    type SetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
72712        BaseNetworkSocketSetIpPacketInfoResult,
72713        fidl::encoding::DefaultFuchsiaResourceDialect,
72714    >;
72715    fn r#set_ip_packet_info(&self, mut value: bool) -> Self::SetIpPacketInfoResponseFut {
72716        fn _decode(
72717            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72718        ) -> Result<BaseNetworkSocketSetIpPacketInfoResult, fidl::Error> {
72719            let _response = fidl::client::decode_transaction_body::<
72720                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72721                fidl::encoding::DefaultFuchsiaResourceDialect,
72722                0x392d16bee20c0e16,
72723            >(_buf?)?;
72724            Ok(_response.map(|x| x))
72725        }
72726        self.client.send_query_and_decode::<
72727            BaseNetworkSocketSetIpPacketInfoRequest,
72728            BaseNetworkSocketSetIpPacketInfoResult,
72729        >(
72730            (value,),
72731            0x392d16bee20c0e16,
72732            fidl::encoding::DynamicFlags::empty(),
72733            _decode,
72734        )
72735    }
72736
72737    type GetIpPacketInfoResponseFut = fidl::client::QueryResponseFut<
72738        BaseNetworkSocketGetIpPacketInfoResult,
72739        fidl::encoding::DefaultFuchsiaResourceDialect,
72740    >;
72741    fn r#get_ip_packet_info(&self) -> Self::GetIpPacketInfoResponseFut {
72742        fn _decode(
72743            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72744        ) -> Result<BaseNetworkSocketGetIpPacketInfoResult, fidl::Error> {
72745            let _response = fidl::client::decode_transaction_body::<
72746                fidl::encoding::ResultType<
72747                    BaseNetworkSocketGetIpPacketInfoResponse,
72748                    fidl_fuchsia_posix::Errno,
72749                >,
72750                fidl::encoding::DefaultFuchsiaResourceDialect,
72751                0x54b505f242280740,
72752            >(_buf?)?;
72753            Ok(_response.map(|x| x.value))
72754        }
72755        self.client.send_query_and_decode::<
72756            fidl::encoding::EmptyPayload,
72757            BaseNetworkSocketGetIpPacketInfoResult,
72758        >(
72759            (),
72760            0x54b505f242280740,
72761            fidl::encoding::DynamicFlags::empty(),
72762            _decode,
72763        )
72764    }
72765
72766    type SetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
72767        BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
72768        fidl::encoding::DefaultFuchsiaResourceDialect,
72769    >;
72770    fn r#set_ip_receive_type_of_service(
72771        &self,
72772        mut value: bool,
72773    ) -> Self::SetIpReceiveTypeOfServiceResponseFut {
72774        fn _decode(
72775            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72776        ) -> Result<BaseNetworkSocketSetIpReceiveTypeOfServiceResult, fidl::Error> {
72777            let _response = fidl::client::decode_transaction_body::<
72778                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72779                fidl::encoding::DefaultFuchsiaResourceDialect,
72780                0x6c4f6714995f84ef,
72781            >(_buf?)?;
72782            Ok(_response.map(|x| x))
72783        }
72784        self.client.send_query_and_decode::<
72785            BaseNetworkSocketSetIpReceiveTypeOfServiceRequest,
72786            BaseNetworkSocketSetIpReceiveTypeOfServiceResult,
72787        >(
72788            (value,),
72789            0x6c4f6714995f84ef,
72790            fidl::encoding::DynamicFlags::empty(),
72791            _decode,
72792        )
72793    }
72794
72795    type GetIpReceiveTypeOfServiceResponseFut = fidl::client::QueryResponseFut<
72796        BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
72797        fidl::encoding::DefaultFuchsiaResourceDialect,
72798    >;
72799    fn r#get_ip_receive_type_of_service(&self) -> Self::GetIpReceiveTypeOfServiceResponseFut {
72800        fn _decode(
72801            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72802        ) -> Result<BaseNetworkSocketGetIpReceiveTypeOfServiceResult, fidl::Error> {
72803            let _response = fidl::client::decode_transaction_body::<
72804                fidl::encoding::ResultType<
72805                    BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
72806                    fidl_fuchsia_posix::Errno,
72807                >,
72808                fidl::encoding::DefaultFuchsiaResourceDialect,
72809                0x4158ba7dc2795960,
72810            >(_buf?)?;
72811            Ok(_response.map(|x| x.value))
72812        }
72813        self.client.send_query_and_decode::<
72814            fidl::encoding::EmptyPayload,
72815            BaseNetworkSocketGetIpReceiveTypeOfServiceResult,
72816        >(
72817            (),
72818            0x4158ba7dc2795960,
72819            fidl::encoding::DynamicFlags::empty(),
72820            _decode,
72821        )
72822    }
72823
72824    type SetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
72825        BaseNetworkSocketSetIpReceiveTtlResult,
72826        fidl::encoding::DefaultFuchsiaResourceDialect,
72827    >;
72828    fn r#set_ip_receive_ttl(&self, mut value: bool) -> Self::SetIpReceiveTtlResponseFut {
72829        fn _decode(
72830            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72831        ) -> Result<BaseNetworkSocketSetIpReceiveTtlResult, fidl::Error> {
72832            let _response = fidl::client::decode_transaction_body::<
72833                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72834                fidl::encoding::DefaultFuchsiaResourceDialect,
72835                0x46f15be0ce0ab82b,
72836            >(_buf?)?;
72837            Ok(_response.map(|x| x))
72838        }
72839        self.client.send_query_and_decode::<
72840            BaseNetworkSocketSetIpReceiveTtlRequest,
72841            BaseNetworkSocketSetIpReceiveTtlResult,
72842        >(
72843            (value,),
72844            0x46f15be0ce0ab82b,
72845            fidl::encoding::DynamicFlags::empty(),
72846            _decode,
72847        )
72848    }
72849
72850    type GetIpReceiveTtlResponseFut = fidl::client::QueryResponseFut<
72851        BaseNetworkSocketGetIpReceiveTtlResult,
72852        fidl::encoding::DefaultFuchsiaResourceDialect,
72853    >;
72854    fn r#get_ip_receive_ttl(&self) -> Self::GetIpReceiveTtlResponseFut {
72855        fn _decode(
72856            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72857        ) -> Result<BaseNetworkSocketGetIpReceiveTtlResult, fidl::Error> {
72858            let _response = fidl::client::decode_transaction_body::<
72859                fidl::encoding::ResultType<
72860                    BaseNetworkSocketGetIpReceiveTtlResponse,
72861                    fidl_fuchsia_posix::Errno,
72862                >,
72863                fidl::encoding::DefaultFuchsiaResourceDialect,
72864                0x678ddd5a5dfa2eb5,
72865            >(_buf?)?;
72866            Ok(_response.map(|x| x.value))
72867        }
72868        self.client.send_query_and_decode::<
72869            fidl::encoding::EmptyPayload,
72870            BaseNetworkSocketGetIpReceiveTtlResult,
72871        >(
72872            (),
72873            0x678ddd5a5dfa2eb5,
72874            fidl::encoding::DynamicFlags::empty(),
72875            _decode,
72876        )
72877    }
72878
72879    type SetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
72880        BaseNetworkSocketSetIpMulticastInterfaceResult,
72881        fidl::encoding::DefaultFuchsiaResourceDialect,
72882    >;
72883    fn r#set_ip_multicast_interface(
72884        &self,
72885        mut iface: u64,
72886        mut address: &fidl_fuchsia_net::Ipv4Address,
72887    ) -> Self::SetIpMulticastInterfaceResponseFut {
72888        fn _decode(
72889            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72890        ) -> Result<BaseNetworkSocketSetIpMulticastInterfaceResult, fidl::Error> {
72891            let _response = fidl::client::decode_transaction_body::<
72892                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72893                fidl::encoding::DefaultFuchsiaResourceDialect,
72894                0x752fbfa9b12befe,
72895            >(_buf?)?;
72896            Ok(_response.map(|x| x))
72897        }
72898        self.client.send_query_and_decode::<
72899            BaseNetworkSocketSetIpMulticastInterfaceRequest,
72900            BaseNetworkSocketSetIpMulticastInterfaceResult,
72901        >(
72902            (iface, address,),
72903            0x752fbfa9b12befe,
72904            fidl::encoding::DynamicFlags::empty(),
72905            _decode,
72906        )
72907    }
72908
72909    type GetIpMulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
72910        BaseNetworkSocketGetIpMulticastInterfaceResult,
72911        fidl::encoding::DefaultFuchsiaResourceDialect,
72912    >;
72913    fn r#get_ip_multicast_interface(&self) -> Self::GetIpMulticastInterfaceResponseFut {
72914        fn _decode(
72915            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72916        ) -> Result<BaseNetworkSocketGetIpMulticastInterfaceResult, fidl::Error> {
72917            let _response = fidl::client::decode_transaction_body::<
72918                fidl::encoding::ResultType<
72919                    BaseNetworkSocketGetIpMulticastInterfaceResponse,
72920                    fidl_fuchsia_posix::Errno,
72921                >,
72922                fidl::encoding::DefaultFuchsiaResourceDialect,
72923                0x320bd14c4df046c4,
72924            >(_buf?)?;
72925            Ok(_response.map(|x| x.value))
72926        }
72927        self.client.send_query_and_decode::<
72928            fidl::encoding::EmptyPayload,
72929            BaseNetworkSocketGetIpMulticastInterfaceResult,
72930        >(
72931            (),
72932            0x320bd14c4df046c4,
72933            fidl::encoding::DynamicFlags::empty(),
72934            _decode,
72935        )
72936    }
72937
72938    type SetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
72939        BaseNetworkSocketSetIpMulticastTtlResult,
72940        fidl::encoding::DefaultFuchsiaResourceDialect,
72941    >;
72942    fn r#set_ip_multicast_ttl(
72943        &self,
72944        mut value: &OptionalUint8,
72945    ) -> Self::SetIpMulticastTtlResponseFut {
72946        fn _decode(
72947            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72948        ) -> Result<BaseNetworkSocketSetIpMulticastTtlResult, fidl::Error> {
72949            let _response = fidl::client::decode_transaction_body::<
72950                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
72951                fidl::encoding::DefaultFuchsiaResourceDialect,
72952                0x63134d53772916a1,
72953            >(_buf?)?;
72954            Ok(_response.map(|x| x))
72955        }
72956        self.client.send_query_and_decode::<
72957            BaseNetworkSocketSetIpMulticastTtlRequest,
72958            BaseNetworkSocketSetIpMulticastTtlResult,
72959        >(
72960            (value,),
72961            0x63134d53772916a1,
72962            fidl::encoding::DynamicFlags::empty(),
72963            _decode,
72964        )
72965    }
72966
72967    type GetIpMulticastTtlResponseFut = fidl::client::QueryResponseFut<
72968        BaseNetworkSocketGetIpMulticastTtlResult,
72969        fidl::encoding::DefaultFuchsiaResourceDialect,
72970    >;
72971    fn r#get_ip_multicast_ttl(&self) -> Self::GetIpMulticastTtlResponseFut {
72972        fn _decode(
72973            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
72974        ) -> Result<BaseNetworkSocketGetIpMulticastTtlResult, fidl::Error> {
72975            let _response = fidl::client::decode_transaction_body::<
72976                fidl::encoding::ResultType<
72977                    BaseNetworkSocketGetIpMulticastTtlResponse,
72978                    fidl_fuchsia_posix::Errno,
72979                >,
72980                fidl::encoding::DefaultFuchsiaResourceDialect,
72981                0x4665cd378f39e1a,
72982            >(_buf?)?;
72983            Ok(_response.map(|x| x.value))
72984        }
72985        self.client.send_query_and_decode::<
72986            fidl::encoding::EmptyPayload,
72987            BaseNetworkSocketGetIpMulticastTtlResult,
72988        >(
72989            (),
72990            0x4665cd378f39e1a,
72991            fidl::encoding::DynamicFlags::empty(),
72992            _decode,
72993        )
72994    }
72995
72996    type SetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
72997        BaseNetworkSocketSetIpMulticastLoopbackResult,
72998        fidl::encoding::DefaultFuchsiaResourceDialect,
72999    >;
73000    fn r#set_ip_multicast_loopback(
73001        &self,
73002        mut value: bool,
73003    ) -> Self::SetIpMulticastLoopbackResponseFut {
73004        fn _decode(
73005            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73006        ) -> Result<BaseNetworkSocketSetIpMulticastLoopbackResult, fidl::Error> {
73007            let _response = fidl::client::decode_transaction_body::<
73008                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73009                fidl::encoding::DefaultFuchsiaResourceDialect,
73010                0x20c55c11f00943ea,
73011            >(_buf?)?;
73012            Ok(_response.map(|x| x))
73013        }
73014        self.client.send_query_and_decode::<
73015            BaseNetworkSocketSetIpMulticastLoopbackRequest,
73016            BaseNetworkSocketSetIpMulticastLoopbackResult,
73017        >(
73018            (value,),
73019            0x20c55c11f00943ea,
73020            fidl::encoding::DynamicFlags::empty(),
73021            _decode,
73022        )
73023    }
73024
73025    type GetIpMulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
73026        BaseNetworkSocketGetIpMulticastLoopbackResult,
73027        fidl::encoding::DefaultFuchsiaResourceDialect,
73028    >;
73029    fn r#get_ip_multicast_loopback(&self) -> Self::GetIpMulticastLoopbackResponseFut {
73030        fn _decode(
73031            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73032        ) -> Result<BaseNetworkSocketGetIpMulticastLoopbackResult, fidl::Error> {
73033            let _response = fidl::client::decode_transaction_body::<
73034                fidl::encoding::ResultType<
73035                    BaseNetworkSocketGetIpMulticastLoopbackResponse,
73036                    fidl_fuchsia_posix::Errno,
73037                >,
73038                fidl::encoding::DefaultFuchsiaResourceDialect,
73039                0x3b6b26ff558298f2,
73040            >(_buf?)?;
73041            Ok(_response.map(|x| x.value))
73042        }
73043        self.client.send_query_and_decode::<
73044            fidl::encoding::EmptyPayload,
73045            BaseNetworkSocketGetIpMulticastLoopbackResult,
73046        >(
73047            (),
73048            0x3b6b26ff558298f2,
73049            fidl::encoding::DynamicFlags::empty(),
73050            _decode,
73051        )
73052    }
73053
73054    type AddIpMembershipResponseFut = fidl::client::QueryResponseFut<
73055        BaseNetworkSocketAddIpMembershipResult,
73056        fidl::encoding::DefaultFuchsiaResourceDialect,
73057    >;
73058    fn r#add_ip_membership(
73059        &self,
73060        mut membership: &IpMulticastMembership,
73061    ) -> Self::AddIpMembershipResponseFut {
73062        fn _decode(
73063            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73064        ) -> Result<BaseNetworkSocketAddIpMembershipResult, fidl::Error> {
73065            let _response = fidl::client::decode_transaction_body::<
73066                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73067                fidl::encoding::DefaultFuchsiaResourceDialect,
73068                0x76bc7df115a3b4d0,
73069            >(_buf?)?;
73070            Ok(_response.map(|x| x))
73071        }
73072        self.client.send_query_and_decode::<
73073            BaseNetworkSocketAddIpMembershipRequest,
73074            BaseNetworkSocketAddIpMembershipResult,
73075        >(
73076            (membership,),
73077            0x76bc7df115a3b4d0,
73078            fidl::encoding::DynamicFlags::empty(),
73079            _decode,
73080        )
73081    }
73082
73083    type DropIpMembershipResponseFut = fidl::client::QueryResponseFut<
73084        BaseNetworkSocketDropIpMembershipResult,
73085        fidl::encoding::DefaultFuchsiaResourceDialect,
73086    >;
73087    fn r#drop_ip_membership(
73088        &self,
73089        mut membership: &IpMulticastMembership,
73090    ) -> Self::DropIpMembershipResponseFut {
73091        fn _decode(
73092            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73093        ) -> Result<BaseNetworkSocketDropIpMembershipResult, fidl::Error> {
73094            let _response = fidl::client::decode_transaction_body::<
73095                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73096                fidl::encoding::DefaultFuchsiaResourceDialect,
73097                0x2888f3099188d03,
73098            >(_buf?)?;
73099            Ok(_response.map(|x| x))
73100        }
73101        self.client.send_query_and_decode::<
73102            BaseNetworkSocketDropIpMembershipRequest,
73103            BaseNetworkSocketDropIpMembershipResult,
73104        >(
73105            (membership,),
73106            0x2888f3099188d03,
73107            fidl::encoding::DynamicFlags::empty(),
73108            _decode,
73109        )
73110    }
73111
73112    type SetIpTransparentResponseFut = fidl::client::QueryResponseFut<
73113        BaseNetworkSocketSetIpTransparentResult,
73114        fidl::encoding::DefaultFuchsiaResourceDialect,
73115    >;
73116    fn r#set_ip_transparent(&self, mut value: bool) -> Self::SetIpTransparentResponseFut {
73117        fn _decode(
73118            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73119        ) -> Result<BaseNetworkSocketSetIpTransparentResult, fidl::Error> {
73120            let _response = fidl::client::decode_transaction_body::<
73121                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73122                fidl::encoding::DefaultFuchsiaResourceDialect,
73123                0x1ae532b0c066e3a0,
73124            >(_buf?)?;
73125            Ok(_response.map(|x| x))
73126        }
73127        self.client.send_query_and_decode::<
73128            BaseNetworkSocketSetIpTransparentRequest,
73129            BaseNetworkSocketSetIpTransparentResult,
73130        >(
73131            (value,),
73132            0x1ae532b0c066e3a0,
73133            fidl::encoding::DynamicFlags::empty(),
73134            _decode,
73135        )
73136    }
73137
73138    type GetIpTransparentResponseFut = fidl::client::QueryResponseFut<
73139        BaseNetworkSocketGetIpTransparentResult,
73140        fidl::encoding::DefaultFuchsiaResourceDialect,
73141    >;
73142    fn r#get_ip_transparent(&self) -> Self::GetIpTransparentResponseFut {
73143        fn _decode(
73144            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73145        ) -> Result<BaseNetworkSocketGetIpTransparentResult, fidl::Error> {
73146            let _response = fidl::client::decode_transaction_body::<
73147                fidl::encoding::ResultType<
73148                    BaseNetworkSocketGetIpTransparentResponse,
73149                    fidl_fuchsia_posix::Errno,
73150                >,
73151                fidl::encoding::DefaultFuchsiaResourceDialect,
73152                0x51d43695962ebfb5,
73153            >(_buf?)?;
73154            Ok(_response.map(|x| x.value))
73155        }
73156        self.client.send_query_and_decode::<
73157            fidl::encoding::EmptyPayload,
73158            BaseNetworkSocketGetIpTransparentResult,
73159        >(
73160            (),
73161            0x51d43695962ebfb5,
73162            fidl::encoding::DynamicFlags::empty(),
73163            _decode,
73164        )
73165    }
73166
73167    type SetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
73168        BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
73169        fidl::encoding::DefaultFuchsiaResourceDialect,
73170    >;
73171    fn r#set_ip_receive_original_destination_address(
73172        &self,
73173        mut value: bool,
73174    ) -> Self::SetIpReceiveOriginalDestinationAddressResponseFut {
73175        fn _decode(
73176            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73177        ) -> Result<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult, fidl::Error>
73178        {
73179            let _response = fidl::client::decode_transaction_body::<
73180                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73181                fidl::encoding::DefaultFuchsiaResourceDialect,
73182                0x4722b4ce52f7840,
73183            >(_buf?)?;
73184            Ok(_response.map(|x| x))
73185        }
73186        self.client.send_query_and_decode::<
73187            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest,
73188            BaseNetworkSocketSetIpReceiveOriginalDestinationAddressResult,
73189        >(
73190            (value,),
73191            0x4722b4ce52f7840,
73192            fidl::encoding::DynamicFlags::empty(),
73193            _decode,
73194        )
73195    }
73196
73197    type GetIpReceiveOriginalDestinationAddressResponseFut = fidl::client::QueryResponseFut<
73198        BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
73199        fidl::encoding::DefaultFuchsiaResourceDialect,
73200    >;
73201    fn r#get_ip_receive_original_destination_address(
73202        &self,
73203    ) -> Self::GetIpReceiveOriginalDestinationAddressResponseFut {
73204        fn _decode(
73205            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73206        ) -> Result<BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult, fidl::Error>
73207        {
73208            let _response = fidl::client::decode_transaction_body::<
73209                fidl::encoding::ResultType<
73210                    BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
73211                    fidl_fuchsia_posix::Errno,
73212                >,
73213                fidl::encoding::DefaultFuchsiaResourceDialect,
73214                0x2a0e7dc5d6bfdfe9,
73215            >(_buf?)?;
73216            Ok(_response.map(|x| x.value))
73217        }
73218        self.client.send_query_and_decode::<
73219            fidl::encoding::EmptyPayload,
73220            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResult,
73221        >(
73222            (),
73223            0x2a0e7dc5d6bfdfe9,
73224            fidl::encoding::DynamicFlags::empty(),
73225            _decode,
73226        )
73227    }
73228
73229    type AddIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
73230        BaseNetworkSocketAddIpv6MembershipResult,
73231        fidl::encoding::DefaultFuchsiaResourceDialect,
73232    >;
73233    fn r#add_ipv6_membership(
73234        &self,
73235        mut membership: &Ipv6MulticastMembership,
73236    ) -> Self::AddIpv6MembershipResponseFut {
73237        fn _decode(
73238            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73239        ) -> Result<BaseNetworkSocketAddIpv6MembershipResult, fidl::Error> {
73240            let _response = fidl::client::decode_transaction_body::<
73241                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73242                fidl::encoding::DefaultFuchsiaResourceDialect,
73243                0x7c94727acb4ea4b3,
73244            >(_buf?)?;
73245            Ok(_response.map(|x| x))
73246        }
73247        self.client.send_query_and_decode::<
73248            BaseNetworkSocketAddIpv6MembershipRequest,
73249            BaseNetworkSocketAddIpv6MembershipResult,
73250        >(
73251            (membership,),
73252            0x7c94727acb4ea4b3,
73253            fidl::encoding::DynamicFlags::empty(),
73254            _decode,
73255        )
73256    }
73257
73258    type DropIpv6MembershipResponseFut = fidl::client::QueryResponseFut<
73259        BaseNetworkSocketDropIpv6MembershipResult,
73260        fidl::encoding::DefaultFuchsiaResourceDialect,
73261    >;
73262    fn r#drop_ipv6_membership(
73263        &self,
73264        mut membership: &Ipv6MulticastMembership,
73265    ) -> Self::DropIpv6MembershipResponseFut {
73266        fn _decode(
73267            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73268        ) -> Result<BaseNetworkSocketDropIpv6MembershipResult, fidl::Error> {
73269            let _response = fidl::client::decode_transaction_body::<
73270                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73271                fidl::encoding::DefaultFuchsiaResourceDialect,
73272                0x42104c70ccaba304,
73273            >(_buf?)?;
73274            Ok(_response.map(|x| x))
73275        }
73276        self.client.send_query_and_decode::<
73277            BaseNetworkSocketDropIpv6MembershipRequest,
73278            BaseNetworkSocketDropIpv6MembershipResult,
73279        >(
73280            (membership,),
73281            0x42104c70ccaba304,
73282            fidl::encoding::DynamicFlags::empty(),
73283            _decode,
73284        )
73285    }
73286
73287    type SetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
73288        BaseNetworkSocketSetIpv6MulticastInterfaceResult,
73289        fidl::encoding::DefaultFuchsiaResourceDialect,
73290    >;
73291    fn r#set_ipv6_multicast_interface(
73292        &self,
73293        mut value: u64,
73294    ) -> Self::SetIpv6MulticastInterfaceResponseFut {
73295        fn _decode(
73296            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73297        ) -> Result<BaseNetworkSocketSetIpv6MulticastInterfaceResult, fidl::Error> {
73298            let _response = fidl::client::decode_transaction_body::<
73299                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73300                fidl::encoding::DefaultFuchsiaResourceDialect,
73301                0x135f76db3774ab3b,
73302            >(_buf?)?;
73303            Ok(_response.map(|x| x))
73304        }
73305        self.client.send_query_and_decode::<
73306            BaseNetworkSocketSetIpv6MulticastInterfaceRequest,
73307            BaseNetworkSocketSetIpv6MulticastInterfaceResult,
73308        >(
73309            (value,),
73310            0x135f76db3774ab3b,
73311            fidl::encoding::DynamicFlags::empty(),
73312            _decode,
73313        )
73314    }
73315
73316    type GetIpv6MulticastInterfaceResponseFut = fidl::client::QueryResponseFut<
73317        BaseNetworkSocketGetIpv6MulticastInterfaceResult,
73318        fidl::encoding::DefaultFuchsiaResourceDialect,
73319    >;
73320    fn r#get_ipv6_multicast_interface(&self) -> Self::GetIpv6MulticastInterfaceResponseFut {
73321        fn _decode(
73322            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73323        ) -> Result<BaseNetworkSocketGetIpv6MulticastInterfaceResult, fidl::Error> {
73324            let _response = fidl::client::decode_transaction_body::<
73325                fidl::encoding::ResultType<
73326                    BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
73327                    fidl_fuchsia_posix::Errno,
73328                >,
73329                fidl::encoding::DefaultFuchsiaResourceDialect,
73330                0x1f26fcdd348f1882,
73331            >(_buf?)?;
73332            Ok(_response.map(|x| x.value))
73333        }
73334        self.client.send_query_and_decode::<
73335            fidl::encoding::EmptyPayload,
73336            BaseNetworkSocketGetIpv6MulticastInterfaceResult,
73337        >(
73338            (),
73339            0x1f26fcdd348f1882,
73340            fidl::encoding::DynamicFlags::empty(),
73341            _decode,
73342        )
73343    }
73344
73345    type SetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
73346        BaseNetworkSocketSetIpv6UnicastHopsResult,
73347        fidl::encoding::DefaultFuchsiaResourceDialect,
73348    >;
73349    fn r#set_ipv6_unicast_hops(
73350        &self,
73351        mut value: &OptionalUint8,
73352    ) -> Self::SetIpv6UnicastHopsResponseFut {
73353        fn _decode(
73354            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73355        ) -> Result<BaseNetworkSocketSetIpv6UnicastHopsResult, fidl::Error> {
73356            let _response = fidl::client::decode_transaction_body::<
73357                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73358                fidl::encoding::DefaultFuchsiaResourceDialect,
73359                0x157d51e98f462859,
73360            >(_buf?)?;
73361            Ok(_response.map(|x| x))
73362        }
73363        self.client.send_query_and_decode::<
73364            BaseNetworkSocketSetIpv6UnicastHopsRequest,
73365            BaseNetworkSocketSetIpv6UnicastHopsResult,
73366        >(
73367            (value,),
73368            0x157d51e98f462859,
73369            fidl::encoding::DynamicFlags::empty(),
73370            _decode,
73371        )
73372    }
73373
73374    type GetIpv6UnicastHopsResponseFut = fidl::client::QueryResponseFut<
73375        BaseNetworkSocketGetIpv6UnicastHopsResult,
73376        fidl::encoding::DefaultFuchsiaResourceDialect,
73377    >;
73378    fn r#get_ipv6_unicast_hops(&self) -> Self::GetIpv6UnicastHopsResponseFut {
73379        fn _decode(
73380            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73381        ) -> Result<BaseNetworkSocketGetIpv6UnicastHopsResult, fidl::Error> {
73382            let _response = fidl::client::decode_transaction_body::<
73383                fidl::encoding::ResultType<
73384                    BaseNetworkSocketGetIpv6UnicastHopsResponse,
73385                    fidl_fuchsia_posix::Errno,
73386                >,
73387                fidl::encoding::DefaultFuchsiaResourceDialect,
73388                0x21f4641cad8bd8d2,
73389            >(_buf?)?;
73390            Ok(_response.map(|x| x.value))
73391        }
73392        self.client.send_query_and_decode::<
73393            fidl::encoding::EmptyPayload,
73394            BaseNetworkSocketGetIpv6UnicastHopsResult,
73395        >(
73396            (),
73397            0x21f4641cad8bd8d2,
73398            fidl::encoding::DynamicFlags::empty(),
73399            _decode,
73400        )
73401    }
73402
73403    type SetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
73404        BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
73405        fidl::encoding::DefaultFuchsiaResourceDialect,
73406    >;
73407    fn r#set_ipv6_receive_hop_limit(
73408        &self,
73409        mut value: bool,
73410    ) -> Self::SetIpv6ReceiveHopLimitResponseFut {
73411        fn _decode(
73412            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73413        ) -> Result<BaseNetworkSocketSetIpv6ReceiveHopLimitResult, fidl::Error> {
73414            let _response = fidl::client::decode_transaction_body::<
73415                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73416                fidl::encoding::DefaultFuchsiaResourceDialect,
73417                0x5c24808ed2e84a1e,
73418            >(_buf?)?;
73419            Ok(_response.map(|x| x))
73420        }
73421        self.client.send_query_and_decode::<
73422            BaseNetworkSocketSetIpv6ReceiveHopLimitRequest,
73423            BaseNetworkSocketSetIpv6ReceiveHopLimitResult,
73424        >(
73425            (value,),
73426            0x5c24808ed2e84a1e,
73427            fidl::encoding::DynamicFlags::empty(),
73428            _decode,
73429        )
73430    }
73431
73432    type GetIpv6ReceiveHopLimitResponseFut = fidl::client::QueryResponseFut<
73433        BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
73434        fidl::encoding::DefaultFuchsiaResourceDialect,
73435    >;
73436    fn r#get_ipv6_receive_hop_limit(&self) -> Self::GetIpv6ReceiveHopLimitResponseFut {
73437        fn _decode(
73438            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73439        ) -> Result<BaseNetworkSocketGetIpv6ReceiveHopLimitResult, fidl::Error> {
73440            let _response = fidl::client::decode_transaction_body::<
73441                fidl::encoding::ResultType<
73442                    BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
73443                    fidl_fuchsia_posix::Errno,
73444                >,
73445                fidl::encoding::DefaultFuchsiaResourceDialect,
73446                0x341e06689885b4c0,
73447            >(_buf?)?;
73448            Ok(_response.map(|x| x.value))
73449        }
73450        self.client.send_query_and_decode::<
73451            fidl::encoding::EmptyPayload,
73452            BaseNetworkSocketGetIpv6ReceiveHopLimitResult,
73453        >(
73454            (),
73455            0x341e06689885b4c0,
73456            fidl::encoding::DynamicFlags::empty(),
73457            _decode,
73458        )
73459    }
73460
73461    type SetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
73462        BaseNetworkSocketSetIpv6MulticastHopsResult,
73463        fidl::encoding::DefaultFuchsiaResourceDialect,
73464    >;
73465    fn r#set_ipv6_multicast_hops(
73466        &self,
73467        mut value: &OptionalUint8,
73468    ) -> Self::SetIpv6MulticastHopsResponseFut {
73469        fn _decode(
73470            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73471        ) -> Result<BaseNetworkSocketSetIpv6MulticastHopsResult, fidl::Error> {
73472            let _response = fidl::client::decode_transaction_body::<
73473                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73474                fidl::encoding::DefaultFuchsiaResourceDialect,
73475                0x25b9cd4d181f82c1,
73476            >(_buf?)?;
73477            Ok(_response.map(|x| x))
73478        }
73479        self.client.send_query_and_decode::<
73480            BaseNetworkSocketSetIpv6MulticastHopsRequest,
73481            BaseNetworkSocketSetIpv6MulticastHopsResult,
73482        >(
73483            (value,),
73484            0x25b9cd4d181f82c1,
73485            fidl::encoding::DynamicFlags::empty(),
73486            _decode,
73487        )
73488    }
73489
73490    type GetIpv6MulticastHopsResponseFut = fidl::client::QueryResponseFut<
73491        BaseNetworkSocketGetIpv6MulticastHopsResult,
73492        fidl::encoding::DefaultFuchsiaResourceDialect,
73493    >;
73494    fn r#get_ipv6_multicast_hops(&self) -> Self::GetIpv6MulticastHopsResponseFut {
73495        fn _decode(
73496            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73497        ) -> Result<BaseNetworkSocketGetIpv6MulticastHopsResult, fidl::Error> {
73498            let _response = fidl::client::decode_transaction_body::<
73499                fidl::encoding::ResultType<
73500                    BaseNetworkSocketGetIpv6MulticastHopsResponse,
73501                    fidl_fuchsia_posix::Errno,
73502                >,
73503                fidl::encoding::DefaultFuchsiaResourceDialect,
73504                0x52916948a365012a,
73505            >(_buf?)?;
73506            Ok(_response.map(|x| x.value))
73507        }
73508        self.client.send_query_and_decode::<
73509            fidl::encoding::EmptyPayload,
73510            BaseNetworkSocketGetIpv6MulticastHopsResult,
73511        >(
73512            (),
73513            0x52916948a365012a,
73514            fidl::encoding::DynamicFlags::empty(),
73515            _decode,
73516        )
73517    }
73518
73519    type SetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
73520        BaseNetworkSocketSetIpv6MulticastLoopbackResult,
73521        fidl::encoding::DefaultFuchsiaResourceDialect,
73522    >;
73523    fn r#set_ipv6_multicast_loopback(
73524        &self,
73525        mut value: bool,
73526    ) -> Self::SetIpv6MulticastLoopbackResponseFut {
73527        fn _decode(
73528            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73529        ) -> Result<BaseNetworkSocketSetIpv6MulticastLoopbackResult, fidl::Error> {
73530            let _response = fidl::client::decode_transaction_body::<
73531                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73532                fidl::encoding::DefaultFuchsiaResourceDialect,
73533                0x55701c409ff41b40,
73534            >(_buf?)?;
73535            Ok(_response.map(|x| x))
73536        }
73537        self.client.send_query_and_decode::<
73538            BaseNetworkSocketSetIpv6MulticastLoopbackRequest,
73539            BaseNetworkSocketSetIpv6MulticastLoopbackResult,
73540        >(
73541            (value,),
73542            0x55701c409ff41b40,
73543            fidl::encoding::DynamicFlags::empty(),
73544            _decode,
73545        )
73546    }
73547
73548    type GetIpv6MulticastLoopbackResponseFut = fidl::client::QueryResponseFut<
73549        BaseNetworkSocketGetIpv6MulticastLoopbackResult,
73550        fidl::encoding::DefaultFuchsiaResourceDialect,
73551    >;
73552    fn r#get_ipv6_multicast_loopback(&self) -> Self::GetIpv6MulticastLoopbackResponseFut {
73553        fn _decode(
73554            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73555        ) -> Result<BaseNetworkSocketGetIpv6MulticastLoopbackResult, fidl::Error> {
73556            let _response = fidl::client::decode_transaction_body::<
73557                fidl::encoding::ResultType<
73558                    BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
73559                    fidl_fuchsia_posix::Errno,
73560                >,
73561                fidl::encoding::DefaultFuchsiaResourceDialect,
73562                0x4415b701fde319c3,
73563            >(_buf?)?;
73564            Ok(_response.map(|x| x.value))
73565        }
73566        self.client.send_query_and_decode::<
73567            fidl::encoding::EmptyPayload,
73568            BaseNetworkSocketGetIpv6MulticastLoopbackResult,
73569        >(
73570            (),
73571            0x4415b701fde319c3,
73572            fidl::encoding::DynamicFlags::empty(),
73573            _decode,
73574        )
73575    }
73576
73577    type SetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
73578        BaseNetworkSocketSetIpv6OnlyResult,
73579        fidl::encoding::DefaultFuchsiaResourceDialect,
73580    >;
73581    fn r#set_ipv6_only(&self, mut value: bool) -> Self::SetIpv6OnlyResponseFut {
73582        fn _decode(
73583            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73584        ) -> Result<BaseNetworkSocketSetIpv6OnlyResult, fidl::Error> {
73585            let _response = fidl::client::decode_transaction_body::<
73586                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73587                fidl::encoding::DefaultFuchsiaResourceDialect,
73588                0x4873f1364758cbba,
73589            >(_buf?)?;
73590            Ok(_response.map(|x| x))
73591        }
73592        self.client.send_query_and_decode::<
73593            BaseNetworkSocketSetIpv6OnlyRequest,
73594            BaseNetworkSocketSetIpv6OnlyResult,
73595        >(
73596            (value,),
73597            0x4873f1364758cbba,
73598            fidl::encoding::DynamicFlags::empty(),
73599            _decode,
73600        )
73601    }
73602
73603    type GetIpv6OnlyResponseFut = fidl::client::QueryResponseFut<
73604        BaseNetworkSocketGetIpv6OnlyResult,
73605        fidl::encoding::DefaultFuchsiaResourceDialect,
73606    >;
73607    fn r#get_ipv6_only(&self) -> Self::GetIpv6OnlyResponseFut {
73608        fn _decode(
73609            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73610        ) -> Result<BaseNetworkSocketGetIpv6OnlyResult, fidl::Error> {
73611            let _response = fidl::client::decode_transaction_body::<
73612                fidl::encoding::ResultType<
73613                    BaseNetworkSocketGetIpv6OnlyResponse,
73614                    fidl_fuchsia_posix::Errno,
73615                >,
73616                fidl::encoding::DefaultFuchsiaResourceDialect,
73617                0x4aa3340a1a26b89c,
73618            >(_buf?)?;
73619            Ok(_response.map(|x| x.value))
73620        }
73621        self.client.send_query_and_decode::<
73622            fidl::encoding::EmptyPayload,
73623            BaseNetworkSocketGetIpv6OnlyResult,
73624        >(
73625            (),
73626            0x4aa3340a1a26b89c,
73627            fidl::encoding::DynamicFlags::empty(),
73628            _decode,
73629        )
73630    }
73631
73632    type SetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
73633        BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
73634        fidl::encoding::DefaultFuchsiaResourceDialect,
73635    >;
73636    fn r#set_ipv6_receive_traffic_class(
73637        &self,
73638        mut value: bool,
73639    ) -> Self::SetIpv6ReceiveTrafficClassResponseFut {
73640        fn _decode(
73641            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73642        ) -> Result<BaseNetworkSocketSetIpv6ReceiveTrafficClassResult, fidl::Error> {
73643            let _response = fidl::client::decode_transaction_body::<
73644                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73645                fidl::encoding::DefaultFuchsiaResourceDialect,
73646                0x58f07c8788d099a0,
73647            >(_buf?)?;
73648            Ok(_response.map(|x| x))
73649        }
73650        self.client.send_query_and_decode::<
73651            BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest,
73652            BaseNetworkSocketSetIpv6ReceiveTrafficClassResult,
73653        >(
73654            (value,),
73655            0x58f07c8788d099a0,
73656            fidl::encoding::DynamicFlags::empty(),
73657            _decode,
73658        )
73659    }
73660
73661    type GetIpv6ReceiveTrafficClassResponseFut = fidl::client::QueryResponseFut<
73662        BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
73663        fidl::encoding::DefaultFuchsiaResourceDialect,
73664    >;
73665    fn r#get_ipv6_receive_traffic_class(&self) -> Self::GetIpv6ReceiveTrafficClassResponseFut {
73666        fn _decode(
73667            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73668        ) -> Result<BaseNetworkSocketGetIpv6ReceiveTrafficClassResult, fidl::Error> {
73669            let _response = fidl::client::decode_transaction_body::<
73670                fidl::encoding::ResultType<
73671                    BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
73672                    fidl_fuchsia_posix::Errno,
73673                >,
73674                fidl::encoding::DefaultFuchsiaResourceDialect,
73675                0x2e334df1da553ffa,
73676            >(_buf?)?;
73677            Ok(_response.map(|x| x.value))
73678        }
73679        self.client.send_query_and_decode::<
73680            fidl::encoding::EmptyPayload,
73681            BaseNetworkSocketGetIpv6ReceiveTrafficClassResult,
73682        >(
73683            (),
73684            0x2e334df1da553ffa,
73685            fidl::encoding::DynamicFlags::empty(),
73686            _decode,
73687        )
73688    }
73689
73690    type SetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
73691        BaseNetworkSocketSetIpv6TrafficClassResult,
73692        fidl::encoding::DefaultFuchsiaResourceDialect,
73693    >;
73694    fn r#set_ipv6_traffic_class(
73695        &self,
73696        mut value: &OptionalUint8,
73697    ) -> Self::SetIpv6TrafficClassResponseFut {
73698        fn _decode(
73699            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73700        ) -> Result<BaseNetworkSocketSetIpv6TrafficClassResult, fidl::Error> {
73701            let _response = fidl::client::decode_transaction_body::<
73702                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73703                fidl::encoding::DefaultFuchsiaResourceDialect,
73704                0x6af077800c5a0b4f,
73705            >(_buf?)?;
73706            Ok(_response.map(|x| x))
73707        }
73708        self.client.send_query_and_decode::<
73709            BaseNetworkSocketSetIpv6TrafficClassRequest,
73710            BaseNetworkSocketSetIpv6TrafficClassResult,
73711        >(
73712            (value,),
73713            0x6af077800c5a0b4f,
73714            fidl::encoding::DynamicFlags::empty(),
73715            _decode,
73716        )
73717    }
73718
73719    type GetIpv6TrafficClassResponseFut = fidl::client::QueryResponseFut<
73720        BaseNetworkSocketGetIpv6TrafficClassResult,
73721        fidl::encoding::DefaultFuchsiaResourceDialect,
73722    >;
73723    fn r#get_ipv6_traffic_class(&self) -> Self::GetIpv6TrafficClassResponseFut {
73724        fn _decode(
73725            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73726        ) -> Result<BaseNetworkSocketGetIpv6TrafficClassResult, fidl::Error> {
73727            let _response = fidl::client::decode_transaction_body::<
73728                fidl::encoding::ResultType<
73729                    BaseNetworkSocketGetIpv6TrafficClassResponse,
73730                    fidl_fuchsia_posix::Errno,
73731                >,
73732                fidl::encoding::DefaultFuchsiaResourceDialect,
73733                0x6baf6eed8fc2f04,
73734            >(_buf?)?;
73735            Ok(_response.map(|x| x.value))
73736        }
73737        self.client.send_query_and_decode::<
73738            fidl::encoding::EmptyPayload,
73739            BaseNetworkSocketGetIpv6TrafficClassResult,
73740        >(
73741            (),
73742            0x6baf6eed8fc2f04,
73743            fidl::encoding::DynamicFlags::empty(),
73744            _decode,
73745        )
73746    }
73747
73748    type SetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
73749        BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
73750        fidl::encoding::DefaultFuchsiaResourceDialect,
73751    >;
73752    fn r#set_ipv6_receive_packet_info(
73753        &self,
73754        mut value: bool,
73755    ) -> Self::SetIpv6ReceivePacketInfoResponseFut {
73756        fn _decode(
73757            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73758        ) -> Result<BaseNetworkSocketSetIpv6ReceivePacketInfoResult, fidl::Error> {
73759            let _response = fidl::client::decode_transaction_body::<
73760                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, fidl_fuchsia_posix::Errno>,
73761                fidl::encoding::DefaultFuchsiaResourceDialect,
73762                0x19259775b1a92768,
73763            >(_buf?)?;
73764            Ok(_response.map(|x| x))
73765        }
73766        self.client.send_query_and_decode::<
73767            BaseNetworkSocketSetIpv6ReceivePacketInfoRequest,
73768            BaseNetworkSocketSetIpv6ReceivePacketInfoResult,
73769        >(
73770            (value,),
73771            0x19259775b1a92768,
73772            fidl::encoding::DynamicFlags::empty(),
73773            _decode,
73774        )
73775    }
73776
73777    type GetIpv6ReceivePacketInfoResponseFut = fidl::client::QueryResponseFut<
73778        BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
73779        fidl::encoding::DefaultFuchsiaResourceDialect,
73780    >;
73781    fn r#get_ipv6_receive_packet_info(&self) -> Self::GetIpv6ReceivePacketInfoResponseFut {
73782        fn _decode(
73783            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73784        ) -> Result<BaseNetworkSocketGetIpv6ReceivePacketInfoResult, fidl::Error> {
73785            let _response = fidl::client::decode_transaction_body::<
73786                fidl::encoding::ResultType<
73787                    BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
73788                    fidl_fuchsia_posix::Errno,
73789                >,
73790                fidl::encoding::DefaultFuchsiaResourceDialect,
73791                0x7acd4a2775baec75,
73792            >(_buf?)?;
73793            Ok(_response.map(|x| x.value))
73794        }
73795        self.client.send_query_and_decode::<
73796            fidl::encoding::EmptyPayload,
73797            BaseNetworkSocketGetIpv6ReceivePacketInfoResult,
73798        >(
73799            (),
73800            0x7acd4a2775baec75,
73801            fidl::encoding::DynamicFlags::empty(),
73802            _decode,
73803        )
73804    }
73805
73806    type GetOriginalDestinationResponseFut = fidl::client::QueryResponseFut<
73807        BaseNetworkSocketGetOriginalDestinationResult,
73808        fidl::encoding::DefaultFuchsiaResourceDialect,
73809    >;
73810    fn r#get_original_destination(&self) -> Self::GetOriginalDestinationResponseFut {
73811        fn _decode(
73812            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73813        ) -> Result<BaseNetworkSocketGetOriginalDestinationResult, fidl::Error> {
73814            let _response = fidl::client::decode_transaction_body::<
73815                fidl::encoding::ResultType<
73816                    BaseNetworkSocketGetOriginalDestinationResponse,
73817                    fidl_fuchsia_posix::Errno,
73818                >,
73819                fidl::encoding::DefaultFuchsiaResourceDialect,
73820                0x38bf28f0dafdbac0,
73821            >(_buf?)?;
73822            Ok(_response.map(|x| x.value))
73823        }
73824        self.client.send_query_and_decode::<
73825            fidl::encoding::EmptyPayload,
73826            BaseNetworkSocketGetOriginalDestinationResult,
73827        >(
73828            (),
73829            0x38bf28f0dafdbac0,
73830            fidl::encoding::DynamicFlags::empty(),
73831            _decode,
73832        )
73833    }
73834
73835    type GetInfoResponseFut = fidl::client::QueryResponseFut<
73836        BaseDatagramSocketGetInfoResult,
73837        fidl::encoding::DefaultFuchsiaResourceDialect,
73838    >;
73839    fn r#get_info(&self) -> Self::GetInfoResponseFut {
73840        fn _decode(
73841            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73842        ) -> Result<BaseDatagramSocketGetInfoResult, fidl::Error> {
73843            let _response = fidl::client::decode_transaction_body::<
73844                fidl::encoding::ResultType<
73845                    BaseDatagramSocketGetInfoResponse,
73846                    fidl_fuchsia_posix::Errno,
73847                >,
73848                fidl::encoding::DefaultFuchsiaResourceDialect,
73849                0x48aa0a1f6a32d2ed,
73850            >(_buf?)?;
73851            Ok(_response.map(|x| (x.domain, x.proto)))
73852        }
73853        self.client
73854            .send_query_and_decode::<fidl::encoding::EmptyPayload, BaseDatagramSocketGetInfoResult>(
73855                (),
73856                0x48aa0a1f6a32d2ed,
73857                fidl::encoding::DynamicFlags::empty(),
73858                _decode,
73859            )
73860    }
73861
73862    type DescribeResponseFut = fidl::client::QueryResponseFut<
73863        SynchronousDatagramSocketDescribeResponse,
73864        fidl::encoding::DefaultFuchsiaResourceDialect,
73865    >;
73866    fn r#describe(&self) -> Self::DescribeResponseFut {
73867        fn _decode(
73868            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73869        ) -> Result<SynchronousDatagramSocketDescribeResponse, fidl::Error> {
73870            let _response = fidl::client::decode_transaction_body::<
73871                SynchronousDatagramSocketDescribeResponse,
73872                fidl::encoding::DefaultFuchsiaResourceDialect,
73873                0x585f20b73631070d,
73874            >(_buf?)?;
73875            Ok(_response)
73876        }
73877        self.client.send_query_and_decode::<
73878            fidl::encoding::EmptyPayload,
73879            SynchronousDatagramSocketDescribeResponse,
73880        >(
73881            (),
73882            0x585f20b73631070d,
73883            fidl::encoding::DynamicFlags::empty(),
73884            _decode,
73885        )
73886    }
73887
73888    type RecvMsgResponseFut = fidl::client::QueryResponseFut<
73889        SynchronousDatagramSocketRecvMsgResult,
73890        fidl::encoding::DefaultFuchsiaResourceDialect,
73891    >;
73892    fn r#recv_msg(
73893        &self,
73894        mut want_addr: bool,
73895        mut data_len: u32,
73896        mut want_control: bool,
73897        mut flags: RecvMsgFlags,
73898    ) -> Self::RecvMsgResponseFut {
73899        fn _decode(
73900            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73901        ) -> Result<SynchronousDatagramSocketRecvMsgResult, fidl::Error> {
73902            let _response = fidl::client::decode_transaction_body::<
73903                fidl::encoding::ResultType<
73904                    SynchronousDatagramSocketRecvMsgResponse,
73905                    fidl_fuchsia_posix::Errno,
73906                >,
73907                fidl::encoding::DefaultFuchsiaResourceDialect,
73908                0x28e494e48fb5dbf3,
73909            >(_buf?)?;
73910            Ok(_response.map(|x| (x.addr, x.data, x.control, x.truncated)))
73911        }
73912        self.client.send_query_and_decode::<
73913            SynchronousDatagramSocketRecvMsgRequest,
73914            SynchronousDatagramSocketRecvMsgResult,
73915        >(
73916            (want_addr, data_len, want_control, flags,),
73917            0x28e494e48fb5dbf3,
73918            fidl::encoding::DynamicFlags::empty(),
73919            _decode,
73920        )
73921    }
73922
73923    type SendMsgResponseFut = fidl::client::QueryResponseFut<
73924        SynchronousDatagramSocketSendMsgResult,
73925        fidl::encoding::DefaultFuchsiaResourceDialect,
73926    >;
73927    fn r#send_msg(
73928        &self,
73929        mut addr: Option<&fidl_fuchsia_net::SocketAddress>,
73930        mut data: &[u8],
73931        mut control: &DatagramSocketSendControlData,
73932        mut flags: SendMsgFlags,
73933    ) -> Self::SendMsgResponseFut {
73934        fn _decode(
73935            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
73936        ) -> Result<SynchronousDatagramSocketSendMsgResult, fidl::Error> {
73937            let _response = fidl::client::decode_transaction_body::<
73938                fidl::encoding::ResultType<
73939                    SynchronousDatagramSocketSendMsgResponse,
73940                    fidl_fuchsia_posix::Errno,
73941                >,
73942                fidl::encoding::DefaultFuchsiaResourceDialect,
73943                0x12dc2fceab6cefaa,
73944            >(_buf?)?;
73945            Ok(_response.map(|x| x.len))
73946        }
73947        self.client.send_query_and_decode::<
73948            SynchronousDatagramSocketSendMsgRequest,
73949            SynchronousDatagramSocketSendMsgResult,
73950        >(
73951            (addr, data, control, flags,),
73952            0x12dc2fceab6cefaa,
73953            fidl::encoding::DynamicFlags::empty(),
73954            _decode,
73955        )
73956    }
73957}
73958
73959pub struct SynchronousDatagramSocketEventStream {
73960    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
73961}
73962
73963impl std::marker::Unpin for SynchronousDatagramSocketEventStream {}
73964
73965impl futures::stream::FusedStream for SynchronousDatagramSocketEventStream {
73966    fn is_terminated(&self) -> bool {
73967        self.event_receiver.is_terminated()
73968    }
73969}
73970
73971impl futures::Stream for SynchronousDatagramSocketEventStream {
73972    type Item = Result<SynchronousDatagramSocketEvent, fidl::Error>;
73973
73974    fn poll_next(
73975        mut self: std::pin::Pin<&mut Self>,
73976        cx: &mut std::task::Context<'_>,
73977    ) -> std::task::Poll<Option<Self::Item>> {
73978        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
73979            &mut self.event_receiver,
73980            cx
73981        )?) {
73982            Some(buf) => std::task::Poll::Ready(Some(SynchronousDatagramSocketEvent::decode(buf))),
73983            None => std::task::Poll::Ready(None),
73984        }
73985    }
73986}
73987
73988#[derive(Debug)]
73989pub enum SynchronousDatagramSocketEvent {}
73990
73991impl SynchronousDatagramSocketEvent {
73992    /// Decodes a message buffer as a [`SynchronousDatagramSocketEvent`].
73993    fn decode(
73994        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
73995    ) -> Result<SynchronousDatagramSocketEvent, fidl::Error> {
73996        let (bytes, _handles) = buf.split_mut();
73997        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
73998        debug_assert_eq!(tx_header.tx_id, 0);
73999        match tx_header.ordinal {
74000            _ => Err(fidl::Error::UnknownOrdinal {
74001                ordinal: tx_header.ordinal,
74002                protocol_name:
74003                    <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
74004            }),
74005        }
74006    }
74007}
74008
74009/// A Stream of incoming requests for fuchsia.posix.socket/SynchronousDatagramSocket.
74010pub struct SynchronousDatagramSocketRequestStream {
74011    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
74012    is_terminated: bool,
74013}
74014
74015impl std::marker::Unpin for SynchronousDatagramSocketRequestStream {}
74016
74017impl futures::stream::FusedStream for SynchronousDatagramSocketRequestStream {
74018    fn is_terminated(&self) -> bool {
74019        self.is_terminated
74020    }
74021}
74022
74023impl fidl::endpoints::RequestStream for SynchronousDatagramSocketRequestStream {
74024    type Protocol = SynchronousDatagramSocketMarker;
74025    type ControlHandle = SynchronousDatagramSocketControlHandle;
74026
74027    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
74028        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
74029    }
74030
74031    fn control_handle(&self) -> Self::ControlHandle {
74032        SynchronousDatagramSocketControlHandle { inner: self.inner.clone() }
74033    }
74034
74035    fn into_inner(
74036        self,
74037    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
74038    {
74039        (self.inner, self.is_terminated)
74040    }
74041
74042    fn from_inner(
74043        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
74044        is_terminated: bool,
74045    ) -> Self {
74046        Self { inner, is_terminated }
74047    }
74048}
74049
74050impl futures::Stream for SynchronousDatagramSocketRequestStream {
74051    type Item = Result<SynchronousDatagramSocketRequest, fidl::Error>;
74052
74053    fn poll_next(
74054        mut self: std::pin::Pin<&mut Self>,
74055        cx: &mut std::task::Context<'_>,
74056    ) -> std::task::Poll<Option<Self::Item>> {
74057        let this = &mut *self;
74058        if this.inner.check_shutdown(cx) {
74059            this.is_terminated = true;
74060            return std::task::Poll::Ready(None);
74061        }
74062        if this.is_terminated {
74063            panic!("polled SynchronousDatagramSocketRequestStream after completion");
74064        }
74065        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
74066            |bytes, handles| {
74067                match this.inner.channel().read_etc(cx, bytes, handles) {
74068                    std::task::Poll::Ready(Ok(())) => {}
74069                    std::task::Poll::Pending => return std::task::Poll::Pending,
74070                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
74071                        this.is_terminated = true;
74072                        return std::task::Poll::Ready(None);
74073                    }
74074                    std::task::Poll::Ready(Err(e)) => {
74075                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
74076                            e.into(),
74077                        ))));
74078                    }
74079                }
74080
74081                // A message has been received from the channel
74082                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
74083
74084                std::task::Poll::Ready(Some(match header.ordinal {
74085                0x20d8a7aba2168a79 => {
74086                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
74087                    let mut req = fidl::new_empty!(fidl_fuchsia_unknown::CloneableCloneRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74088                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_unknown::CloneableCloneRequest>(&header, _body_bytes, handles, &mut req)?;
74089                    let control_handle = SynchronousDatagramSocketControlHandle {
74090                        inner: this.inner.clone(),
74091                    };
74092                    Ok(SynchronousDatagramSocketRequest::Clone {request: req.request,
74093
74094                        control_handle,
74095                    })
74096                }
74097                0x5ac5d459ad7f657e => {
74098                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74099                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74100                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74101                    let control_handle = SynchronousDatagramSocketControlHandle {
74102                        inner: this.inner.clone(),
74103                    };
74104                    Ok(SynchronousDatagramSocketRequest::Close {
74105                        responder: SynchronousDatagramSocketCloseResponder {
74106                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74107                            tx_id: header.tx_id,
74108                        },
74109                    })
74110                }
74111                0x2658edee9decfc06 => {
74112                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74113                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74114                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74115                    let control_handle = SynchronousDatagramSocketControlHandle {
74116                        inner: this.inner.clone(),
74117                    };
74118                    Ok(SynchronousDatagramSocketRequest::Query {
74119                        responder: SynchronousDatagramSocketQueryResponder {
74120                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74121                            tx_id: header.tx_id,
74122                        },
74123                    })
74124                }
74125                0x1fd74ee8b9a4a876 => {
74126                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74127                    let mut req = fidl::new_empty!(BaseSocketSetReuseAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74128                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReuseAddressRequest>(&header, _body_bytes, handles, &mut req)?;
74129                    let control_handle = SynchronousDatagramSocketControlHandle {
74130                        inner: this.inner.clone(),
74131                    };
74132                    Ok(SynchronousDatagramSocketRequest::SetReuseAddress {value: req.value,
74133
74134                        responder: SynchronousDatagramSocketSetReuseAddressResponder {
74135                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74136                            tx_id: header.tx_id,
74137                        },
74138                    })
74139                }
74140                0x67b7206b8d1bc0a5 => {
74141                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74142                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74143                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74144                    let control_handle = SynchronousDatagramSocketControlHandle {
74145                        inner: this.inner.clone(),
74146                    };
74147                    Ok(SynchronousDatagramSocketRequest::GetReuseAddress {
74148                        responder: SynchronousDatagramSocketGetReuseAddressResponder {
74149                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74150                            tx_id: header.tx_id,
74151                        },
74152                    })
74153                }
74154                0x5aad39b33e5f6ebb => {
74155                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74156                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74157                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74158                    let control_handle = SynchronousDatagramSocketControlHandle {
74159                        inner: this.inner.clone(),
74160                    };
74161                    Ok(SynchronousDatagramSocketRequest::GetError {
74162                        responder: SynchronousDatagramSocketGetErrorResponder {
74163                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74164                            tx_id: header.tx_id,
74165                        },
74166                    })
74167                }
74168                0x6023e081ce3cd947 => {
74169                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74170                    let mut req = fidl::new_empty!(BaseSocketSetBroadcastRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74171                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBroadcastRequest>(&header, _body_bytes, handles, &mut req)?;
74172                    let control_handle = SynchronousDatagramSocketControlHandle {
74173                        inner: this.inner.clone(),
74174                    };
74175                    Ok(SynchronousDatagramSocketRequest::SetBroadcast {value: req.value,
74176
74177                        responder: SynchronousDatagramSocketSetBroadcastResponder {
74178                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74179                            tx_id: header.tx_id,
74180                        },
74181                    })
74182                }
74183                0x68796fc556f9780d => {
74184                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74185                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74186                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74187                    let control_handle = SynchronousDatagramSocketControlHandle {
74188                        inner: this.inner.clone(),
74189                    };
74190                    Ok(SynchronousDatagramSocketRequest::GetBroadcast {
74191                        responder: SynchronousDatagramSocketGetBroadcastResponder {
74192                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74193                            tx_id: header.tx_id,
74194                        },
74195                    })
74196                }
74197                0x756eac32d73a7a70 => {
74198                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74199                    let mut req = fidl::new_empty!(BaseSocketSetSendBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74200                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetSendBufferRequest>(&header, _body_bytes, handles, &mut req)?;
74201                    let control_handle = SynchronousDatagramSocketControlHandle {
74202                        inner: this.inner.clone(),
74203                    };
74204                    Ok(SynchronousDatagramSocketRequest::SetSendBuffer {value_bytes: req.value_bytes,
74205
74206                        responder: SynchronousDatagramSocketSetSendBufferResponder {
74207                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74208                            tx_id: header.tx_id,
74209                        },
74210                    })
74211                }
74212                0x78a52fd9c7b2410b => {
74213                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74214                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74215                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74216                    let control_handle = SynchronousDatagramSocketControlHandle {
74217                        inner: this.inner.clone(),
74218                    };
74219                    Ok(SynchronousDatagramSocketRequest::GetSendBuffer {
74220                        responder: SynchronousDatagramSocketGetSendBufferResponder {
74221                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74222                            tx_id: header.tx_id,
74223                        },
74224                    })
74225                }
74226                0x6b0cf2f1919c7001 => {
74227                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74228                    let mut req = fidl::new_empty!(BaseSocketSetReceiveBufferRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74229                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReceiveBufferRequest>(&header, _body_bytes, handles, &mut req)?;
74230                    let control_handle = SynchronousDatagramSocketControlHandle {
74231                        inner: this.inner.clone(),
74232                    };
74233                    Ok(SynchronousDatagramSocketRequest::SetReceiveBuffer {value_bytes: req.value_bytes,
74234
74235                        responder: SynchronousDatagramSocketSetReceiveBufferResponder {
74236                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74237                            tx_id: header.tx_id,
74238                        },
74239                    })
74240                }
74241                0x14c1a4b64f709e5c => {
74242                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74243                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74244                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74245                    let control_handle = SynchronousDatagramSocketControlHandle {
74246                        inner: this.inner.clone(),
74247                    };
74248                    Ok(SynchronousDatagramSocketRequest::GetReceiveBuffer {
74249                        responder: SynchronousDatagramSocketGetReceiveBufferResponder {
74250                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74251                            tx_id: header.tx_id,
74252                        },
74253                    })
74254                }
74255                0x572df8f0b920d2c7 => {
74256                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74257                    let mut req = fidl::new_empty!(BaseSocketSetKeepAliveRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74258                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetKeepAliveRequest>(&header, _body_bytes, handles, &mut req)?;
74259                    let control_handle = SynchronousDatagramSocketControlHandle {
74260                        inner: this.inner.clone(),
74261                    };
74262                    Ok(SynchronousDatagramSocketRequest::SetKeepAlive {value: req.value,
74263
74264                        responder: SynchronousDatagramSocketSetKeepAliveResponder {
74265                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74266                            tx_id: header.tx_id,
74267                        },
74268                    })
74269                }
74270                0x2dd29d3215f2c9d2 => {
74271                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74272                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74273                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74274                    let control_handle = SynchronousDatagramSocketControlHandle {
74275                        inner: this.inner.clone(),
74276                    };
74277                    Ok(SynchronousDatagramSocketRequest::GetKeepAlive {
74278                        responder: SynchronousDatagramSocketGetKeepAliveResponder {
74279                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74280                            tx_id: header.tx_id,
74281                        },
74282                    })
74283                }
74284                0x3ecb49968bee439 => {
74285                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74286                    let mut req = fidl::new_empty!(BaseSocketSetOutOfBandInlineRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74287                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetOutOfBandInlineRequest>(&header, _body_bytes, handles, &mut req)?;
74288                    let control_handle = SynchronousDatagramSocketControlHandle {
74289                        inner: this.inner.clone(),
74290                    };
74291                    Ok(SynchronousDatagramSocketRequest::SetOutOfBandInline {value: req.value,
74292
74293                        responder: SynchronousDatagramSocketSetOutOfBandInlineResponder {
74294                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74295                            tx_id: header.tx_id,
74296                        },
74297                    })
74298                }
74299                0x348c1ab3aeca1745 => {
74300                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74301                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74302                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74303                    let control_handle = SynchronousDatagramSocketControlHandle {
74304                        inner: this.inner.clone(),
74305                    };
74306                    Ok(SynchronousDatagramSocketRequest::GetOutOfBandInline {
74307                        responder: SynchronousDatagramSocketGetOutOfBandInlineResponder {
74308                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74309                            tx_id: header.tx_id,
74310                        },
74311                    })
74312                }
74313                0x6bbf00c53a4c78c2 => {
74314                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74315                    let mut req = fidl::new_empty!(BaseSocketSetNoCheckRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74316                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetNoCheckRequest>(&header, _body_bytes, handles, &mut req)?;
74317                    let control_handle = SynchronousDatagramSocketControlHandle {
74318                        inner: this.inner.clone(),
74319                    };
74320                    Ok(SynchronousDatagramSocketRequest::SetNoCheck {value: req.value,
74321
74322                        responder: SynchronousDatagramSocketSetNoCheckResponder {
74323                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74324                            tx_id: header.tx_id,
74325                        },
74326                    })
74327                }
74328                0x2cd4249286417694 => {
74329                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74330                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74331                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74332                    let control_handle = SynchronousDatagramSocketControlHandle {
74333                        inner: this.inner.clone(),
74334                    };
74335                    Ok(SynchronousDatagramSocketRequest::GetNoCheck {
74336                        responder: SynchronousDatagramSocketGetNoCheckResponder {
74337                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74338                            tx_id: header.tx_id,
74339                        },
74340                    })
74341                }
74342                0x45386351246e998e => {
74343                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74344                    let mut req = fidl::new_empty!(BaseSocketSetLingerRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74345                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetLingerRequest>(&header, _body_bytes, handles, &mut req)?;
74346                    let control_handle = SynchronousDatagramSocketControlHandle {
74347                        inner: this.inner.clone(),
74348                    };
74349                    Ok(SynchronousDatagramSocketRequest::SetLinger {linger: req.linger,
74350length_secs: req.length_secs,
74351
74352                        responder: SynchronousDatagramSocketSetLingerResponder {
74353                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74354                            tx_id: header.tx_id,
74355                        },
74356                    })
74357                }
74358                0x48eb20fc5ccb0e45 => {
74359                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74360                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74361                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74362                    let control_handle = SynchronousDatagramSocketControlHandle {
74363                        inner: this.inner.clone(),
74364                    };
74365                    Ok(SynchronousDatagramSocketRequest::GetLinger {
74366                        responder: SynchronousDatagramSocketGetLingerResponder {
74367                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74368                            tx_id: header.tx_id,
74369                        },
74370                    })
74371                }
74372                0x24dd3e5cb36d9ccb => {
74373                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74374                    let mut req = fidl::new_empty!(BaseSocketSetReusePortRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74375                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetReusePortRequest>(&header, _body_bytes, handles, &mut req)?;
74376                    let control_handle = SynchronousDatagramSocketControlHandle {
74377                        inner: this.inner.clone(),
74378                    };
74379                    Ok(SynchronousDatagramSocketRequest::SetReusePort {value: req.value,
74380
74381                        responder: SynchronousDatagramSocketSetReusePortResponder {
74382                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74383                            tx_id: header.tx_id,
74384                        },
74385                    })
74386                }
74387                0x7a112c1ab54ff828 => {
74388                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74389                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74390                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74391                    let control_handle = SynchronousDatagramSocketControlHandle {
74392                        inner: this.inner.clone(),
74393                    };
74394                    Ok(SynchronousDatagramSocketRequest::GetReusePort {
74395                        responder: SynchronousDatagramSocketGetReusePortResponder {
74396                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74397                            tx_id: header.tx_id,
74398                        },
74399                    })
74400                }
74401                0x67ce6db6c2ec8966 => {
74402                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74403                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74404                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74405                    let control_handle = SynchronousDatagramSocketControlHandle {
74406                        inner: this.inner.clone(),
74407                    };
74408                    Ok(SynchronousDatagramSocketRequest::GetAcceptConn {
74409                        responder: SynchronousDatagramSocketGetAcceptConnResponder {
74410                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74411                            tx_id: header.tx_id,
74412                        },
74413                    })
74414                }
74415                0x2118b483f28aafc4 => {
74416                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74417                    let mut req = fidl::new_empty!(BaseSocketSetBindToDeviceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74418                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
74419                    let control_handle = SynchronousDatagramSocketControlHandle {
74420                        inner: this.inner.clone(),
74421                    };
74422                    Ok(SynchronousDatagramSocketRequest::SetBindToDevice {value: req.value,
74423
74424                        responder: SynchronousDatagramSocketSetBindToDeviceResponder {
74425                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74426                            tx_id: header.tx_id,
74427                        },
74428                    })
74429                }
74430                0x1ab1fbf0ef7906c8 => {
74431                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74432                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74433                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74434                    let control_handle = SynchronousDatagramSocketControlHandle {
74435                        inner: this.inner.clone(),
74436                    };
74437                    Ok(SynchronousDatagramSocketRequest::GetBindToDevice {
74438                        responder: SynchronousDatagramSocketGetBindToDeviceResponder {
74439                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74440                            tx_id: header.tx_id,
74441                        },
74442                    })
74443                }
74444                0x6e387a0def00821 => {
74445                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74446                    let mut req = fidl::new_empty!(BaseSocketSetBindToInterfaceIndexRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74447                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetBindToInterfaceIndexRequest>(&header, _body_bytes, handles, &mut req)?;
74448                    let control_handle = SynchronousDatagramSocketControlHandle {
74449                        inner: this.inner.clone(),
74450                    };
74451                    Ok(SynchronousDatagramSocketRequest::SetBindToInterfaceIndex {value: req.value,
74452
74453                        responder: SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
74454                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74455                            tx_id: header.tx_id,
74456                        },
74457                    })
74458                }
74459                0x59c31dd3e3078295 => {
74460                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74461                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74462                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74463                    let control_handle = SynchronousDatagramSocketControlHandle {
74464                        inner: this.inner.clone(),
74465                    };
74466                    Ok(SynchronousDatagramSocketRequest::GetBindToInterfaceIndex {
74467                        responder: SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
74468                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74469                            tx_id: header.tx_id,
74470                        },
74471                    })
74472                }
74473                0x285d6516c263d839 => {
74474                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74475                    let mut req = fidl::new_empty!(BaseSocketSetTimestampRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74476                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetTimestampRequest>(&header, _body_bytes, handles, &mut req)?;
74477                    let control_handle = SynchronousDatagramSocketControlHandle {
74478                        inner: this.inner.clone(),
74479                    };
74480                    Ok(SynchronousDatagramSocketRequest::SetTimestamp {value: req.value,
74481
74482                        responder: SynchronousDatagramSocketSetTimestampResponder {
74483                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74484                            tx_id: header.tx_id,
74485                        },
74486                    })
74487                }
74488                0x49f2fffbbcc2bd27 => {
74489                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74490                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74491                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74492                    let control_handle = SynchronousDatagramSocketControlHandle {
74493                        inner: this.inner.clone(),
74494                    };
74495                    Ok(SynchronousDatagramSocketRequest::GetTimestamp {
74496                        responder: SynchronousDatagramSocketGetTimestampResponder {
74497                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74498                            tx_id: header.tx_id,
74499                        },
74500                    })
74501                }
74502                0x6ead6de09f653236 => {
74503                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74504                    let mut req = fidl::new_empty!(BaseSocketSetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74505                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketSetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
74506                    let control_handle = SynchronousDatagramSocketControlHandle {
74507                        inner: this.inner.clone(),
74508                    };
74509                    Ok(SynchronousDatagramSocketRequest::SetMark {domain: req.domain,
74510mark: req.mark,
74511
74512                        responder: SynchronousDatagramSocketSetMarkResponder {
74513                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74514                            tx_id: header.tx_id,
74515                        },
74516                    })
74517                }
74518                0x57a2752c61d93d47 => {
74519                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74520                    let mut req = fidl::new_empty!(BaseSocketGetMarkRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74521                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseSocketGetMarkRequest>(&header, _body_bytes, handles, &mut req)?;
74522                    let control_handle = SynchronousDatagramSocketControlHandle {
74523                        inner: this.inner.clone(),
74524                    };
74525                    Ok(SynchronousDatagramSocketRequest::GetMark {domain: req.domain,
74526
74527                        responder: SynchronousDatagramSocketGetMarkResponder {
74528                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74529                            tx_id: header.tx_id,
74530                        },
74531                    })
74532                }
74533                0x2c2f47fd8f924e52 => {
74534                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74535                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74536                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74537                    let control_handle = SynchronousDatagramSocketControlHandle {
74538                        inner: this.inner.clone(),
74539                    };
74540                    Ok(SynchronousDatagramSocketRequest::GetCookie {
74541                        responder: SynchronousDatagramSocketGetCookieResponder {
74542                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74543                            tx_id: header.tx_id,
74544                        },
74545                    })
74546                }
74547                0x4bc6400ae92125d => {
74548                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74549                    let mut req = fidl::new_empty!(BaseNetworkSocketBindRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74550                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketBindRequest>(&header, _body_bytes, handles, &mut req)?;
74551                    let control_handle = SynchronousDatagramSocketControlHandle {
74552                        inner: this.inner.clone(),
74553                    };
74554                    Ok(SynchronousDatagramSocketRequest::Bind {addr: req.addr,
74555
74556                        responder: SynchronousDatagramSocketBindResponder {
74557                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74558                            tx_id: header.tx_id,
74559                        },
74560                    })
74561                }
74562                0x5f05f19bfdd38871 => {
74563                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74564                    let mut req = fidl::new_empty!(BaseNetworkSocketConnectRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74565                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketConnectRequest>(&header, _body_bytes, handles, &mut req)?;
74566                    let control_handle = SynchronousDatagramSocketControlHandle {
74567                        inner: this.inner.clone(),
74568                    };
74569                    Ok(SynchronousDatagramSocketRequest::Connect {addr: req.addr,
74570
74571                        responder: SynchronousDatagramSocketConnectResponder {
74572                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74573                            tx_id: header.tx_id,
74574                        },
74575                    })
74576                }
74577                0x74e63b91f7b29b2 => {
74578                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74579                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74580                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74581                    let control_handle = SynchronousDatagramSocketControlHandle {
74582                        inner: this.inner.clone(),
74583                    };
74584                    Ok(SynchronousDatagramSocketRequest::Disconnect {
74585                        responder: SynchronousDatagramSocketDisconnectResponder {
74586                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74587                            tx_id: header.tx_id,
74588                        },
74589                    })
74590                }
74591                0x475f23f84a1a4f85 => {
74592                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74593                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74594                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74595                    let control_handle = SynchronousDatagramSocketControlHandle {
74596                        inner: this.inner.clone(),
74597                    };
74598                    Ok(SynchronousDatagramSocketRequest::GetSockName {
74599                        responder: SynchronousDatagramSocketGetSockNameResponder {
74600                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74601                            tx_id: header.tx_id,
74602                        },
74603                    })
74604                }
74605                0x1ffecf4bd5b6432e => {
74606                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74607                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74608                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74609                    let control_handle = SynchronousDatagramSocketControlHandle {
74610                        inner: this.inner.clone(),
74611                    };
74612                    Ok(SynchronousDatagramSocketRequest::GetPeerName {
74613                        responder: SynchronousDatagramSocketGetPeerNameResponder {
74614                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74615                            tx_id: header.tx_id,
74616                        },
74617                    })
74618                }
74619                0x247f38b6db68c336 => {
74620                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74621                    let mut req = fidl::new_empty!(BaseNetworkSocketShutdownRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74622                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketShutdownRequest>(&header, _body_bytes, handles, &mut req)?;
74623                    let control_handle = SynchronousDatagramSocketControlHandle {
74624                        inner: this.inner.clone(),
74625                    };
74626                    Ok(SynchronousDatagramSocketRequest::Shutdown {mode: req.mode,
74627
74628                        responder: SynchronousDatagramSocketShutdownResponder {
74629                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74630                            tx_id: header.tx_id,
74631                        },
74632                    })
74633                }
74634                0x995c600475b6d46 => {
74635                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74636                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74637                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
74638                    let control_handle = SynchronousDatagramSocketControlHandle {
74639                        inner: this.inner.clone(),
74640                    };
74641                    Ok(SynchronousDatagramSocketRequest::SetIpTypeOfService {value: req.value,
74642
74643                        responder: SynchronousDatagramSocketSetIpTypeOfServiceResponder {
74644                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74645                            tx_id: header.tx_id,
74646                        },
74647                    })
74648                }
74649                0x3814a04259f75fcb => {
74650                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74651                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74652                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74653                    let control_handle = SynchronousDatagramSocketControlHandle {
74654                        inner: this.inner.clone(),
74655                    };
74656                    Ok(SynchronousDatagramSocketRequest::GetIpTypeOfService {
74657                        responder: SynchronousDatagramSocketGetIpTypeOfServiceResponder {
74658                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74659                            tx_id: header.tx_id,
74660                        },
74661                    })
74662                }
74663                0x29e2424b433ae1ef => {
74664                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74665                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74666                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTtlRequest>(&header, _body_bytes, handles, &mut req)?;
74667                    let control_handle = SynchronousDatagramSocketControlHandle {
74668                        inner: this.inner.clone(),
74669                    };
74670                    Ok(SynchronousDatagramSocketRequest::SetIpTtl {value: req.value,
74671
74672                        responder: SynchronousDatagramSocketSetIpTtlResponder {
74673                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74674                            tx_id: header.tx_id,
74675                        },
74676                    })
74677                }
74678                0x47e47fa1f24da471 => {
74679                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74680                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74681                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74682                    let control_handle = SynchronousDatagramSocketControlHandle {
74683                        inner: this.inner.clone(),
74684                    };
74685                    Ok(SynchronousDatagramSocketRequest::GetIpTtl {
74686                        responder: SynchronousDatagramSocketGetIpTtlResponder {
74687                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74688                            tx_id: header.tx_id,
74689                        },
74690                    })
74691                }
74692                0x392d16bee20c0e16 => {
74693                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74694                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpPacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74695                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpPacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
74696                    let control_handle = SynchronousDatagramSocketControlHandle {
74697                        inner: this.inner.clone(),
74698                    };
74699                    Ok(SynchronousDatagramSocketRequest::SetIpPacketInfo {value: req.value,
74700
74701                        responder: SynchronousDatagramSocketSetIpPacketInfoResponder {
74702                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74703                            tx_id: header.tx_id,
74704                        },
74705                    })
74706                }
74707                0x54b505f242280740 => {
74708                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74709                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74710                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74711                    let control_handle = SynchronousDatagramSocketControlHandle {
74712                        inner: this.inner.clone(),
74713                    };
74714                    Ok(SynchronousDatagramSocketRequest::GetIpPacketInfo {
74715                        responder: SynchronousDatagramSocketGetIpPacketInfoResponder {
74716                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74717                            tx_id: header.tx_id,
74718                        },
74719                    })
74720                }
74721                0x6c4f6714995f84ef => {
74722                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74723                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTypeOfServiceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74724                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTypeOfServiceRequest>(&header, _body_bytes, handles, &mut req)?;
74725                    let control_handle = SynchronousDatagramSocketControlHandle {
74726                        inner: this.inner.clone(),
74727                    };
74728                    Ok(SynchronousDatagramSocketRequest::SetIpReceiveTypeOfService {value: req.value,
74729
74730                        responder: SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
74731                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74732                            tx_id: header.tx_id,
74733                        },
74734                    })
74735                }
74736                0x4158ba7dc2795960 => {
74737                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74738                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74739                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74740                    let control_handle = SynchronousDatagramSocketControlHandle {
74741                        inner: this.inner.clone(),
74742                    };
74743                    Ok(SynchronousDatagramSocketRequest::GetIpReceiveTypeOfService {
74744                        responder: SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
74745                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74746                            tx_id: header.tx_id,
74747                        },
74748                    })
74749                }
74750                0x46f15be0ce0ab82b => {
74751                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74752                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74753                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveTtlRequest>(&header, _body_bytes, handles, &mut req)?;
74754                    let control_handle = SynchronousDatagramSocketControlHandle {
74755                        inner: this.inner.clone(),
74756                    };
74757                    Ok(SynchronousDatagramSocketRequest::SetIpReceiveTtl {value: req.value,
74758
74759                        responder: SynchronousDatagramSocketSetIpReceiveTtlResponder {
74760                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74761                            tx_id: header.tx_id,
74762                        },
74763                    })
74764                }
74765                0x678ddd5a5dfa2eb5 => {
74766                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74767                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74768                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74769                    let control_handle = SynchronousDatagramSocketControlHandle {
74770                        inner: this.inner.clone(),
74771                    };
74772                    Ok(SynchronousDatagramSocketRequest::GetIpReceiveTtl {
74773                        responder: SynchronousDatagramSocketGetIpReceiveTtlResponder {
74774                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74775                            tx_id: header.tx_id,
74776                        },
74777                    })
74778                }
74779                0x752fbfa9b12befe => {
74780                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74781                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74782                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
74783                    let control_handle = SynchronousDatagramSocketControlHandle {
74784                        inner: this.inner.clone(),
74785                    };
74786                    Ok(SynchronousDatagramSocketRequest::SetIpMulticastInterface {iface: req.iface,
74787address: req.address,
74788
74789                        responder: SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
74790                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74791                            tx_id: header.tx_id,
74792                        },
74793                    })
74794                }
74795                0x320bd14c4df046c4 => {
74796                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74797                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74798                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74799                    let control_handle = SynchronousDatagramSocketControlHandle {
74800                        inner: this.inner.clone(),
74801                    };
74802                    Ok(SynchronousDatagramSocketRequest::GetIpMulticastInterface {
74803                        responder: SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
74804                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74805                            tx_id: header.tx_id,
74806                        },
74807                    })
74808                }
74809                0x63134d53772916a1 => {
74810                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74811                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastTtlRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74812                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastTtlRequest>(&header, _body_bytes, handles, &mut req)?;
74813                    let control_handle = SynchronousDatagramSocketControlHandle {
74814                        inner: this.inner.clone(),
74815                    };
74816                    Ok(SynchronousDatagramSocketRequest::SetIpMulticastTtl {value: req.value,
74817
74818                        responder: SynchronousDatagramSocketSetIpMulticastTtlResponder {
74819                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74820                            tx_id: header.tx_id,
74821                        },
74822                    })
74823                }
74824                0x4665cd378f39e1a => {
74825                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74826                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74827                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74828                    let control_handle = SynchronousDatagramSocketControlHandle {
74829                        inner: this.inner.clone(),
74830                    };
74831                    Ok(SynchronousDatagramSocketRequest::GetIpMulticastTtl {
74832                        responder: SynchronousDatagramSocketGetIpMulticastTtlResponder {
74833                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74834                            tx_id: header.tx_id,
74835                        },
74836                    })
74837                }
74838                0x20c55c11f00943ea => {
74839                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74840                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpMulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74841                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpMulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
74842                    let control_handle = SynchronousDatagramSocketControlHandle {
74843                        inner: this.inner.clone(),
74844                    };
74845                    Ok(SynchronousDatagramSocketRequest::SetIpMulticastLoopback {value: req.value,
74846
74847                        responder: SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
74848                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74849                            tx_id: header.tx_id,
74850                        },
74851                    })
74852                }
74853                0x3b6b26ff558298f2 => {
74854                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74855                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74856                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74857                    let control_handle = SynchronousDatagramSocketControlHandle {
74858                        inner: this.inner.clone(),
74859                    };
74860                    Ok(SynchronousDatagramSocketRequest::GetIpMulticastLoopback {
74861                        responder: SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
74862                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74863                            tx_id: header.tx_id,
74864                        },
74865                    })
74866                }
74867                0x76bc7df115a3b4d0 => {
74868                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74869                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74870                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
74871                    let control_handle = SynchronousDatagramSocketControlHandle {
74872                        inner: this.inner.clone(),
74873                    };
74874                    Ok(SynchronousDatagramSocketRequest::AddIpMembership {membership: req.membership,
74875
74876                        responder: SynchronousDatagramSocketAddIpMembershipResponder {
74877                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74878                            tx_id: header.tx_id,
74879                        },
74880                    })
74881                }
74882                0x2888f3099188d03 => {
74883                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74884                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpMembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74885                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpMembershipRequest>(&header, _body_bytes, handles, &mut req)?;
74886                    let control_handle = SynchronousDatagramSocketControlHandle {
74887                        inner: this.inner.clone(),
74888                    };
74889                    Ok(SynchronousDatagramSocketRequest::DropIpMembership {membership: req.membership,
74890
74891                        responder: SynchronousDatagramSocketDropIpMembershipResponder {
74892                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74893                            tx_id: header.tx_id,
74894                        },
74895                    })
74896                }
74897                0x1ae532b0c066e3a0 => {
74898                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74899                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpTransparentRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74900                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpTransparentRequest>(&header, _body_bytes, handles, &mut req)?;
74901                    let control_handle = SynchronousDatagramSocketControlHandle {
74902                        inner: this.inner.clone(),
74903                    };
74904                    Ok(SynchronousDatagramSocketRequest::SetIpTransparent {value: req.value,
74905
74906                        responder: SynchronousDatagramSocketSetIpTransparentResponder {
74907                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74908                            tx_id: header.tx_id,
74909                        },
74910                    })
74911                }
74912                0x51d43695962ebfb5 => {
74913                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74914                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74915                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74916                    let control_handle = SynchronousDatagramSocketControlHandle {
74917                        inner: this.inner.clone(),
74918                    };
74919                    Ok(SynchronousDatagramSocketRequest::GetIpTransparent {
74920                        responder: SynchronousDatagramSocketGetIpTransparentResponder {
74921                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74922                            tx_id: header.tx_id,
74923                        },
74924                    })
74925                }
74926                0x4722b4ce52f7840 => {
74927                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74928                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74929                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpReceiveOriginalDestinationAddressRequest>(&header, _body_bytes, handles, &mut req)?;
74930                    let control_handle = SynchronousDatagramSocketControlHandle {
74931                        inner: this.inner.clone(),
74932                    };
74933                    Ok(SynchronousDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {value: req.value,
74934
74935                        responder: SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
74936                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74937                            tx_id: header.tx_id,
74938                        },
74939                    })
74940                }
74941                0x2a0e7dc5d6bfdfe9 => {
74942                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74943                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
74944                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
74945                    let control_handle = SynchronousDatagramSocketControlHandle {
74946                        inner: this.inner.clone(),
74947                    };
74948                    Ok(SynchronousDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
74949                        responder: SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
74950                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74951                            tx_id: header.tx_id,
74952                        },
74953                    })
74954                }
74955                0x7c94727acb4ea4b3 => {
74956                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74957                    let mut req = fidl::new_empty!(BaseNetworkSocketAddIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74958                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketAddIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
74959                    let control_handle = SynchronousDatagramSocketControlHandle {
74960                        inner: this.inner.clone(),
74961                    };
74962                    Ok(SynchronousDatagramSocketRequest::AddIpv6Membership {membership: req.membership,
74963
74964                        responder: SynchronousDatagramSocketAddIpv6MembershipResponder {
74965                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74966                            tx_id: header.tx_id,
74967                        },
74968                    })
74969                }
74970                0x42104c70ccaba304 => {
74971                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74972                    let mut req = fidl::new_empty!(BaseNetworkSocketDropIpv6MembershipRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74973                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketDropIpv6MembershipRequest>(&header, _body_bytes, handles, &mut req)?;
74974                    let control_handle = SynchronousDatagramSocketControlHandle {
74975                        inner: this.inner.clone(),
74976                    };
74977                    Ok(SynchronousDatagramSocketRequest::DropIpv6Membership {membership: req.membership,
74978
74979                        responder: SynchronousDatagramSocketDropIpv6MembershipResponder {
74980                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74981                            tx_id: header.tx_id,
74982                        },
74983                    })
74984                }
74985                0x135f76db3774ab3b => {
74986                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
74987                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastInterfaceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
74988                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
74989                    let control_handle = SynchronousDatagramSocketControlHandle {
74990                        inner: this.inner.clone(),
74991                    };
74992                    Ok(SynchronousDatagramSocketRequest::SetIpv6MulticastInterface {value: req.value,
74993
74994                        responder: SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
74995                            control_handle: std::mem::ManuallyDrop::new(control_handle),
74996                            tx_id: header.tx_id,
74997                        },
74998                    })
74999                }
75000                0x1f26fcdd348f1882 => {
75001                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75002                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75003                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75004                    let control_handle = SynchronousDatagramSocketControlHandle {
75005                        inner: this.inner.clone(),
75006                    };
75007                    Ok(SynchronousDatagramSocketRequest::GetIpv6MulticastInterface {
75008                        responder: SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
75009                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75010                            tx_id: header.tx_id,
75011                        },
75012                    })
75013                }
75014                0x157d51e98f462859 => {
75015                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75016                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6UnicastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75017                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6UnicastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
75018                    let control_handle = SynchronousDatagramSocketControlHandle {
75019                        inner: this.inner.clone(),
75020                    };
75021                    Ok(SynchronousDatagramSocketRequest::SetIpv6UnicastHops {value: req.value,
75022
75023                        responder: SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
75024                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75025                            tx_id: header.tx_id,
75026                        },
75027                    })
75028                }
75029                0x21f4641cad8bd8d2 => {
75030                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75031                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75032                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75033                    let control_handle = SynchronousDatagramSocketControlHandle {
75034                        inner: this.inner.clone(),
75035                    };
75036                    Ok(SynchronousDatagramSocketRequest::GetIpv6UnicastHops {
75037                        responder: SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
75038                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75039                            tx_id: header.tx_id,
75040                        },
75041                    })
75042                }
75043                0x5c24808ed2e84a1e => {
75044                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75045                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveHopLimitRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75046                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveHopLimitRequest>(&header, _body_bytes, handles, &mut req)?;
75047                    let control_handle = SynchronousDatagramSocketControlHandle {
75048                        inner: this.inner.clone(),
75049                    };
75050                    Ok(SynchronousDatagramSocketRequest::SetIpv6ReceiveHopLimit {value: req.value,
75051
75052                        responder: SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
75053                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75054                            tx_id: header.tx_id,
75055                        },
75056                    })
75057                }
75058                0x341e06689885b4c0 => {
75059                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75060                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75061                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75062                    let control_handle = SynchronousDatagramSocketControlHandle {
75063                        inner: this.inner.clone(),
75064                    };
75065                    Ok(SynchronousDatagramSocketRequest::GetIpv6ReceiveHopLimit {
75066                        responder: SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
75067                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75068                            tx_id: header.tx_id,
75069                        },
75070                    })
75071                }
75072                0x25b9cd4d181f82c1 => {
75073                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75074                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastHopsRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75075                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastHopsRequest>(&header, _body_bytes, handles, &mut req)?;
75076                    let control_handle = SynchronousDatagramSocketControlHandle {
75077                        inner: this.inner.clone(),
75078                    };
75079                    Ok(SynchronousDatagramSocketRequest::SetIpv6MulticastHops {value: req.value,
75080
75081                        responder: SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
75082                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75083                            tx_id: header.tx_id,
75084                        },
75085                    })
75086                }
75087                0x52916948a365012a => {
75088                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75089                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75090                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75091                    let control_handle = SynchronousDatagramSocketControlHandle {
75092                        inner: this.inner.clone(),
75093                    };
75094                    Ok(SynchronousDatagramSocketRequest::GetIpv6MulticastHops {
75095                        responder: SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
75096                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75097                            tx_id: header.tx_id,
75098                        },
75099                    })
75100                }
75101                0x55701c409ff41b40 => {
75102                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75103                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6MulticastLoopbackRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75104                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6MulticastLoopbackRequest>(&header, _body_bytes, handles, &mut req)?;
75105                    let control_handle = SynchronousDatagramSocketControlHandle {
75106                        inner: this.inner.clone(),
75107                    };
75108                    Ok(SynchronousDatagramSocketRequest::SetIpv6MulticastLoopback {value: req.value,
75109
75110                        responder: SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
75111                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75112                            tx_id: header.tx_id,
75113                        },
75114                    })
75115                }
75116                0x4415b701fde319c3 => {
75117                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75118                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75119                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75120                    let control_handle = SynchronousDatagramSocketControlHandle {
75121                        inner: this.inner.clone(),
75122                    };
75123                    Ok(SynchronousDatagramSocketRequest::GetIpv6MulticastLoopback {
75124                        responder: SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
75125                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75126                            tx_id: header.tx_id,
75127                        },
75128                    })
75129                }
75130                0x4873f1364758cbba => {
75131                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75132                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6OnlyRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75133                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6OnlyRequest>(&header, _body_bytes, handles, &mut req)?;
75134                    let control_handle = SynchronousDatagramSocketControlHandle {
75135                        inner: this.inner.clone(),
75136                    };
75137                    Ok(SynchronousDatagramSocketRequest::SetIpv6Only {value: req.value,
75138
75139                        responder: SynchronousDatagramSocketSetIpv6OnlyResponder {
75140                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75141                            tx_id: header.tx_id,
75142                        },
75143                    })
75144                }
75145                0x4aa3340a1a26b89c => {
75146                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75147                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75148                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75149                    let control_handle = SynchronousDatagramSocketControlHandle {
75150                        inner: this.inner.clone(),
75151                    };
75152                    Ok(SynchronousDatagramSocketRequest::GetIpv6Only {
75153                        responder: SynchronousDatagramSocketGetIpv6OnlyResponder {
75154                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75155                            tx_id: header.tx_id,
75156                        },
75157                    })
75158                }
75159                0x58f07c8788d099a0 => {
75160                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75161                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75162                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceiveTrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
75163                    let control_handle = SynchronousDatagramSocketControlHandle {
75164                        inner: this.inner.clone(),
75165                    };
75166                    Ok(SynchronousDatagramSocketRequest::SetIpv6ReceiveTrafficClass {value: req.value,
75167
75168                        responder: SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
75169                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75170                            tx_id: header.tx_id,
75171                        },
75172                    })
75173                }
75174                0x2e334df1da553ffa => {
75175                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75176                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75177                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75178                    let control_handle = SynchronousDatagramSocketControlHandle {
75179                        inner: this.inner.clone(),
75180                    };
75181                    Ok(SynchronousDatagramSocketRequest::GetIpv6ReceiveTrafficClass {
75182                        responder: SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
75183                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75184                            tx_id: header.tx_id,
75185                        },
75186                    })
75187                }
75188                0x6af077800c5a0b4f => {
75189                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75190                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6TrafficClassRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75191                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6TrafficClassRequest>(&header, _body_bytes, handles, &mut req)?;
75192                    let control_handle = SynchronousDatagramSocketControlHandle {
75193                        inner: this.inner.clone(),
75194                    };
75195                    Ok(SynchronousDatagramSocketRequest::SetIpv6TrafficClass {value: req.value,
75196
75197                        responder: SynchronousDatagramSocketSetIpv6TrafficClassResponder {
75198                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75199                            tx_id: header.tx_id,
75200                        },
75201                    })
75202                }
75203                0x6baf6eed8fc2f04 => {
75204                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75205                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75206                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75207                    let control_handle = SynchronousDatagramSocketControlHandle {
75208                        inner: this.inner.clone(),
75209                    };
75210                    Ok(SynchronousDatagramSocketRequest::GetIpv6TrafficClass {
75211                        responder: SynchronousDatagramSocketGetIpv6TrafficClassResponder {
75212                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75213                            tx_id: header.tx_id,
75214                        },
75215                    })
75216                }
75217                0x19259775b1a92768 => {
75218                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75219                    let mut req = fidl::new_empty!(BaseNetworkSocketSetIpv6ReceivePacketInfoRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75220                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BaseNetworkSocketSetIpv6ReceivePacketInfoRequest>(&header, _body_bytes, handles, &mut req)?;
75221                    let control_handle = SynchronousDatagramSocketControlHandle {
75222                        inner: this.inner.clone(),
75223                    };
75224                    Ok(SynchronousDatagramSocketRequest::SetIpv6ReceivePacketInfo {value: req.value,
75225
75226                        responder: SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
75227                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75228                            tx_id: header.tx_id,
75229                        },
75230                    })
75231                }
75232                0x7acd4a2775baec75 => {
75233                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75234                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75235                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75236                    let control_handle = SynchronousDatagramSocketControlHandle {
75237                        inner: this.inner.clone(),
75238                    };
75239                    Ok(SynchronousDatagramSocketRequest::GetIpv6ReceivePacketInfo {
75240                        responder: SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
75241                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75242                            tx_id: header.tx_id,
75243                        },
75244                    })
75245                }
75246                0x38bf28f0dafdbac0 => {
75247                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75248                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75249                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75250                    let control_handle = SynchronousDatagramSocketControlHandle {
75251                        inner: this.inner.clone(),
75252                    };
75253                    Ok(SynchronousDatagramSocketRequest::GetOriginalDestination {
75254                        responder: SynchronousDatagramSocketGetOriginalDestinationResponder {
75255                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75256                            tx_id: header.tx_id,
75257                        },
75258                    })
75259                }
75260                0x48aa0a1f6a32d2ed => {
75261                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75262                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75263                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75264                    let control_handle = SynchronousDatagramSocketControlHandle {
75265                        inner: this.inner.clone(),
75266                    };
75267                    Ok(SynchronousDatagramSocketRequest::GetInfo {
75268                        responder: SynchronousDatagramSocketGetInfoResponder {
75269                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75270                            tx_id: header.tx_id,
75271                        },
75272                    })
75273                }
75274                0x585f20b73631070d => {
75275                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75276                    let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
75277                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
75278                    let control_handle = SynchronousDatagramSocketControlHandle {
75279                        inner: this.inner.clone(),
75280                    };
75281                    Ok(SynchronousDatagramSocketRequest::Describe {
75282                        responder: SynchronousDatagramSocketDescribeResponder {
75283                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75284                            tx_id: header.tx_id,
75285                        },
75286                    })
75287                }
75288                0x28e494e48fb5dbf3 => {
75289                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75290                    let mut req = fidl::new_empty!(SynchronousDatagramSocketRecvMsgRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75291                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<SynchronousDatagramSocketRecvMsgRequest>(&header, _body_bytes, handles, &mut req)?;
75292                    let control_handle = SynchronousDatagramSocketControlHandle {
75293                        inner: this.inner.clone(),
75294                    };
75295                    Ok(SynchronousDatagramSocketRequest::RecvMsg {want_addr: req.want_addr,
75296data_len: req.data_len,
75297want_control: req.want_control,
75298flags: req.flags,
75299
75300                        responder: SynchronousDatagramSocketRecvMsgResponder {
75301                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75302                            tx_id: header.tx_id,
75303                        },
75304                    })
75305                }
75306                0x12dc2fceab6cefaa => {
75307                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
75308                    let mut req = fidl::new_empty!(SynchronousDatagramSocketSendMsgRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
75309                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<SynchronousDatagramSocketSendMsgRequest>(&header, _body_bytes, handles, &mut req)?;
75310                    let control_handle = SynchronousDatagramSocketControlHandle {
75311                        inner: this.inner.clone(),
75312                    };
75313                    Ok(SynchronousDatagramSocketRequest::SendMsg {addr: req.addr,
75314data: req.data,
75315control: req.control,
75316flags: req.flags,
75317
75318                        responder: SynchronousDatagramSocketSendMsgResponder {
75319                            control_handle: std::mem::ManuallyDrop::new(control_handle),
75320                            tx_id: header.tx_id,
75321                        },
75322                    })
75323                }
75324                _ => Err(fidl::Error::UnknownOrdinal {
75325                    ordinal: header.ordinal,
75326                    protocol_name: <SynchronousDatagramSocketMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
75327                }),
75328            }))
75329            },
75330        )
75331    }
75332}
75333
75334/// A synchronous datagram socket.
75335///
75336/// This protocol defines synchronous methods for sending and receiving datagram
75337/// payloads over a channel. All methods are nonblocking; their behavior roughly
75338/// matches their Linux counterparts.
75339///
75340/// *Warning:* This protocol is not yet ready for direct use by clients.
75341/// Instead, clients should use the BSD sockets API to interact with sockets.
75342/// We plan to change this protocol substantially and clients that couple
75343/// directly to this protocol will make those changes more difficult.
75344#[derive(Debug)]
75345pub enum SynchronousDatagramSocketRequest {
75346    Clone {
75347        request: fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
75348        control_handle: SynchronousDatagramSocketControlHandle,
75349    },
75350    /// Terminates the connection.
75351    ///
75352    /// After calling `Close`, the client must not send any other requests.
75353    ///
75354    /// Servers, after sending the status response, should close the connection
75355    /// regardless of status and without sending an epitaph.
75356    ///
75357    /// Closing the client end of the channel should be semantically equivalent
75358    /// to calling `Close` without knowing when the close has completed or its
75359    /// status.
75360    Close {
75361        responder: SynchronousDatagramSocketCloseResponder,
75362    },
75363    Query {
75364        responder: SynchronousDatagramSocketQueryResponder,
75365    },
75366    /// Set `SOL_SOCKET` -> `SO_REUSEADDR`.
75367    SetReuseAddress {
75368        value: bool,
75369        responder: SynchronousDatagramSocketSetReuseAddressResponder,
75370    },
75371    /// Get `SOL_SOCKET` -> `SO_REUSEADDR`.
75372    GetReuseAddress {
75373        responder: SynchronousDatagramSocketGetReuseAddressResponder,
75374    },
75375    /// Get `SOL_SOCKET` -> `SO_ERROR`.
75376    /// Returns the last error if there is an error set on the socket.
75377    GetError {
75378        responder: SynchronousDatagramSocketGetErrorResponder,
75379    },
75380    /// Set `SOL_SOCKET` -> `SO_BROADCAST`.
75381    SetBroadcast {
75382        value: bool,
75383        responder: SynchronousDatagramSocketSetBroadcastResponder,
75384    },
75385    /// Get `SOL_SOCKET` -> `SO_BROADCAST`.
75386    GetBroadcast {
75387        responder: SynchronousDatagramSocketGetBroadcastResponder,
75388    },
75389    /// Set `SOL_SOCKET` -> `SO_SNDBUF`.
75390    SetSendBuffer {
75391        value_bytes: u64,
75392        responder: SynchronousDatagramSocketSetSendBufferResponder,
75393    },
75394    /// Get `SOL_SOCKET` -> `SO_SNDBUF`.
75395    GetSendBuffer {
75396        responder: SynchronousDatagramSocketGetSendBufferResponder,
75397    },
75398    /// Set `SOL_SOCKET` -> `SO_RCVBUF`.
75399    SetReceiveBuffer {
75400        value_bytes: u64,
75401        responder: SynchronousDatagramSocketSetReceiveBufferResponder,
75402    },
75403    /// Get `SOL_SOCKET` -> `SO_RCVBUF`.
75404    GetReceiveBuffer {
75405        responder: SynchronousDatagramSocketGetReceiveBufferResponder,
75406    },
75407    /// Set `SOL_SOCKET` -> `SO_KEEPALIVE`.
75408    SetKeepAlive {
75409        value: bool,
75410        responder: SynchronousDatagramSocketSetKeepAliveResponder,
75411    },
75412    /// Get `SOL_SOCKET` -> `SO_KEEPALIVE`.
75413    GetKeepAlive {
75414        responder: SynchronousDatagramSocketGetKeepAliveResponder,
75415    },
75416    /// Set `SOL_SOCKET` -> `SO_OOBINLINE`.
75417    SetOutOfBandInline {
75418        value: bool,
75419        responder: SynchronousDatagramSocketSetOutOfBandInlineResponder,
75420    },
75421    /// Get `SOL_SOCKET` -> `SO_OOBINLINE`.
75422    GetOutOfBandInline {
75423        responder: SynchronousDatagramSocketGetOutOfBandInlineResponder,
75424    },
75425    /// Set `SOL_SOCKET` -> `SO_NO_CHECK`.
75426    SetNoCheck {
75427        value: bool,
75428        responder: SynchronousDatagramSocketSetNoCheckResponder,
75429    },
75430    /// Get `SOL_SOCKET` -> `SO_NO_CHECK`.
75431    GetNoCheck {
75432        responder: SynchronousDatagramSocketGetNoCheckResponder,
75433    },
75434    /// Set `SOL_SOCKET` -> `SO_LINGER`.
75435    SetLinger {
75436        linger: bool,
75437        length_secs: u32,
75438        responder: SynchronousDatagramSocketSetLingerResponder,
75439    },
75440    /// Get `SOL_SOCKET` -> `SO_LINGER`.
75441    GetLinger {
75442        responder: SynchronousDatagramSocketGetLingerResponder,
75443    },
75444    /// Set `SOL_SOCKET` -> `SO_REUSEPORT`.
75445    SetReusePort {
75446        value: bool,
75447        responder: SynchronousDatagramSocketSetReusePortResponder,
75448    },
75449    /// Get `SOL_SOCKET` -> `SO_REUSEPORT`.
75450    GetReusePort {
75451        responder: SynchronousDatagramSocketGetReusePortResponder,
75452    },
75453    /// Get `SOL_SOCKET` -> `SO_ACCEPTCONN`.
75454    GetAcceptConn {
75455        responder: SynchronousDatagramSocketGetAcceptConnResponder,
75456    },
75457    /// Set `SOL_SOCKET` -> `SO_BINDTODEVICE`.
75458    SetBindToDevice {
75459        value: String,
75460        responder: SynchronousDatagramSocketSetBindToDeviceResponder,
75461    },
75462    /// Get `SOL_SOCKET` -> `SO_BINDTODEVICE`.
75463    GetBindToDevice {
75464        responder: SynchronousDatagramSocketGetBindToDeviceResponder,
75465    },
75466    /// Set `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
75467    /// If `value` is 0, this clears the bound interface.
75468    SetBindToInterfaceIndex {
75469        value: u64,
75470        responder: SynchronousDatagramSocketSetBindToInterfaceIndexResponder,
75471    },
75472    /// Get `SOL_SOCKET` -> `SO_BINDTOIFINDEX`.
75473    GetBindToInterfaceIndex {
75474        responder: SynchronousDatagramSocketGetBindToInterfaceIndexResponder,
75475    },
75476    /// Set `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
75477    SetTimestamp {
75478        value: TimestampOption,
75479        responder: SynchronousDatagramSocketSetTimestampResponder,
75480    },
75481    /// Get `SOL_SOCKET` -> `SO_TIMESTAMP` or `SO_TIMESTAMPNS`.
75482    GetTimestamp {
75483        responder: SynchronousDatagramSocketGetTimestampResponder,
75484    },
75485    /// Like setting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
75486    /// unlike the standard SO_MARK, this API has multiple mark domains and each
75487    /// mark can be set independently in each domain.
75488    SetMark {
75489        domain: fidl_fuchsia_net::MarkDomain,
75490        mark: OptionalUint32,
75491        responder: SynchronousDatagramSocketSetMarkResponder,
75492    },
75493    /// Like getting `SOL_SOCKET` -> `SO_MARK`. The major difference is that
75494    /// unlike the standard SO_MARK, this API has multiple mark domains and each
75495    /// mark can be retrieved independently in each domain.
75496    GetMark {
75497        domain: fidl_fuchsia_net::MarkDomain,
75498        responder: SynchronousDatagramSocketGetMarkResponder,
75499    },
75500    /// Get `SOL_SOCKET` -> `SO_COOKIE`.
75501    GetCookie {
75502        responder: SynchronousDatagramSocketGetCookieResponder,
75503    },
75504    /// Sets the local address used for the socket.
75505    Bind {
75506        addr: fidl_fuchsia_net::SocketAddress,
75507        responder: SynchronousDatagramSocketBindResponder,
75508    },
75509    /// Initiates a connection to a remote address.
75510    Connect {
75511        addr: fidl_fuchsia_net::SocketAddress,
75512        responder: SynchronousDatagramSocketConnectResponder,
75513    },
75514    /// Clears connection information from this socket.
75515    Disconnect {
75516        responder: SynchronousDatagramSocketDisconnectResponder,
75517    },
75518    /// Retrieves the local socket address.
75519    GetSockName {
75520        responder: SynchronousDatagramSocketGetSockNameResponder,
75521    },
75522    /// Retrieves the remote socket address.
75523    GetPeerName {
75524        responder: SynchronousDatagramSocketGetPeerNameResponder,
75525    },
75526    /// Shuts down part of the socket.
75527    Shutdown {
75528        mode: ShutdownMode,
75529        responder: SynchronousDatagramSocketShutdownResponder,
75530    },
75531    /// Set `SOL_IP` -> `IP_TOS`.
75532    SetIpTypeOfService {
75533        value: u8,
75534        responder: SynchronousDatagramSocketSetIpTypeOfServiceResponder,
75535    },
75536    /// Get `SOL_IP` -> `IP_TOS`.
75537    GetIpTypeOfService {
75538        responder: SynchronousDatagramSocketGetIpTypeOfServiceResponder,
75539    },
75540    /// Set `SOL_IP` -> `IP_TTL`.
75541    SetIpTtl {
75542        value: OptionalUint8,
75543        responder: SynchronousDatagramSocketSetIpTtlResponder,
75544    },
75545    /// Get `SOL_IP` -> `IP_TTL`.
75546    GetIpTtl {
75547        responder: SynchronousDatagramSocketGetIpTtlResponder,
75548    },
75549    /// Set `SOL_IP` -> `IP_PKTINFO`.
75550    SetIpPacketInfo {
75551        value: bool,
75552        responder: SynchronousDatagramSocketSetIpPacketInfoResponder,
75553    },
75554    /// Get `SOL_IP` -> `IP_PKTINFO`.
75555    GetIpPacketInfo {
75556        responder: SynchronousDatagramSocketGetIpPacketInfoResponder,
75557    },
75558    /// Set `SOL_IP` -> `IP_RECVTOS`.
75559    SetIpReceiveTypeOfService {
75560        value: bool,
75561        responder: SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder,
75562    },
75563    /// Get `SOL_IP` -> `IP_RECVTOS`.
75564    GetIpReceiveTypeOfService {
75565        responder: SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder,
75566    },
75567    /// Set `SOL_IP` -> `IP_RECVTTL`.
75568    SetIpReceiveTtl {
75569        value: bool,
75570        responder: SynchronousDatagramSocketSetIpReceiveTtlResponder,
75571    },
75572    /// Get `SOL_IP` -> `IP_RECVTTL`.
75573    GetIpReceiveTtl {
75574        responder: SynchronousDatagramSocketGetIpReceiveTtlResponder,
75575    },
75576    /// Set `SOL_IP` -> `IP_MULTICAST_IF`.
75577    SetIpMulticastInterface {
75578        iface: u64,
75579        address: fidl_fuchsia_net::Ipv4Address,
75580        responder: SynchronousDatagramSocketSetIpMulticastInterfaceResponder,
75581    },
75582    /// Get `SOL_IP` -> `IP_MULTICAST_IF`.
75583    GetIpMulticastInterface {
75584        responder: SynchronousDatagramSocketGetIpMulticastInterfaceResponder,
75585    },
75586    /// Set `SOL_IP` -> `IP_MULTICAST_TTL`.
75587    SetIpMulticastTtl {
75588        value: OptionalUint8,
75589        responder: SynchronousDatagramSocketSetIpMulticastTtlResponder,
75590    },
75591    /// Get `SOL_IP` -> `IP_MULTICAST_TTL`.
75592    GetIpMulticastTtl {
75593        responder: SynchronousDatagramSocketGetIpMulticastTtlResponder,
75594    },
75595    /// Set `SOL_IP` -> `IP_MULTICAST_LOOP`.
75596    SetIpMulticastLoopback {
75597        value: bool,
75598        responder: SynchronousDatagramSocketSetIpMulticastLoopbackResponder,
75599    },
75600    /// Get `SOL_IP` -> `IP_MULTICAST_LOOP`.
75601    GetIpMulticastLoopback {
75602        responder: SynchronousDatagramSocketGetIpMulticastLoopbackResponder,
75603    },
75604    /// Set `SOL_IP` -> `IP_ADD_MEMBERSHIP`
75605    AddIpMembership {
75606        membership: IpMulticastMembership,
75607        responder: SynchronousDatagramSocketAddIpMembershipResponder,
75608    },
75609    /// Set `SOL_IP` -> `IP_DROP_MEMBERSHIP`
75610    DropIpMembership {
75611        membership: IpMulticastMembership,
75612        responder: SynchronousDatagramSocketDropIpMembershipResponder,
75613    },
75614    /// Set `SOL_IP` -> `IP_TRANSPARENT`
75615    SetIpTransparent {
75616        value: bool,
75617        responder: SynchronousDatagramSocketSetIpTransparentResponder,
75618    },
75619    /// Get `SOL_IP` -> `IP_TRANSPARENT`
75620    GetIpTransparent {
75621        responder: SynchronousDatagramSocketGetIpTransparentResponder,
75622    },
75623    /// Set `SOL_IP` -> `IP_RECVORIGDSTADDR`
75624    SetIpReceiveOriginalDestinationAddress {
75625        value: bool,
75626        responder: SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder,
75627    },
75628    /// Get `SOL_IP` -> `IP_RECVORIGDSTADDR`
75629    GetIpReceiveOriginalDestinationAddress {
75630        responder: SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder,
75631    },
75632    /// Set `SOL_IPV6` -> `IPV6_ADD_MEMBERSHIP`.
75633    AddIpv6Membership {
75634        membership: Ipv6MulticastMembership,
75635        responder: SynchronousDatagramSocketAddIpv6MembershipResponder,
75636    },
75637    /// Set `SOL_IPV6` -> `IPV6_DROP_MEMBERSHIP`.
75638    DropIpv6Membership {
75639        membership: Ipv6MulticastMembership,
75640        responder: SynchronousDatagramSocketDropIpv6MembershipResponder,
75641    },
75642    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
75643    SetIpv6MulticastInterface {
75644        value: u64,
75645        responder: SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder,
75646    },
75647    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_IF`.
75648    GetIpv6MulticastInterface {
75649        responder: SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder,
75650    },
75651    /// Set `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
75652    SetIpv6UnicastHops {
75653        value: OptionalUint8,
75654        responder: SynchronousDatagramSocketSetIpv6UnicastHopsResponder,
75655    },
75656    /// Get `SOL_IPV6` -> `IPV6_UNICAST_HOPS`.
75657    GetIpv6UnicastHops {
75658        responder: SynchronousDatagramSocketGetIpv6UnicastHopsResponder,
75659    },
75660    /// Set `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
75661    SetIpv6ReceiveHopLimit {
75662        value: bool,
75663        responder: SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder,
75664    },
75665    /// Get `SOL_IPV6` -> `IPV6_RECVHOPLIMIT`.
75666    GetIpv6ReceiveHopLimit {
75667        responder: SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder,
75668    },
75669    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
75670    SetIpv6MulticastHops {
75671        value: OptionalUint8,
75672        responder: SynchronousDatagramSocketSetIpv6MulticastHopsResponder,
75673    },
75674    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_HOPS`.
75675    GetIpv6MulticastHops {
75676        responder: SynchronousDatagramSocketGetIpv6MulticastHopsResponder,
75677    },
75678    /// Set `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
75679    SetIpv6MulticastLoopback {
75680        value: bool,
75681        responder: SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder,
75682    },
75683    /// Get `SOL_IPV6` -> `IPV6_MULTICAST_LOOP`.
75684    GetIpv6MulticastLoopback {
75685        responder: SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder,
75686    },
75687    /// Set `SOL_IPV6` -> `IPV6_V6ONLY`.
75688    SetIpv6Only {
75689        value: bool,
75690        responder: SynchronousDatagramSocketSetIpv6OnlyResponder,
75691    },
75692    /// Get `SOL_IPV6` -> `IPV6_V6ONLY`.
75693    GetIpv6Only {
75694        responder: SynchronousDatagramSocketGetIpv6OnlyResponder,
75695    },
75696    /// Set `SOL_IPV6` -> `IPV6_RECVTCLASS`.
75697    SetIpv6ReceiveTrafficClass {
75698        value: bool,
75699        responder: SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder,
75700    },
75701    /// Get `SOL_IPV6` -> `IPV6_RECVTCLASS`.
75702    GetIpv6ReceiveTrafficClass {
75703        responder: SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder,
75704    },
75705    /// Set `SOL_IPV6` -> `IPV6_TCLASS`
75706    SetIpv6TrafficClass {
75707        value: OptionalUint8,
75708        responder: SynchronousDatagramSocketSetIpv6TrafficClassResponder,
75709    },
75710    /// Get `SOL_IPV6` -> `IPV6_TCLASS`.
75711    GetIpv6TrafficClass {
75712        responder: SynchronousDatagramSocketGetIpv6TrafficClassResponder,
75713    },
75714    /// Set `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
75715    SetIpv6ReceivePacketInfo {
75716        value: bool,
75717        responder: SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder,
75718    },
75719    /// Get `SOL_IPV6` -> `IPV6_RECVPKTINFO`.
75720    GetIpv6ReceivePacketInfo {
75721        responder: SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder,
75722    },
75723    /// Get `SOL_IP` -> `SO_ORIGINAL_DST`.
75724    GetOriginalDestination {
75725        responder: SynchronousDatagramSocketGetOriginalDestinationResponder,
75726    },
75727    /// Retrieves creation information from the socket.
75728    ///
75729    /// - response `domain` the socket's associated domain.
75730    /// - response `proto` the socket's associated protocol.
75731    GetInfo {
75732        responder: SynchronousDatagramSocketGetInfoResponder,
75733    },
75734    Describe {
75735        responder: SynchronousDatagramSocketDescribeResponder,
75736    },
75737    /// Receives a message from the socket.
75738    ///
75739    /// + request `want_addr` request message's source address information to
75740    ///   be returned.
75741    /// + request `data_len` the maximum allowed length of the response data
75742    ///   buffer.
75743    /// + request `want_control` request ancillary data to be returned.
75744    /// + request `flags` flags for the receive request.
75745    /// - response `addr` the message's source address information, if
75746    ///   requested.
75747    /// - response `data` the message.
75748    /// - response `control` control messages, if requested.
75749    /// - response `truncated` indicates whether or not the returned message
75750    ///   was truncated.
75751    RecvMsg {
75752        want_addr: bool,
75753        data_len: u32,
75754        want_control: bool,
75755        flags: RecvMsgFlags,
75756        responder: SynchronousDatagramSocketRecvMsgResponder,
75757    },
75758    /// Sends a message on the socket.
75759    ///
75760    /// + request `addr` the address to send the message to. If unset, will send
75761    ///   to the connected peer.
75762    /// + request `data` the message.
75763    /// + request `control` ancillary data.
75764    /// + request `flags` flags for the send request.
75765    /// - response `len` the number of bytes sent.
75766    SendMsg {
75767        addr: Option<Box<fidl_fuchsia_net::SocketAddress>>,
75768        data: Vec<u8>,
75769        control: DatagramSocketSendControlData,
75770        flags: SendMsgFlags,
75771        responder: SynchronousDatagramSocketSendMsgResponder,
75772    },
75773}
75774
75775impl SynchronousDatagramSocketRequest {
75776    #[allow(irrefutable_let_patterns)]
75777    pub fn into_clone(
75778        self,
75779    ) -> Option<(
75780        fidl::endpoints::ServerEnd<fidl_fuchsia_unknown::CloneableMarker>,
75781        SynchronousDatagramSocketControlHandle,
75782    )> {
75783        if let SynchronousDatagramSocketRequest::Clone { request, control_handle } = self {
75784            Some((request, control_handle))
75785        } else {
75786            None
75787        }
75788    }
75789
75790    #[allow(irrefutable_let_patterns)]
75791    pub fn into_close(self) -> Option<(SynchronousDatagramSocketCloseResponder)> {
75792        if let SynchronousDatagramSocketRequest::Close { responder } = self {
75793            Some((responder))
75794        } else {
75795            None
75796        }
75797    }
75798
75799    #[allow(irrefutable_let_patterns)]
75800    pub fn into_query(self) -> Option<(SynchronousDatagramSocketQueryResponder)> {
75801        if let SynchronousDatagramSocketRequest::Query { responder } = self {
75802            Some((responder))
75803        } else {
75804            None
75805        }
75806    }
75807
75808    #[allow(irrefutable_let_patterns)]
75809    pub fn into_set_reuse_address(
75810        self,
75811    ) -> Option<(bool, SynchronousDatagramSocketSetReuseAddressResponder)> {
75812        if let SynchronousDatagramSocketRequest::SetReuseAddress { value, responder } = self {
75813            Some((value, responder))
75814        } else {
75815            None
75816        }
75817    }
75818
75819    #[allow(irrefutable_let_patterns)]
75820    pub fn into_get_reuse_address(
75821        self,
75822    ) -> Option<(SynchronousDatagramSocketGetReuseAddressResponder)> {
75823        if let SynchronousDatagramSocketRequest::GetReuseAddress { responder } = self {
75824            Some((responder))
75825        } else {
75826            None
75827        }
75828    }
75829
75830    #[allow(irrefutable_let_patterns)]
75831    pub fn into_get_error(self) -> Option<(SynchronousDatagramSocketGetErrorResponder)> {
75832        if let SynchronousDatagramSocketRequest::GetError { responder } = self {
75833            Some((responder))
75834        } else {
75835            None
75836        }
75837    }
75838
75839    #[allow(irrefutable_let_patterns)]
75840    pub fn into_set_broadcast(
75841        self,
75842    ) -> Option<(bool, SynchronousDatagramSocketSetBroadcastResponder)> {
75843        if let SynchronousDatagramSocketRequest::SetBroadcast { value, responder } = self {
75844            Some((value, responder))
75845        } else {
75846            None
75847        }
75848    }
75849
75850    #[allow(irrefutable_let_patterns)]
75851    pub fn into_get_broadcast(self) -> Option<(SynchronousDatagramSocketGetBroadcastResponder)> {
75852        if let SynchronousDatagramSocketRequest::GetBroadcast { responder } = self {
75853            Some((responder))
75854        } else {
75855            None
75856        }
75857    }
75858
75859    #[allow(irrefutable_let_patterns)]
75860    pub fn into_set_send_buffer(
75861        self,
75862    ) -> Option<(u64, SynchronousDatagramSocketSetSendBufferResponder)> {
75863        if let SynchronousDatagramSocketRequest::SetSendBuffer { value_bytes, responder } = self {
75864            Some((value_bytes, responder))
75865        } else {
75866            None
75867        }
75868    }
75869
75870    #[allow(irrefutable_let_patterns)]
75871    pub fn into_get_send_buffer(self) -> Option<(SynchronousDatagramSocketGetSendBufferResponder)> {
75872        if let SynchronousDatagramSocketRequest::GetSendBuffer { responder } = self {
75873            Some((responder))
75874        } else {
75875            None
75876        }
75877    }
75878
75879    #[allow(irrefutable_let_patterns)]
75880    pub fn into_set_receive_buffer(
75881        self,
75882    ) -> Option<(u64, SynchronousDatagramSocketSetReceiveBufferResponder)> {
75883        if let SynchronousDatagramSocketRequest::SetReceiveBuffer { value_bytes, responder } = self
75884        {
75885            Some((value_bytes, responder))
75886        } else {
75887            None
75888        }
75889    }
75890
75891    #[allow(irrefutable_let_patterns)]
75892    pub fn into_get_receive_buffer(
75893        self,
75894    ) -> Option<(SynchronousDatagramSocketGetReceiveBufferResponder)> {
75895        if let SynchronousDatagramSocketRequest::GetReceiveBuffer { responder } = self {
75896            Some((responder))
75897        } else {
75898            None
75899        }
75900    }
75901
75902    #[allow(irrefutable_let_patterns)]
75903    pub fn into_set_keep_alive(
75904        self,
75905    ) -> Option<(bool, SynchronousDatagramSocketSetKeepAliveResponder)> {
75906        if let SynchronousDatagramSocketRequest::SetKeepAlive { value, responder } = self {
75907            Some((value, responder))
75908        } else {
75909            None
75910        }
75911    }
75912
75913    #[allow(irrefutable_let_patterns)]
75914    pub fn into_get_keep_alive(self) -> Option<(SynchronousDatagramSocketGetKeepAliveResponder)> {
75915        if let SynchronousDatagramSocketRequest::GetKeepAlive { responder } = self {
75916            Some((responder))
75917        } else {
75918            None
75919        }
75920    }
75921
75922    #[allow(irrefutable_let_patterns)]
75923    pub fn into_set_out_of_band_inline(
75924        self,
75925    ) -> Option<(bool, SynchronousDatagramSocketSetOutOfBandInlineResponder)> {
75926        if let SynchronousDatagramSocketRequest::SetOutOfBandInline { value, responder } = self {
75927            Some((value, responder))
75928        } else {
75929            None
75930        }
75931    }
75932
75933    #[allow(irrefutable_let_patterns)]
75934    pub fn into_get_out_of_band_inline(
75935        self,
75936    ) -> Option<(SynchronousDatagramSocketGetOutOfBandInlineResponder)> {
75937        if let SynchronousDatagramSocketRequest::GetOutOfBandInline { responder } = self {
75938            Some((responder))
75939        } else {
75940            None
75941        }
75942    }
75943
75944    #[allow(irrefutable_let_patterns)]
75945    pub fn into_set_no_check(self) -> Option<(bool, SynchronousDatagramSocketSetNoCheckResponder)> {
75946        if let SynchronousDatagramSocketRequest::SetNoCheck { value, responder } = self {
75947            Some((value, responder))
75948        } else {
75949            None
75950        }
75951    }
75952
75953    #[allow(irrefutable_let_patterns)]
75954    pub fn into_get_no_check(self) -> Option<(SynchronousDatagramSocketGetNoCheckResponder)> {
75955        if let SynchronousDatagramSocketRequest::GetNoCheck { responder } = self {
75956            Some((responder))
75957        } else {
75958            None
75959        }
75960    }
75961
75962    #[allow(irrefutable_let_patterns)]
75963    pub fn into_set_linger(
75964        self,
75965    ) -> Option<(bool, u32, SynchronousDatagramSocketSetLingerResponder)> {
75966        if let SynchronousDatagramSocketRequest::SetLinger { linger, length_secs, responder } = self
75967        {
75968            Some((linger, length_secs, responder))
75969        } else {
75970            None
75971        }
75972    }
75973
75974    #[allow(irrefutable_let_patterns)]
75975    pub fn into_get_linger(self) -> Option<(SynchronousDatagramSocketGetLingerResponder)> {
75976        if let SynchronousDatagramSocketRequest::GetLinger { responder } = self {
75977            Some((responder))
75978        } else {
75979            None
75980        }
75981    }
75982
75983    #[allow(irrefutable_let_patterns)]
75984    pub fn into_set_reuse_port(
75985        self,
75986    ) -> Option<(bool, SynchronousDatagramSocketSetReusePortResponder)> {
75987        if let SynchronousDatagramSocketRequest::SetReusePort { value, responder } = self {
75988            Some((value, responder))
75989        } else {
75990            None
75991        }
75992    }
75993
75994    #[allow(irrefutable_let_patterns)]
75995    pub fn into_get_reuse_port(self) -> Option<(SynchronousDatagramSocketGetReusePortResponder)> {
75996        if let SynchronousDatagramSocketRequest::GetReusePort { responder } = self {
75997            Some((responder))
75998        } else {
75999            None
76000        }
76001    }
76002
76003    #[allow(irrefutable_let_patterns)]
76004    pub fn into_get_accept_conn(self) -> Option<(SynchronousDatagramSocketGetAcceptConnResponder)> {
76005        if let SynchronousDatagramSocketRequest::GetAcceptConn { responder } = self {
76006            Some((responder))
76007        } else {
76008            None
76009        }
76010    }
76011
76012    #[allow(irrefutable_let_patterns)]
76013    pub fn into_set_bind_to_device(
76014        self,
76015    ) -> Option<(String, SynchronousDatagramSocketSetBindToDeviceResponder)> {
76016        if let SynchronousDatagramSocketRequest::SetBindToDevice { value, responder } = self {
76017            Some((value, responder))
76018        } else {
76019            None
76020        }
76021    }
76022
76023    #[allow(irrefutable_let_patterns)]
76024    pub fn into_get_bind_to_device(
76025        self,
76026    ) -> Option<(SynchronousDatagramSocketGetBindToDeviceResponder)> {
76027        if let SynchronousDatagramSocketRequest::GetBindToDevice { responder } = self {
76028            Some((responder))
76029        } else {
76030            None
76031        }
76032    }
76033
76034    #[allow(irrefutable_let_patterns)]
76035    pub fn into_set_bind_to_interface_index(
76036        self,
76037    ) -> Option<(u64, SynchronousDatagramSocketSetBindToInterfaceIndexResponder)> {
76038        if let SynchronousDatagramSocketRequest::SetBindToInterfaceIndex { value, responder } = self
76039        {
76040            Some((value, responder))
76041        } else {
76042            None
76043        }
76044    }
76045
76046    #[allow(irrefutable_let_patterns)]
76047    pub fn into_get_bind_to_interface_index(
76048        self,
76049    ) -> Option<(SynchronousDatagramSocketGetBindToInterfaceIndexResponder)> {
76050        if let SynchronousDatagramSocketRequest::GetBindToInterfaceIndex { responder } = self {
76051            Some((responder))
76052        } else {
76053            None
76054        }
76055    }
76056
76057    #[allow(irrefutable_let_patterns)]
76058    pub fn into_set_timestamp(
76059        self,
76060    ) -> Option<(TimestampOption, SynchronousDatagramSocketSetTimestampResponder)> {
76061        if let SynchronousDatagramSocketRequest::SetTimestamp { value, responder } = self {
76062            Some((value, responder))
76063        } else {
76064            None
76065        }
76066    }
76067
76068    #[allow(irrefutable_let_patterns)]
76069    pub fn into_get_timestamp(self) -> Option<(SynchronousDatagramSocketGetTimestampResponder)> {
76070        if let SynchronousDatagramSocketRequest::GetTimestamp { responder } = self {
76071            Some((responder))
76072        } else {
76073            None
76074        }
76075    }
76076
76077    #[allow(irrefutable_let_patterns)]
76078    pub fn into_set_mark(
76079        self,
76080    ) -> Option<(
76081        fidl_fuchsia_net::MarkDomain,
76082        OptionalUint32,
76083        SynchronousDatagramSocketSetMarkResponder,
76084    )> {
76085        if let SynchronousDatagramSocketRequest::SetMark { domain, mark, responder } = self {
76086            Some((domain, mark, responder))
76087        } else {
76088            None
76089        }
76090    }
76091
76092    #[allow(irrefutable_let_patterns)]
76093    pub fn into_get_mark(
76094        self,
76095    ) -> Option<(fidl_fuchsia_net::MarkDomain, SynchronousDatagramSocketGetMarkResponder)> {
76096        if let SynchronousDatagramSocketRequest::GetMark { domain, responder } = self {
76097            Some((domain, responder))
76098        } else {
76099            None
76100        }
76101    }
76102
76103    #[allow(irrefutable_let_patterns)]
76104    pub fn into_get_cookie(self) -> Option<(SynchronousDatagramSocketGetCookieResponder)> {
76105        if let SynchronousDatagramSocketRequest::GetCookie { responder } = self {
76106            Some((responder))
76107        } else {
76108            None
76109        }
76110    }
76111
76112    #[allow(irrefutable_let_patterns)]
76113    pub fn into_bind(
76114        self,
76115    ) -> Option<(fidl_fuchsia_net::SocketAddress, SynchronousDatagramSocketBindResponder)> {
76116        if let SynchronousDatagramSocketRequest::Bind { addr, responder } = self {
76117            Some((addr, responder))
76118        } else {
76119            None
76120        }
76121    }
76122
76123    #[allow(irrefutable_let_patterns)]
76124    pub fn into_connect(
76125        self,
76126    ) -> Option<(fidl_fuchsia_net::SocketAddress, SynchronousDatagramSocketConnectResponder)> {
76127        if let SynchronousDatagramSocketRequest::Connect { addr, responder } = self {
76128            Some((addr, responder))
76129        } else {
76130            None
76131        }
76132    }
76133
76134    #[allow(irrefutable_let_patterns)]
76135    pub fn into_disconnect(self) -> Option<(SynchronousDatagramSocketDisconnectResponder)> {
76136        if let SynchronousDatagramSocketRequest::Disconnect { responder } = self {
76137            Some((responder))
76138        } else {
76139            None
76140        }
76141    }
76142
76143    #[allow(irrefutable_let_patterns)]
76144    pub fn into_get_sock_name(self) -> Option<(SynchronousDatagramSocketGetSockNameResponder)> {
76145        if let SynchronousDatagramSocketRequest::GetSockName { responder } = self {
76146            Some((responder))
76147        } else {
76148            None
76149        }
76150    }
76151
76152    #[allow(irrefutable_let_patterns)]
76153    pub fn into_get_peer_name(self) -> Option<(SynchronousDatagramSocketGetPeerNameResponder)> {
76154        if let SynchronousDatagramSocketRequest::GetPeerName { responder } = self {
76155            Some((responder))
76156        } else {
76157            None
76158        }
76159    }
76160
76161    #[allow(irrefutable_let_patterns)]
76162    pub fn into_shutdown(
76163        self,
76164    ) -> Option<(ShutdownMode, SynchronousDatagramSocketShutdownResponder)> {
76165        if let SynchronousDatagramSocketRequest::Shutdown { mode, responder } = self {
76166            Some((mode, responder))
76167        } else {
76168            None
76169        }
76170    }
76171
76172    #[allow(irrefutable_let_patterns)]
76173    pub fn into_set_ip_type_of_service(
76174        self,
76175    ) -> Option<(u8, SynchronousDatagramSocketSetIpTypeOfServiceResponder)> {
76176        if let SynchronousDatagramSocketRequest::SetIpTypeOfService { value, responder } = self {
76177            Some((value, responder))
76178        } else {
76179            None
76180        }
76181    }
76182
76183    #[allow(irrefutable_let_patterns)]
76184    pub fn into_get_ip_type_of_service(
76185        self,
76186    ) -> Option<(SynchronousDatagramSocketGetIpTypeOfServiceResponder)> {
76187        if let SynchronousDatagramSocketRequest::GetIpTypeOfService { responder } = self {
76188            Some((responder))
76189        } else {
76190            None
76191        }
76192    }
76193
76194    #[allow(irrefutable_let_patterns)]
76195    pub fn into_set_ip_ttl(
76196        self,
76197    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpTtlResponder)> {
76198        if let SynchronousDatagramSocketRequest::SetIpTtl { value, responder } = self {
76199            Some((value, responder))
76200        } else {
76201            None
76202        }
76203    }
76204
76205    #[allow(irrefutable_let_patterns)]
76206    pub fn into_get_ip_ttl(self) -> Option<(SynchronousDatagramSocketGetIpTtlResponder)> {
76207        if let SynchronousDatagramSocketRequest::GetIpTtl { responder } = self {
76208            Some((responder))
76209        } else {
76210            None
76211        }
76212    }
76213
76214    #[allow(irrefutable_let_patterns)]
76215    pub fn into_set_ip_packet_info(
76216        self,
76217    ) -> Option<(bool, SynchronousDatagramSocketSetIpPacketInfoResponder)> {
76218        if let SynchronousDatagramSocketRequest::SetIpPacketInfo { value, responder } = self {
76219            Some((value, responder))
76220        } else {
76221            None
76222        }
76223    }
76224
76225    #[allow(irrefutable_let_patterns)]
76226    pub fn into_get_ip_packet_info(
76227        self,
76228    ) -> Option<(SynchronousDatagramSocketGetIpPacketInfoResponder)> {
76229        if let SynchronousDatagramSocketRequest::GetIpPacketInfo { responder } = self {
76230            Some((responder))
76231        } else {
76232            None
76233        }
76234    }
76235
76236    #[allow(irrefutable_let_patterns)]
76237    pub fn into_set_ip_receive_type_of_service(
76238        self,
76239    ) -> Option<(bool, SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder)> {
76240        if let SynchronousDatagramSocketRequest::SetIpReceiveTypeOfService { value, responder } =
76241            self
76242        {
76243            Some((value, responder))
76244        } else {
76245            None
76246        }
76247    }
76248
76249    #[allow(irrefutable_let_patterns)]
76250    pub fn into_get_ip_receive_type_of_service(
76251        self,
76252    ) -> Option<(SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder)> {
76253        if let SynchronousDatagramSocketRequest::GetIpReceiveTypeOfService { responder } = self {
76254            Some((responder))
76255        } else {
76256            None
76257        }
76258    }
76259
76260    #[allow(irrefutable_let_patterns)]
76261    pub fn into_set_ip_receive_ttl(
76262        self,
76263    ) -> Option<(bool, SynchronousDatagramSocketSetIpReceiveTtlResponder)> {
76264        if let SynchronousDatagramSocketRequest::SetIpReceiveTtl { value, responder } = self {
76265            Some((value, responder))
76266        } else {
76267            None
76268        }
76269    }
76270
76271    #[allow(irrefutable_let_patterns)]
76272    pub fn into_get_ip_receive_ttl(
76273        self,
76274    ) -> Option<(SynchronousDatagramSocketGetIpReceiveTtlResponder)> {
76275        if let SynchronousDatagramSocketRequest::GetIpReceiveTtl { responder } = self {
76276            Some((responder))
76277        } else {
76278            None
76279        }
76280    }
76281
76282    #[allow(irrefutable_let_patterns)]
76283    pub fn into_set_ip_multicast_interface(
76284        self,
76285    ) -> Option<(
76286        u64,
76287        fidl_fuchsia_net::Ipv4Address,
76288        SynchronousDatagramSocketSetIpMulticastInterfaceResponder,
76289    )> {
76290        if let SynchronousDatagramSocketRequest::SetIpMulticastInterface {
76291            iface,
76292            address,
76293            responder,
76294        } = self
76295        {
76296            Some((iface, address, responder))
76297        } else {
76298            None
76299        }
76300    }
76301
76302    #[allow(irrefutable_let_patterns)]
76303    pub fn into_get_ip_multicast_interface(
76304        self,
76305    ) -> Option<(SynchronousDatagramSocketGetIpMulticastInterfaceResponder)> {
76306        if let SynchronousDatagramSocketRequest::GetIpMulticastInterface { responder } = self {
76307            Some((responder))
76308        } else {
76309            None
76310        }
76311    }
76312
76313    #[allow(irrefutable_let_patterns)]
76314    pub fn into_set_ip_multicast_ttl(
76315        self,
76316    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpMulticastTtlResponder)> {
76317        if let SynchronousDatagramSocketRequest::SetIpMulticastTtl { value, responder } = self {
76318            Some((value, responder))
76319        } else {
76320            None
76321        }
76322    }
76323
76324    #[allow(irrefutable_let_patterns)]
76325    pub fn into_get_ip_multicast_ttl(
76326        self,
76327    ) -> Option<(SynchronousDatagramSocketGetIpMulticastTtlResponder)> {
76328        if let SynchronousDatagramSocketRequest::GetIpMulticastTtl { responder } = self {
76329            Some((responder))
76330        } else {
76331            None
76332        }
76333    }
76334
76335    #[allow(irrefutable_let_patterns)]
76336    pub fn into_set_ip_multicast_loopback(
76337        self,
76338    ) -> Option<(bool, SynchronousDatagramSocketSetIpMulticastLoopbackResponder)> {
76339        if let SynchronousDatagramSocketRequest::SetIpMulticastLoopback { value, responder } = self
76340        {
76341            Some((value, responder))
76342        } else {
76343            None
76344        }
76345    }
76346
76347    #[allow(irrefutable_let_patterns)]
76348    pub fn into_get_ip_multicast_loopback(
76349        self,
76350    ) -> Option<(SynchronousDatagramSocketGetIpMulticastLoopbackResponder)> {
76351        if let SynchronousDatagramSocketRequest::GetIpMulticastLoopback { responder } = self {
76352            Some((responder))
76353        } else {
76354            None
76355        }
76356    }
76357
76358    #[allow(irrefutable_let_patterns)]
76359    pub fn into_add_ip_membership(
76360        self,
76361    ) -> Option<(IpMulticastMembership, SynchronousDatagramSocketAddIpMembershipResponder)> {
76362        if let SynchronousDatagramSocketRequest::AddIpMembership { membership, responder } = self {
76363            Some((membership, responder))
76364        } else {
76365            None
76366        }
76367    }
76368
76369    #[allow(irrefutable_let_patterns)]
76370    pub fn into_drop_ip_membership(
76371        self,
76372    ) -> Option<(IpMulticastMembership, SynchronousDatagramSocketDropIpMembershipResponder)> {
76373        if let SynchronousDatagramSocketRequest::DropIpMembership { membership, responder } = self {
76374            Some((membership, responder))
76375        } else {
76376            None
76377        }
76378    }
76379
76380    #[allow(irrefutable_let_patterns)]
76381    pub fn into_set_ip_transparent(
76382        self,
76383    ) -> Option<(bool, SynchronousDatagramSocketSetIpTransparentResponder)> {
76384        if let SynchronousDatagramSocketRequest::SetIpTransparent { value, responder } = self {
76385            Some((value, responder))
76386        } else {
76387            None
76388        }
76389    }
76390
76391    #[allow(irrefutable_let_patterns)]
76392    pub fn into_get_ip_transparent(
76393        self,
76394    ) -> Option<(SynchronousDatagramSocketGetIpTransparentResponder)> {
76395        if let SynchronousDatagramSocketRequest::GetIpTransparent { responder } = self {
76396            Some((responder))
76397        } else {
76398            None
76399        }
76400    }
76401
76402    #[allow(irrefutable_let_patterns)]
76403    pub fn into_set_ip_receive_original_destination_address(
76404        self,
76405    ) -> Option<(bool, SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder)>
76406    {
76407        if let SynchronousDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress {
76408            value,
76409            responder,
76410        } = self
76411        {
76412            Some((value, responder))
76413        } else {
76414            None
76415        }
76416    }
76417
76418    #[allow(irrefutable_let_patterns)]
76419    pub fn into_get_ip_receive_original_destination_address(
76420        self,
76421    ) -> Option<(SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder)> {
76422        if let SynchronousDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress {
76423            responder,
76424        } = self
76425        {
76426            Some((responder))
76427        } else {
76428            None
76429        }
76430    }
76431
76432    #[allow(irrefutable_let_patterns)]
76433    pub fn into_add_ipv6_membership(
76434        self,
76435    ) -> Option<(Ipv6MulticastMembership, SynchronousDatagramSocketAddIpv6MembershipResponder)>
76436    {
76437        if let SynchronousDatagramSocketRequest::AddIpv6Membership { membership, responder } = self
76438        {
76439            Some((membership, responder))
76440        } else {
76441            None
76442        }
76443    }
76444
76445    #[allow(irrefutable_let_patterns)]
76446    pub fn into_drop_ipv6_membership(
76447        self,
76448    ) -> Option<(Ipv6MulticastMembership, SynchronousDatagramSocketDropIpv6MembershipResponder)>
76449    {
76450        if let SynchronousDatagramSocketRequest::DropIpv6Membership { membership, responder } = self
76451        {
76452            Some((membership, responder))
76453        } else {
76454            None
76455        }
76456    }
76457
76458    #[allow(irrefutable_let_patterns)]
76459    pub fn into_set_ipv6_multicast_interface(
76460        self,
76461    ) -> Option<(u64, SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder)> {
76462        if let SynchronousDatagramSocketRequest::SetIpv6MulticastInterface { value, responder } =
76463            self
76464        {
76465            Some((value, responder))
76466        } else {
76467            None
76468        }
76469    }
76470
76471    #[allow(irrefutable_let_patterns)]
76472    pub fn into_get_ipv6_multicast_interface(
76473        self,
76474    ) -> Option<(SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder)> {
76475        if let SynchronousDatagramSocketRequest::GetIpv6MulticastInterface { responder } = self {
76476            Some((responder))
76477        } else {
76478            None
76479        }
76480    }
76481
76482    #[allow(irrefutable_let_patterns)]
76483    pub fn into_set_ipv6_unicast_hops(
76484        self,
76485    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpv6UnicastHopsResponder)> {
76486        if let SynchronousDatagramSocketRequest::SetIpv6UnicastHops { value, responder } = self {
76487            Some((value, responder))
76488        } else {
76489            None
76490        }
76491    }
76492
76493    #[allow(irrefutable_let_patterns)]
76494    pub fn into_get_ipv6_unicast_hops(
76495        self,
76496    ) -> Option<(SynchronousDatagramSocketGetIpv6UnicastHopsResponder)> {
76497        if let SynchronousDatagramSocketRequest::GetIpv6UnicastHops { responder } = self {
76498            Some((responder))
76499        } else {
76500            None
76501        }
76502    }
76503
76504    #[allow(irrefutable_let_patterns)]
76505    pub fn into_set_ipv6_receive_hop_limit(
76506        self,
76507    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder)> {
76508        if let SynchronousDatagramSocketRequest::SetIpv6ReceiveHopLimit { value, responder } = self
76509        {
76510            Some((value, responder))
76511        } else {
76512            None
76513        }
76514    }
76515
76516    #[allow(irrefutable_let_patterns)]
76517    pub fn into_get_ipv6_receive_hop_limit(
76518        self,
76519    ) -> Option<(SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder)> {
76520        if let SynchronousDatagramSocketRequest::GetIpv6ReceiveHopLimit { responder } = self {
76521            Some((responder))
76522        } else {
76523            None
76524        }
76525    }
76526
76527    #[allow(irrefutable_let_patterns)]
76528    pub fn into_set_ipv6_multicast_hops(
76529        self,
76530    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpv6MulticastHopsResponder)> {
76531        if let SynchronousDatagramSocketRequest::SetIpv6MulticastHops { value, responder } = self {
76532            Some((value, responder))
76533        } else {
76534            None
76535        }
76536    }
76537
76538    #[allow(irrefutable_let_patterns)]
76539    pub fn into_get_ipv6_multicast_hops(
76540        self,
76541    ) -> Option<(SynchronousDatagramSocketGetIpv6MulticastHopsResponder)> {
76542        if let SynchronousDatagramSocketRequest::GetIpv6MulticastHops { responder } = self {
76543            Some((responder))
76544        } else {
76545            None
76546        }
76547    }
76548
76549    #[allow(irrefutable_let_patterns)]
76550    pub fn into_set_ipv6_multicast_loopback(
76551        self,
76552    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder)> {
76553        if let SynchronousDatagramSocketRequest::SetIpv6MulticastLoopback { value, responder } =
76554            self
76555        {
76556            Some((value, responder))
76557        } else {
76558            None
76559        }
76560    }
76561
76562    #[allow(irrefutable_let_patterns)]
76563    pub fn into_get_ipv6_multicast_loopback(
76564        self,
76565    ) -> Option<(SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder)> {
76566        if let SynchronousDatagramSocketRequest::GetIpv6MulticastLoopback { responder } = self {
76567            Some((responder))
76568        } else {
76569            None
76570        }
76571    }
76572
76573    #[allow(irrefutable_let_patterns)]
76574    pub fn into_set_ipv6_only(
76575        self,
76576    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6OnlyResponder)> {
76577        if let SynchronousDatagramSocketRequest::SetIpv6Only { value, responder } = self {
76578            Some((value, responder))
76579        } else {
76580            None
76581        }
76582    }
76583
76584    #[allow(irrefutable_let_patterns)]
76585    pub fn into_get_ipv6_only(self) -> Option<(SynchronousDatagramSocketGetIpv6OnlyResponder)> {
76586        if let SynchronousDatagramSocketRequest::GetIpv6Only { responder } = self {
76587            Some((responder))
76588        } else {
76589            None
76590        }
76591    }
76592
76593    #[allow(irrefutable_let_patterns)]
76594    pub fn into_set_ipv6_receive_traffic_class(
76595        self,
76596    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder)> {
76597        if let SynchronousDatagramSocketRequest::SetIpv6ReceiveTrafficClass { value, responder } =
76598            self
76599        {
76600            Some((value, responder))
76601        } else {
76602            None
76603        }
76604    }
76605
76606    #[allow(irrefutable_let_patterns)]
76607    pub fn into_get_ipv6_receive_traffic_class(
76608        self,
76609    ) -> Option<(SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder)> {
76610        if let SynchronousDatagramSocketRequest::GetIpv6ReceiveTrafficClass { responder } = self {
76611            Some((responder))
76612        } else {
76613            None
76614        }
76615    }
76616
76617    #[allow(irrefutable_let_patterns)]
76618    pub fn into_set_ipv6_traffic_class(
76619        self,
76620    ) -> Option<(OptionalUint8, SynchronousDatagramSocketSetIpv6TrafficClassResponder)> {
76621        if let SynchronousDatagramSocketRequest::SetIpv6TrafficClass { value, responder } = self {
76622            Some((value, responder))
76623        } else {
76624            None
76625        }
76626    }
76627
76628    #[allow(irrefutable_let_patterns)]
76629    pub fn into_get_ipv6_traffic_class(
76630        self,
76631    ) -> Option<(SynchronousDatagramSocketGetIpv6TrafficClassResponder)> {
76632        if let SynchronousDatagramSocketRequest::GetIpv6TrafficClass { responder } = self {
76633            Some((responder))
76634        } else {
76635            None
76636        }
76637    }
76638
76639    #[allow(irrefutable_let_patterns)]
76640    pub fn into_set_ipv6_receive_packet_info(
76641        self,
76642    ) -> Option<(bool, SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder)> {
76643        if let SynchronousDatagramSocketRequest::SetIpv6ReceivePacketInfo { value, responder } =
76644            self
76645        {
76646            Some((value, responder))
76647        } else {
76648            None
76649        }
76650    }
76651
76652    #[allow(irrefutable_let_patterns)]
76653    pub fn into_get_ipv6_receive_packet_info(
76654        self,
76655    ) -> Option<(SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder)> {
76656        if let SynchronousDatagramSocketRequest::GetIpv6ReceivePacketInfo { responder } = self {
76657            Some((responder))
76658        } else {
76659            None
76660        }
76661    }
76662
76663    #[allow(irrefutable_let_patterns)]
76664    pub fn into_get_original_destination(
76665        self,
76666    ) -> Option<(SynchronousDatagramSocketGetOriginalDestinationResponder)> {
76667        if let SynchronousDatagramSocketRequest::GetOriginalDestination { responder } = self {
76668            Some((responder))
76669        } else {
76670            None
76671        }
76672    }
76673
76674    #[allow(irrefutable_let_patterns)]
76675    pub fn into_get_info(self) -> Option<(SynchronousDatagramSocketGetInfoResponder)> {
76676        if let SynchronousDatagramSocketRequest::GetInfo { responder } = self {
76677            Some((responder))
76678        } else {
76679            None
76680        }
76681    }
76682
76683    #[allow(irrefutable_let_patterns)]
76684    pub fn into_describe(self) -> Option<(SynchronousDatagramSocketDescribeResponder)> {
76685        if let SynchronousDatagramSocketRequest::Describe { responder } = self {
76686            Some((responder))
76687        } else {
76688            None
76689        }
76690    }
76691
76692    #[allow(irrefutable_let_patterns)]
76693    pub fn into_recv_msg(
76694        self,
76695    ) -> Option<(bool, u32, bool, RecvMsgFlags, SynchronousDatagramSocketRecvMsgResponder)> {
76696        if let SynchronousDatagramSocketRequest::RecvMsg {
76697            want_addr,
76698            data_len,
76699            want_control,
76700            flags,
76701            responder,
76702        } = self
76703        {
76704            Some((want_addr, data_len, want_control, flags, responder))
76705        } else {
76706            None
76707        }
76708    }
76709
76710    #[allow(irrefutable_let_patterns)]
76711    pub fn into_send_msg(
76712        self,
76713    ) -> Option<(
76714        Option<Box<fidl_fuchsia_net::SocketAddress>>,
76715        Vec<u8>,
76716        DatagramSocketSendControlData,
76717        SendMsgFlags,
76718        SynchronousDatagramSocketSendMsgResponder,
76719    )> {
76720        if let SynchronousDatagramSocketRequest::SendMsg { addr, data, control, flags, responder } =
76721            self
76722        {
76723            Some((addr, data, control, flags, responder))
76724        } else {
76725            None
76726        }
76727    }
76728
76729    /// Name of the method defined in FIDL
76730    pub fn method_name(&self) -> &'static str {
76731        match *self {
76732            SynchronousDatagramSocketRequest::Clone { .. } => "clone",
76733            SynchronousDatagramSocketRequest::Close { .. } => "close",
76734            SynchronousDatagramSocketRequest::Query { .. } => "query",
76735            SynchronousDatagramSocketRequest::SetReuseAddress { .. } => "set_reuse_address",
76736            SynchronousDatagramSocketRequest::GetReuseAddress { .. } => "get_reuse_address",
76737            SynchronousDatagramSocketRequest::GetError { .. } => "get_error",
76738            SynchronousDatagramSocketRequest::SetBroadcast { .. } => "set_broadcast",
76739            SynchronousDatagramSocketRequest::GetBroadcast { .. } => "get_broadcast",
76740            SynchronousDatagramSocketRequest::SetSendBuffer { .. } => "set_send_buffer",
76741            SynchronousDatagramSocketRequest::GetSendBuffer { .. } => "get_send_buffer",
76742            SynchronousDatagramSocketRequest::SetReceiveBuffer { .. } => "set_receive_buffer",
76743            SynchronousDatagramSocketRequest::GetReceiveBuffer { .. } => "get_receive_buffer",
76744            SynchronousDatagramSocketRequest::SetKeepAlive { .. } => "set_keep_alive",
76745            SynchronousDatagramSocketRequest::GetKeepAlive { .. } => "get_keep_alive",
76746            SynchronousDatagramSocketRequest::SetOutOfBandInline { .. } => "set_out_of_band_inline",
76747            SynchronousDatagramSocketRequest::GetOutOfBandInline { .. } => "get_out_of_band_inline",
76748            SynchronousDatagramSocketRequest::SetNoCheck { .. } => "set_no_check",
76749            SynchronousDatagramSocketRequest::GetNoCheck { .. } => "get_no_check",
76750            SynchronousDatagramSocketRequest::SetLinger { .. } => "set_linger",
76751            SynchronousDatagramSocketRequest::GetLinger { .. } => "get_linger",
76752            SynchronousDatagramSocketRequest::SetReusePort { .. } => "set_reuse_port",
76753            SynchronousDatagramSocketRequest::GetReusePort { .. } => "get_reuse_port",
76754            SynchronousDatagramSocketRequest::GetAcceptConn { .. } => "get_accept_conn",
76755            SynchronousDatagramSocketRequest::SetBindToDevice { .. } => "set_bind_to_device",
76756            SynchronousDatagramSocketRequest::GetBindToDevice { .. } => "get_bind_to_device",
76757            SynchronousDatagramSocketRequest::SetBindToInterfaceIndex { .. } => {
76758                "set_bind_to_interface_index"
76759            }
76760            SynchronousDatagramSocketRequest::GetBindToInterfaceIndex { .. } => {
76761                "get_bind_to_interface_index"
76762            }
76763            SynchronousDatagramSocketRequest::SetTimestamp { .. } => "set_timestamp",
76764            SynchronousDatagramSocketRequest::GetTimestamp { .. } => "get_timestamp",
76765            SynchronousDatagramSocketRequest::SetMark { .. } => "set_mark",
76766            SynchronousDatagramSocketRequest::GetMark { .. } => "get_mark",
76767            SynchronousDatagramSocketRequest::GetCookie { .. } => "get_cookie",
76768            SynchronousDatagramSocketRequest::Bind { .. } => "bind",
76769            SynchronousDatagramSocketRequest::Connect { .. } => "connect",
76770            SynchronousDatagramSocketRequest::Disconnect { .. } => "disconnect",
76771            SynchronousDatagramSocketRequest::GetSockName { .. } => "get_sock_name",
76772            SynchronousDatagramSocketRequest::GetPeerName { .. } => "get_peer_name",
76773            SynchronousDatagramSocketRequest::Shutdown { .. } => "shutdown",
76774            SynchronousDatagramSocketRequest::SetIpTypeOfService { .. } => "set_ip_type_of_service",
76775            SynchronousDatagramSocketRequest::GetIpTypeOfService { .. } => "get_ip_type_of_service",
76776            SynchronousDatagramSocketRequest::SetIpTtl { .. } => "set_ip_ttl",
76777            SynchronousDatagramSocketRequest::GetIpTtl { .. } => "get_ip_ttl",
76778            SynchronousDatagramSocketRequest::SetIpPacketInfo { .. } => "set_ip_packet_info",
76779            SynchronousDatagramSocketRequest::GetIpPacketInfo { .. } => "get_ip_packet_info",
76780            SynchronousDatagramSocketRequest::SetIpReceiveTypeOfService { .. } => {
76781                "set_ip_receive_type_of_service"
76782            }
76783            SynchronousDatagramSocketRequest::GetIpReceiveTypeOfService { .. } => {
76784                "get_ip_receive_type_of_service"
76785            }
76786            SynchronousDatagramSocketRequest::SetIpReceiveTtl { .. } => "set_ip_receive_ttl",
76787            SynchronousDatagramSocketRequest::GetIpReceiveTtl { .. } => "get_ip_receive_ttl",
76788            SynchronousDatagramSocketRequest::SetIpMulticastInterface { .. } => {
76789                "set_ip_multicast_interface"
76790            }
76791            SynchronousDatagramSocketRequest::GetIpMulticastInterface { .. } => {
76792                "get_ip_multicast_interface"
76793            }
76794            SynchronousDatagramSocketRequest::SetIpMulticastTtl { .. } => "set_ip_multicast_ttl",
76795            SynchronousDatagramSocketRequest::GetIpMulticastTtl { .. } => "get_ip_multicast_ttl",
76796            SynchronousDatagramSocketRequest::SetIpMulticastLoopback { .. } => {
76797                "set_ip_multicast_loopback"
76798            }
76799            SynchronousDatagramSocketRequest::GetIpMulticastLoopback { .. } => {
76800                "get_ip_multicast_loopback"
76801            }
76802            SynchronousDatagramSocketRequest::AddIpMembership { .. } => "add_ip_membership",
76803            SynchronousDatagramSocketRequest::DropIpMembership { .. } => "drop_ip_membership",
76804            SynchronousDatagramSocketRequest::SetIpTransparent { .. } => "set_ip_transparent",
76805            SynchronousDatagramSocketRequest::GetIpTransparent { .. } => "get_ip_transparent",
76806            SynchronousDatagramSocketRequest::SetIpReceiveOriginalDestinationAddress { .. } => {
76807                "set_ip_receive_original_destination_address"
76808            }
76809            SynchronousDatagramSocketRequest::GetIpReceiveOriginalDestinationAddress { .. } => {
76810                "get_ip_receive_original_destination_address"
76811            }
76812            SynchronousDatagramSocketRequest::AddIpv6Membership { .. } => "add_ipv6_membership",
76813            SynchronousDatagramSocketRequest::DropIpv6Membership { .. } => "drop_ipv6_membership",
76814            SynchronousDatagramSocketRequest::SetIpv6MulticastInterface { .. } => {
76815                "set_ipv6_multicast_interface"
76816            }
76817            SynchronousDatagramSocketRequest::GetIpv6MulticastInterface { .. } => {
76818                "get_ipv6_multicast_interface"
76819            }
76820            SynchronousDatagramSocketRequest::SetIpv6UnicastHops { .. } => "set_ipv6_unicast_hops",
76821            SynchronousDatagramSocketRequest::GetIpv6UnicastHops { .. } => "get_ipv6_unicast_hops",
76822            SynchronousDatagramSocketRequest::SetIpv6ReceiveHopLimit { .. } => {
76823                "set_ipv6_receive_hop_limit"
76824            }
76825            SynchronousDatagramSocketRequest::GetIpv6ReceiveHopLimit { .. } => {
76826                "get_ipv6_receive_hop_limit"
76827            }
76828            SynchronousDatagramSocketRequest::SetIpv6MulticastHops { .. } => {
76829                "set_ipv6_multicast_hops"
76830            }
76831            SynchronousDatagramSocketRequest::GetIpv6MulticastHops { .. } => {
76832                "get_ipv6_multicast_hops"
76833            }
76834            SynchronousDatagramSocketRequest::SetIpv6MulticastLoopback { .. } => {
76835                "set_ipv6_multicast_loopback"
76836            }
76837            SynchronousDatagramSocketRequest::GetIpv6MulticastLoopback { .. } => {
76838                "get_ipv6_multicast_loopback"
76839            }
76840            SynchronousDatagramSocketRequest::SetIpv6Only { .. } => "set_ipv6_only",
76841            SynchronousDatagramSocketRequest::GetIpv6Only { .. } => "get_ipv6_only",
76842            SynchronousDatagramSocketRequest::SetIpv6ReceiveTrafficClass { .. } => {
76843                "set_ipv6_receive_traffic_class"
76844            }
76845            SynchronousDatagramSocketRequest::GetIpv6ReceiveTrafficClass { .. } => {
76846                "get_ipv6_receive_traffic_class"
76847            }
76848            SynchronousDatagramSocketRequest::SetIpv6TrafficClass { .. } => {
76849                "set_ipv6_traffic_class"
76850            }
76851            SynchronousDatagramSocketRequest::GetIpv6TrafficClass { .. } => {
76852                "get_ipv6_traffic_class"
76853            }
76854            SynchronousDatagramSocketRequest::SetIpv6ReceivePacketInfo { .. } => {
76855                "set_ipv6_receive_packet_info"
76856            }
76857            SynchronousDatagramSocketRequest::GetIpv6ReceivePacketInfo { .. } => {
76858                "get_ipv6_receive_packet_info"
76859            }
76860            SynchronousDatagramSocketRequest::GetOriginalDestination { .. } => {
76861                "get_original_destination"
76862            }
76863            SynchronousDatagramSocketRequest::GetInfo { .. } => "get_info",
76864            SynchronousDatagramSocketRequest::Describe { .. } => "describe",
76865            SynchronousDatagramSocketRequest::RecvMsg { .. } => "recv_msg",
76866            SynchronousDatagramSocketRequest::SendMsg { .. } => "send_msg",
76867        }
76868    }
76869}
76870
76871#[derive(Debug, Clone)]
76872pub struct SynchronousDatagramSocketControlHandle {
76873    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
76874}
76875
76876impl fidl::endpoints::ControlHandle for SynchronousDatagramSocketControlHandle {
76877    fn shutdown(&self) {
76878        self.inner.shutdown()
76879    }
76880    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
76881        self.inner.shutdown_with_epitaph(status)
76882    }
76883
76884    fn is_closed(&self) -> bool {
76885        self.inner.channel().is_closed()
76886    }
76887    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
76888        self.inner.channel().on_closed()
76889    }
76890
76891    #[cfg(target_os = "fuchsia")]
76892    fn signal_peer(
76893        &self,
76894        clear_mask: zx::Signals,
76895        set_mask: zx::Signals,
76896    ) -> Result<(), zx_status::Status> {
76897        use fidl::Peered;
76898        self.inner.channel().signal_peer(clear_mask, set_mask)
76899    }
76900}
76901
76902impl SynchronousDatagramSocketControlHandle {}
76903
76904#[must_use = "FIDL methods require a response to be sent"]
76905#[derive(Debug)]
76906pub struct SynchronousDatagramSocketCloseResponder {
76907    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
76908    tx_id: u32,
76909}
76910
76911/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
76912/// if the responder is dropped without sending a response, so that the client
76913/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
76914impl std::ops::Drop for SynchronousDatagramSocketCloseResponder {
76915    fn drop(&mut self) {
76916        self.control_handle.shutdown();
76917        // Safety: drops once, never accessed again
76918        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
76919    }
76920}
76921
76922impl fidl::endpoints::Responder for SynchronousDatagramSocketCloseResponder {
76923    type ControlHandle = SynchronousDatagramSocketControlHandle;
76924
76925    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
76926        &self.control_handle
76927    }
76928
76929    fn drop_without_shutdown(mut self) {
76930        // Safety: drops once, never accessed again due to mem::forget
76931        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
76932        // Prevent Drop from running (which would shut down the channel)
76933        std::mem::forget(self);
76934    }
76935}
76936
76937impl SynchronousDatagramSocketCloseResponder {
76938    /// Sends a response to the FIDL transaction.
76939    ///
76940    /// Sets the channel to shutdown if an error occurs.
76941    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
76942        let _result = self.send_raw(result);
76943        if _result.is_err() {
76944            self.control_handle.shutdown();
76945        }
76946        self.drop_without_shutdown();
76947        _result
76948    }
76949
76950    /// Similar to "send" but does not shutdown the channel if an error occurs.
76951    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
76952        let _result = self.send_raw(result);
76953        self.drop_without_shutdown();
76954        _result
76955    }
76956
76957    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
76958        self.control_handle
76959            .inner
76960            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
76961                result,
76962                self.tx_id,
76963                0x5ac5d459ad7f657e,
76964                fidl::encoding::DynamicFlags::empty(),
76965            )
76966    }
76967}
76968
76969#[must_use = "FIDL methods require a response to be sent"]
76970#[derive(Debug)]
76971pub struct SynchronousDatagramSocketQueryResponder {
76972    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
76973    tx_id: u32,
76974}
76975
76976/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
76977/// if the responder is dropped without sending a response, so that the client
76978/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
76979impl std::ops::Drop for SynchronousDatagramSocketQueryResponder {
76980    fn drop(&mut self) {
76981        self.control_handle.shutdown();
76982        // Safety: drops once, never accessed again
76983        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
76984    }
76985}
76986
76987impl fidl::endpoints::Responder for SynchronousDatagramSocketQueryResponder {
76988    type ControlHandle = SynchronousDatagramSocketControlHandle;
76989
76990    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
76991        &self.control_handle
76992    }
76993
76994    fn drop_without_shutdown(mut self) {
76995        // Safety: drops once, never accessed again due to mem::forget
76996        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
76997        // Prevent Drop from running (which would shut down the channel)
76998        std::mem::forget(self);
76999    }
77000}
77001
77002impl SynchronousDatagramSocketQueryResponder {
77003    /// Sends a response to the FIDL transaction.
77004    ///
77005    /// Sets the channel to shutdown if an error occurs.
77006    pub fn send(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
77007        let _result = self.send_raw(protocol);
77008        if _result.is_err() {
77009            self.control_handle.shutdown();
77010        }
77011        self.drop_without_shutdown();
77012        _result
77013    }
77014
77015    /// Similar to "send" but does not shutdown the channel if an error occurs.
77016    pub fn send_no_shutdown_on_err(self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
77017        let _result = self.send_raw(protocol);
77018        self.drop_without_shutdown();
77019        _result
77020    }
77021
77022    fn send_raw(&self, mut protocol: &[u8]) -> Result<(), fidl::Error> {
77023        self.control_handle.inner.send::<fidl_fuchsia_unknown::QueryableQueryResponse>(
77024            (protocol,),
77025            self.tx_id,
77026            0x2658edee9decfc06,
77027            fidl::encoding::DynamicFlags::empty(),
77028        )
77029    }
77030}
77031
77032#[must_use = "FIDL methods require a response to be sent"]
77033#[derive(Debug)]
77034pub struct SynchronousDatagramSocketSetReuseAddressResponder {
77035    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77036    tx_id: u32,
77037}
77038
77039/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77040/// if the responder is dropped without sending a response, so that the client
77041/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77042impl std::ops::Drop for SynchronousDatagramSocketSetReuseAddressResponder {
77043    fn drop(&mut self) {
77044        self.control_handle.shutdown();
77045        // Safety: drops once, never accessed again
77046        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77047    }
77048}
77049
77050impl fidl::endpoints::Responder for SynchronousDatagramSocketSetReuseAddressResponder {
77051    type ControlHandle = SynchronousDatagramSocketControlHandle;
77052
77053    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77054        &self.control_handle
77055    }
77056
77057    fn drop_without_shutdown(mut self) {
77058        // Safety: drops once, never accessed again due to mem::forget
77059        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77060        // Prevent Drop from running (which would shut down the channel)
77061        std::mem::forget(self);
77062    }
77063}
77064
77065impl SynchronousDatagramSocketSetReuseAddressResponder {
77066    /// Sends a response to the FIDL transaction.
77067    ///
77068    /// Sets the channel to shutdown if an error occurs.
77069    pub fn send(
77070        self,
77071        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77072    ) -> Result<(), fidl::Error> {
77073        let _result = self.send_raw(result);
77074        if _result.is_err() {
77075            self.control_handle.shutdown();
77076        }
77077        self.drop_without_shutdown();
77078        _result
77079    }
77080
77081    /// Similar to "send" but does not shutdown the channel if an error occurs.
77082    pub fn send_no_shutdown_on_err(
77083        self,
77084        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77085    ) -> Result<(), fidl::Error> {
77086        let _result = self.send_raw(result);
77087        self.drop_without_shutdown();
77088        _result
77089    }
77090
77091    fn send_raw(
77092        &self,
77093        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77094    ) -> Result<(), fidl::Error> {
77095        self.control_handle.inner.send::<fidl::encoding::ResultType<
77096            fidl::encoding::EmptyStruct,
77097            fidl_fuchsia_posix::Errno,
77098        >>(
77099            result,
77100            self.tx_id,
77101            0x1fd74ee8b9a4a876,
77102            fidl::encoding::DynamicFlags::empty(),
77103        )
77104    }
77105}
77106
77107#[must_use = "FIDL methods require a response to be sent"]
77108#[derive(Debug)]
77109pub struct SynchronousDatagramSocketGetReuseAddressResponder {
77110    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77111    tx_id: u32,
77112}
77113
77114/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77115/// if the responder is dropped without sending a response, so that the client
77116/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77117impl std::ops::Drop for SynchronousDatagramSocketGetReuseAddressResponder {
77118    fn drop(&mut self) {
77119        self.control_handle.shutdown();
77120        // Safety: drops once, never accessed again
77121        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77122    }
77123}
77124
77125impl fidl::endpoints::Responder for SynchronousDatagramSocketGetReuseAddressResponder {
77126    type ControlHandle = SynchronousDatagramSocketControlHandle;
77127
77128    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77129        &self.control_handle
77130    }
77131
77132    fn drop_without_shutdown(mut self) {
77133        // Safety: drops once, never accessed again due to mem::forget
77134        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77135        // Prevent Drop from running (which would shut down the channel)
77136        std::mem::forget(self);
77137    }
77138}
77139
77140impl SynchronousDatagramSocketGetReuseAddressResponder {
77141    /// Sends a response to the FIDL transaction.
77142    ///
77143    /// Sets the channel to shutdown if an error occurs.
77144    pub fn send(
77145        self,
77146        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77147    ) -> Result<(), fidl::Error> {
77148        let _result = self.send_raw(result);
77149        if _result.is_err() {
77150            self.control_handle.shutdown();
77151        }
77152        self.drop_without_shutdown();
77153        _result
77154    }
77155
77156    /// Similar to "send" but does not shutdown the channel if an error occurs.
77157    pub fn send_no_shutdown_on_err(
77158        self,
77159        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77160    ) -> Result<(), fidl::Error> {
77161        let _result = self.send_raw(result);
77162        self.drop_without_shutdown();
77163        _result
77164    }
77165
77166    fn send_raw(
77167        &self,
77168        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77169    ) -> Result<(), fidl::Error> {
77170        self.control_handle.inner.send::<fidl::encoding::ResultType<
77171            BaseSocketGetReuseAddressResponse,
77172            fidl_fuchsia_posix::Errno,
77173        >>(
77174            result.map(|value| (value,)),
77175            self.tx_id,
77176            0x67b7206b8d1bc0a5,
77177            fidl::encoding::DynamicFlags::empty(),
77178        )
77179    }
77180}
77181
77182#[must_use = "FIDL methods require a response to be sent"]
77183#[derive(Debug)]
77184pub struct SynchronousDatagramSocketGetErrorResponder {
77185    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77186    tx_id: u32,
77187}
77188
77189/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77190/// if the responder is dropped without sending a response, so that the client
77191/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77192impl std::ops::Drop for SynchronousDatagramSocketGetErrorResponder {
77193    fn drop(&mut self) {
77194        self.control_handle.shutdown();
77195        // Safety: drops once, never accessed again
77196        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77197    }
77198}
77199
77200impl fidl::endpoints::Responder for SynchronousDatagramSocketGetErrorResponder {
77201    type ControlHandle = SynchronousDatagramSocketControlHandle;
77202
77203    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77204        &self.control_handle
77205    }
77206
77207    fn drop_without_shutdown(mut self) {
77208        // Safety: drops once, never accessed again due to mem::forget
77209        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77210        // Prevent Drop from running (which would shut down the channel)
77211        std::mem::forget(self);
77212    }
77213}
77214
77215impl SynchronousDatagramSocketGetErrorResponder {
77216    /// Sends a response to the FIDL transaction.
77217    ///
77218    /// Sets the channel to shutdown if an error occurs.
77219    pub fn send(
77220        self,
77221        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77222    ) -> Result<(), fidl::Error> {
77223        let _result = self.send_raw(result);
77224        if _result.is_err() {
77225            self.control_handle.shutdown();
77226        }
77227        self.drop_without_shutdown();
77228        _result
77229    }
77230
77231    /// Similar to "send" but does not shutdown the channel if an error occurs.
77232    pub fn send_no_shutdown_on_err(
77233        self,
77234        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77235    ) -> Result<(), fidl::Error> {
77236        let _result = self.send_raw(result);
77237        self.drop_without_shutdown();
77238        _result
77239    }
77240
77241    fn send_raw(
77242        &self,
77243        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77244    ) -> Result<(), fidl::Error> {
77245        self.control_handle.inner.send::<fidl::encoding::ResultType<
77246            fidl::encoding::EmptyStruct,
77247            fidl_fuchsia_posix::Errno,
77248        >>(
77249            result,
77250            self.tx_id,
77251            0x5aad39b33e5f6ebb,
77252            fidl::encoding::DynamicFlags::empty(),
77253        )
77254    }
77255}
77256
77257#[must_use = "FIDL methods require a response to be sent"]
77258#[derive(Debug)]
77259pub struct SynchronousDatagramSocketSetBroadcastResponder {
77260    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77261    tx_id: u32,
77262}
77263
77264/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77265/// if the responder is dropped without sending a response, so that the client
77266/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77267impl std::ops::Drop for SynchronousDatagramSocketSetBroadcastResponder {
77268    fn drop(&mut self) {
77269        self.control_handle.shutdown();
77270        // Safety: drops once, never accessed again
77271        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77272    }
77273}
77274
77275impl fidl::endpoints::Responder for SynchronousDatagramSocketSetBroadcastResponder {
77276    type ControlHandle = SynchronousDatagramSocketControlHandle;
77277
77278    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77279        &self.control_handle
77280    }
77281
77282    fn drop_without_shutdown(mut self) {
77283        // Safety: drops once, never accessed again due to mem::forget
77284        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77285        // Prevent Drop from running (which would shut down the channel)
77286        std::mem::forget(self);
77287    }
77288}
77289
77290impl SynchronousDatagramSocketSetBroadcastResponder {
77291    /// Sends a response to the FIDL transaction.
77292    ///
77293    /// Sets the channel to shutdown if an error occurs.
77294    pub fn send(
77295        self,
77296        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77297    ) -> Result<(), fidl::Error> {
77298        let _result = self.send_raw(result);
77299        if _result.is_err() {
77300            self.control_handle.shutdown();
77301        }
77302        self.drop_without_shutdown();
77303        _result
77304    }
77305
77306    /// Similar to "send" but does not shutdown the channel if an error occurs.
77307    pub fn send_no_shutdown_on_err(
77308        self,
77309        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77310    ) -> Result<(), fidl::Error> {
77311        let _result = self.send_raw(result);
77312        self.drop_without_shutdown();
77313        _result
77314    }
77315
77316    fn send_raw(
77317        &self,
77318        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77319    ) -> Result<(), fidl::Error> {
77320        self.control_handle.inner.send::<fidl::encoding::ResultType<
77321            fidl::encoding::EmptyStruct,
77322            fidl_fuchsia_posix::Errno,
77323        >>(
77324            result,
77325            self.tx_id,
77326            0x6023e081ce3cd947,
77327            fidl::encoding::DynamicFlags::empty(),
77328        )
77329    }
77330}
77331
77332#[must_use = "FIDL methods require a response to be sent"]
77333#[derive(Debug)]
77334pub struct SynchronousDatagramSocketGetBroadcastResponder {
77335    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77336    tx_id: u32,
77337}
77338
77339/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77340/// if the responder is dropped without sending a response, so that the client
77341/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77342impl std::ops::Drop for SynchronousDatagramSocketGetBroadcastResponder {
77343    fn drop(&mut self) {
77344        self.control_handle.shutdown();
77345        // Safety: drops once, never accessed again
77346        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77347    }
77348}
77349
77350impl fidl::endpoints::Responder for SynchronousDatagramSocketGetBroadcastResponder {
77351    type ControlHandle = SynchronousDatagramSocketControlHandle;
77352
77353    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77354        &self.control_handle
77355    }
77356
77357    fn drop_without_shutdown(mut self) {
77358        // Safety: drops once, never accessed again due to mem::forget
77359        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77360        // Prevent Drop from running (which would shut down the channel)
77361        std::mem::forget(self);
77362    }
77363}
77364
77365impl SynchronousDatagramSocketGetBroadcastResponder {
77366    /// Sends a response to the FIDL transaction.
77367    ///
77368    /// Sets the channel to shutdown if an error occurs.
77369    pub fn send(
77370        self,
77371        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77372    ) -> Result<(), fidl::Error> {
77373        let _result = self.send_raw(result);
77374        if _result.is_err() {
77375            self.control_handle.shutdown();
77376        }
77377        self.drop_without_shutdown();
77378        _result
77379    }
77380
77381    /// Similar to "send" but does not shutdown the channel if an error occurs.
77382    pub fn send_no_shutdown_on_err(
77383        self,
77384        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77385    ) -> Result<(), fidl::Error> {
77386        let _result = self.send_raw(result);
77387        self.drop_without_shutdown();
77388        _result
77389    }
77390
77391    fn send_raw(
77392        &self,
77393        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77394    ) -> Result<(), fidl::Error> {
77395        self.control_handle.inner.send::<fidl::encoding::ResultType<
77396            BaseSocketGetBroadcastResponse,
77397            fidl_fuchsia_posix::Errno,
77398        >>(
77399            result.map(|value| (value,)),
77400            self.tx_id,
77401            0x68796fc556f9780d,
77402            fidl::encoding::DynamicFlags::empty(),
77403        )
77404    }
77405}
77406
77407#[must_use = "FIDL methods require a response to be sent"]
77408#[derive(Debug)]
77409pub struct SynchronousDatagramSocketSetSendBufferResponder {
77410    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77411    tx_id: u32,
77412}
77413
77414/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77415/// if the responder is dropped without sending a response, so that the client
77416/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77417impl std::ops::Drop for SynchronousDatagramSocketSetSendBufferResponder {
77418    fn drop(&mut self) {
77419        self.control_handle.shutdown();
77420        // Safety: drops once, never accessed again
77421        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77422    }
77423}
77424
77425impl fidl::endpoints::Responder for SynchronousDatagramSocketSetSendBufferResponder {
77426    type ControlHandle = SynchronousDatagramSocketControlHandle;
77427
77428    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77429        &self.control_handle
77430    }
77431
77432    fn drop_without_shutdown(mut self) {
77433        // Safety: drops once, never accessed again due to mem::forget
77434        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77435        // Prevent Drop from running (which would shut down the channel)
77436        std::mem::forget(self);
77437    }
77438}
77439
77440impl SynchronousDatagramSocketSetSendBufferResponder {
77441    /// Sends a response to the FIDL transaction.
77442    ///
77443    /// Sets the channel to shutdown if an error occurs.
77444    pub fn send(
77445        self,
77446        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77447    ) -> Result<(), fidl::Error> {
77448        let _result = self.send_raw(result);
77449        if _result.is_err() {
77450            self.control_handle.shutdown();
77451        }
77452        self.drop_without_shutdown();
77453        _result
77454    }
77455
77456    /// Similar to "send" but does not shutdown the channel if an error occurs.
77457    pub fn send_no_shutdown_on_err(
77458        self,
77459        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77460    ) -> Result<(), fidl::Error> {
77461        let _result = self.send_raw(result);
77462        self.drop_without_shutdown();
77463        _result
77464    }
77465
77466    fn send_raw(
77467        &self,
77468        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77469    ) -> Result<(), fidl::Error> {
77470        self.control_handle.inner.send::<fidl::encoding::ResultType<
77471            fidl::encoding::EmptyStruct,
77472            fidl_fuchsia_posix::Errno,
77473        >>(
77474            result,
77475            self.tx_id,
77476            0x756eac32d73a7a70,
77477            fidl::encoding::DynamicFlags::empty(),
77478        )
77479    }
77480}
77481
77482#[must_use = "FIDL methods require a response to be sent"]
77483#[derive(Debug)]
77484pub struct SynchronousDatagramSocketGetSendBufferResponder {
77485    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77486    tx_id: u32,
77487}
77488
77489/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77490/// if the responder is dropped without sending a response, so that the client
77491/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77492impl std::ops::Drop for SynchronousDatagramSocketGetSendBufferResponder {
77493    fn drop(&mut self) {
77494        self.control_handle.shutdown();
77495        // Safety: drops once, never accessed again
77496        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77497    }
77498}
77499
77500impl fidl::endpoints::Responder for SynchronousDatagramSocketGetSendBufferResponder {
77501    type ControlHandle = SynchronousDatagramSocketControlHandle;
77502
77503    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77504        &self.control_handle
77505    }
77506
77507    fn drop_without_shutdown(mut self) {
77508        // Safety: drops once, never accessed again due to mem::forget
77509        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77510        // Prevent Drop from running (which would shut down the channel)
77511        std::mem::forget(self);
77512    }
77513}
77514
77515impl SynchronousDatagramSocketGetSendBufferResponder {
77516    /// Sends a response to the FIDL transaction.
77517    ///
77518    /// Sets the channel to shutdown if an error occurs.
77519    pub fn send(
77520        self,
77521        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77522    ) -> Result<(), fidl::Error> {
77523        let _result = self.send_raw(result);
77524        if _result.is_err() {
77525            self.control_handle.shutdown();
77526        }
77527        self.drop_without_shutdown();
77528        _result
77529    }
77530
77531    /// Similar to "send" but does not shutdown the channel if an error occurs.
77532    pub fn send_no_shutdown_on_err(
77533        self,
77534        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77535    ) -> Result<(), fidl::Error> {
77536        let _result = self.send_raw(result);
77537        self.drop_without_shutdown();
77538        _result
77539    }
77540
77541    fn send_raw(
77542        &self,
77543        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77544    ) -> Result<(), fidl::Error> {
77545        self.control_handle.inner.send::<fidl::encoding::ResultType<
77546            BaseSocketGetSendBufferResponse,
77547            fidl_fuchsia_posix::Errno,
77548        >>(
77549            result.map(|value_bytes| (value_bytes,)),
77550            self.tx_id,
77551            0x78a52fd9c7b2410b,
77552            fidl::encoding::DynamicFlags::empty(),
77553        )
77554    }
77555}
77556
77557#[must_use = "FIDL methods require a response to be sent"]
77558#[derive(Debug)]
77559pub struct SynchronousDatagramSocketSetReceiveBufferResponder {
77560    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77561    tx_id: u32,
77562}
77563
77564/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77565/// if the responder is dropped without sending a response, so that the client
77566/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77567impl std::ops::Drop for SynchronousDatagramSocketSetReceiveBufferResponder {
77568    fn drop(&mut self) {
77569        self.control_handle.shutdown();
77570        // Safety: drops once, never accessed again
77571        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77572    }
77573}
77574
77575impl fidl::endpoints::Responder for SynchronousDatagramSocketSetReceiveBufferResponder {
77576    type ControlHandle = SynchronousDatagramSocketControlHandle;
77577
77578    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77579        &self.control_handle
77580    }
77581
77582    fn drop_without_shutdown(mut self) {
77583        // Safety: drops once, never accessed again due to mem::forget
77584        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77585        // Prevent Drop from running (which would shut down the channel)
77586        std::mem::forget(self);
77587    }
77588}
77589
77590impl SynchronousDatagramSocketSetReceiveBufferResponder {
77591    /// Sends a response to the FIDL transaction.
77592    ///
77593    /// Sets the channel to shutdown if an error occurs.
77594    pub fn send(
77595        self,
77596        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77597    ) -> Result<(), fidl::Error> {
77598        let _result = self.send_raw(result);
77599        if _result.is_err() {
77600            self.control_handle.shutdown();
77601        }
77602        self.drop_without_shutdown();
77603        _result
77604    }
77605
77606    /// Similar to "send" but does not shutdown the channel if an error occurs.
77607    pub fn send_no_shutdown_on_err(
77608        self,
77609        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77610    ) -> Result<(), fidl::Error> {
77611        let _result = self.send_raw(result);
77612        self.drop_without_shutdown();
77613        _result
77614    }
77615
77616    fn send_raw(
77617        &self,
77618        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77619    ) -> Result<(), fidl::Error> {
77620        self.control_handle.inner.send::<fidl::encoding::ResultType<
77621            fidl::encoding::EmptyStruct,
77622            fidl_fuchsia_posix::Errno,
77623        >>(
77624            result,
77625            self.tx_id,
77626            0x6b0cf2f1919c7001,
77627            fidl::encoding::DynamicFlags::empty(),
77628        )
77629    }
77630}
77631
77632#[must_use = "FIDL methods require a response to be sent"]
77633#[derive(Debug)]
77634pub struct SynchronousDatagramSocketGetReceiveBufferResponder {
77635    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77636    tx_id: u32,
77637}
77638
77639/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77640/// if the responder is dropped without sending a response, so that the client
77641/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77642impl std::ops::Drop for SynchronousDatagramSocketGetReceiveBufferResponder {
77643    fn drop(&mut self) {
77644        self.control_handle.shutdown();
77645        // Safety: drops once, never accessed again
77646        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77647    }
77648}
77649
77650impl fidl::endpoints::Responder for SynchronousDatagramSocketGetReceiveBufferResponder {
77651    type ControlHandle = SynchronousDatagramSocketControlHandle;
77652
77653    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77654        &self.control_handle
77655    }
77656
77657    fn drop_without_shutdown(mut self) {
77658        // Safety: drops once, never accessed again due to mem::forget
77659        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77660        // Prevent Drop from running (which would shut down the channel)
77661        std::mem::forget(self);
77662    }
77663}
77664
77665impl SynchronousDatagramSocketGetReceiveBufferResponder {
77666    /// Sends a response to the FIDL transaction.
77667    ///
77668    /// Sets the channel to shutdown if an error occurs.
77669    pub fn send(
77670        self,
77671        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77672    ) -> Result<(), fidl::Error> {
77673        let _result = self.send_raw(result);
77674        if _result.is_err() {
77675            self.control_handle.shutdown();
77676        }
77677        self.drop_without_shutdown();
77678        _result
77679    }
77680
77681    /// Similar to "send" but does not shutdown the channel if an error occurs.
77682    pub fn send_no_shutdown_on_err(
77683        self,
77684        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77685    ) -> Result<(), fidl::Error> {
77686        let _result = self.send_raw(result);
77687        self.drop_without_shutdown();
77688        _result
77689    }
77690
77691    fn send_raw(
77692        &self,
77693        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
77694    ) -> Result<(), fidl::Error> {
77695        self.control_handle.inner.send::<fidl::encoding::ResultType<
77696            BaseSocketGetReceiveBufferResponse,
77697            fidl_fuchsia_posix::Errno,
77698        >>(
77699            result.map(|value_bytes| (value_bytes,)),
77700            self.tx_id,
77701            0x14c1a4b64f709e5c,
77702            fidl::encoding::DynamicFlags::empty(),
77703        )
77704    }
77705}
77706
77707#[must_use = "FIDL methods require a response to be sent"]
77708#[derive(Debug)]
77709pub struct SynchronousDatagramSocketSetKeepAliveResponder {
77710    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77711    tx_id: u32,
77712}
77713
77714/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77715/// if the responder is dropped without sending a response, so that the client
77716/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77717impl std::ops::Drop for SynchronousDatagramSocketSetKeepAliveResponder {
77718    fn drop(&mut self) {
77719        self.control_handle.shutdown();
77720        // Safety: drops once, never accessed again
77721        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77722    }
77723}
77724
77725impl fidl::endpoints::Responder for SynchronousDatagramSocketSetKeepAliveResponder {
77726    type ControlHandle = SynchronousDatagramSocketControlHandle;
77727
77728    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77729        &self.control_handle
77730    }
77731
77732    fn drop_without_shutdown(mut self) {
77733        // Safety: drops once, never accessed again due to mem::forget
77734        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77735        // Prevent Drop from running (which would shut down the channel)
77736        std::mem::forget(self);
77737    }
77738}
77739
77740impl SynchronousDatagramSocketSetKeepAliveResponder {
77741    /// Sends a response to the FIDL transaction.
77742    ///
77743    /// Sets the channel to shutdown if an error occurs.
77744    pub fn send(
77745        self,
77746        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77747    ) -> Result<(), fidl::Error> {
77748        let _result = self.send_raw(result);
77749        if _result.is_err() {
77750            self.control_handle.shutdown();
77751        }
77752        self.drop_without_shutdown();
77753        _result
77754    }
77755
77756    /// Similar to "send" but does not shutdown the channel if an error occurs.
77757    pub fn send_no_shutdown_on_err(
77758        self,
77759        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77760    ) -> Result<(), fidl::Error> {
77761        let _result = self.send_raw(result);
77762        self.drop_without_shutdown();
77763        _result
77764    }
77765
77766    fn send_raw(
77767        &self,
77768        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77769    ) -> Result<(), fidl::Error> {
77770        self.control_handle.inner.send::<fidl::encoding::ResultType<
77771            fidl::encoding::EmptyStruct,
77772            fidl_fuchsia_posix::Errno,
77773        >>(
77774            result,
77775            self.tx_id,
77776            0x572df8f0b920d2c7,
77777            fidl::encoding::DynamicFlags::empty(),
77778        )
77779    }
77780}
77781
77782#[must_use = "FIDL methods require a response to be sent"]
77783#[derive(Debug)]
77784pub struct SynchronousDatagramSocketGetKeepAliveResponder {
77785    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77786    tx_id: u32,
77787}
77788
77789/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77790/// if the responder is dropped without sending a response, so that the client
77791/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77792impl std::ops::Drop for SynchronousDatagramSocketGetKeepAliveResponder {
77793    fn drop(&mut self) {
77794        self.control_handle.shutdown();
77795        // Safety: drops once, never accessed again
77796        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77797    }
77798}
77799
77800impl fidl::endpoints::Responder for SynchronousDatagramSocketGetKeepAliveResponder {
77801    type ControlHandle = SynchronousDatagramSocketControlHandle;
77802
77803    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77804        &self.control_handle
77805    }
77806
77807    fn drop_without_shutdown(mut self) {
77808        // Safety: drops once, never accessed again due to mem::forget
77809        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77810        // Prevent Drop from running (which would shut down the channel)
77811        std::mem::forget(self);
77812    }
77813}
77814
77815impl SynchronousDatagramSocketGetKeepAliveResponder {
77816    /// Sends a response to the FIDL transaction.
77817    ///
77818    /// Sets the channel to shutdown if an error occurs.
77819    pub fn send(
77820        self,
77821        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77822    ) -> Result<(), fidl::Error> {
77823        let _result = self.send_raw(result);
77824        if _result.is_err() {
77825            self.control_handle.shutdown();
77826        }
77827        self.drop_without_shutdown();
77828        _result
77829    }
77830
77831    /// Similar to "send" but does not shutdown the channel if an error occurs.
77832    pub fn send_no_shutdown_on_err(
77833        self,
77834        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77835    ) -> Result<(), fidl::Error> {
77836        let _result = self.send_raw(result);
77837        self.drop_without_shutdown();
77838        _result
77839    }
77840
77841    fn send_raw(
77842        &self,
77843        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77844    ) -> Result<(), fidl::Error> {
77845        self.control_handle.inner.send::<fidl::encoding::ResultType<
77846            BaseSocketGetKeepAliveResponse,
77847            fidl_fuchsia_posix::Errno,
77848        >>(
77849            result.map(|value| (value,)),
77850            self.tx_id,
77851            0x2dd29d3215f2c9d2,
77852            fidl::encoding::DynamicFlags::empty(),
77853        )
77854    }
77855}
77856
77857#[must_use = "FIDL methods require a response to be sent"]
77858#[derive(Debug)]
77859pub struct SynchronousDatagramSocketSetOutOfBandInlineResponder {
77860    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77861    tx_id: u32,
77862}
77863
77864/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77865/// if the responder is dropped without sending a response, so that the client
77866/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77867impl std::ops::Drop for SynchronousDatagramSocketSetOutOfBandInlineResponder {
77868    fn drop(&mut self) {
77869        self.control_handle.shutdown();
77870        // Safety: drops once, never accessed again
77871        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77872    }
77873}
77874
77875impl fidl::endpoints::Responder for SynchronousDatagramSocketSetOutOfBandInlineResponder {
77876    type ControlHandle = SynchronousDatagramSocketControlHandle;
77877
77878    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77879        &self.control_handle
77880    }
77881
77882    fn drop_without_shutdown(mut self) {
77883        // Safety: drops once, never accessed again due to mem::forget
77884        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77885        // Prevent Drop from running (which would shut down the channel)
77886        std::mem::forget(self);
77887    }
77888}
77889
77890impl SynchronousDatagramSocketSetOutOfBandInlineResponder {
77891    /// Sends a response to the FIDL transaction.
77892    ///
77893    /// Sets the channel to shutdown if an error occurs.
77894    pub fn send(
77895        self,
77896        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77897    ) -> Result<(), fidl::Error> {
77898        let _result = self.send_raw(result);
77899        if _result.is_err() {
77900            self.control_handle.shutdown();
77901        }
77902        self.drop_without_shutdown();
77903        _result
77904    }
77905
77906    /// Similar to "send" but does not shutdown the channel if an error occurs.
77907    pub fn send_no_shutdown_on_err(
77908        self,
77909        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77910    ) -> Result<(), fidl::Error> {
77911        let _result = self.send_raw(result);
77912        self.drop_without_shutdown();
77913        _result
77914    }
77915
77916    fn send_raw(
77917        &self,
77918        mut result: Result<(), fidl_fuchsia_posix::Errno>,
77919    ) -> Result<(), fidl::Error> {
77920        self.control_handle.inner.send::<fidl::encoding::ResultType<
77921            fidl::encoding::EmptyStruct,
77922            fidl_fuchsia_posix::Errno,
77923        >>(
77924            result,
77925            self.tx_id,
77926            0x3ecb49968bee439,
77927            fidl::encoding::DynamicFlags::empty(),
77928        )
77929    }
77930}
77931
77932#[must_use = "FIDL methods require a response to be sent"]
77933#[derive(Debug)]
77934pub struct SynchronousDatagramSocketGetOutOfBandInlineResponder {
77935    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
77936    tx_id: u32,
77937}
77938
77939/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
77940/// if the responder is dropped without sending a response, so that the client
77941/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
77942impl std::ops::Drop for SynchronousDatagramSocketGetOutOfBandInlineResponder {
77943    fn drop(&mut self) {
77944        self.control_handle.shutdown();
77945        // Safety: drops once, never accessed again
77946        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77947    }
77948}
77949
77950impl fidl::endpoints::Responder for SynchronousDatagramSocketGetOutOfBandInlineResponder {
77951    type ControlHandle = SynchronousDatagramSocketControlHandle;
77952
77953    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
77954        &self.control_handle
77955    }
77956
77957    fn drop_without_shutdown(mut self) {
77958        // Safety: drops once, never accessed again due to mem::forget
77959        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
77960        // Prevent Drop from running (which would shut down the channel)
77961        std::mem::forget(self);
77962    }
77963}
77964
77965impl SynchronousDatagramSocketGetOutOfBandInlineResponder {
77966    /// Sends a response to the FIDL transaction.
77967    ///
77968    /// Sets the channel to shutdown if an error occurs.
77969    pub fn send(
77970        self,
77971        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77972    ) -> Result<(), fidl::Error> {
77973        let _result = self.send_raw(result);
77974        if _result.is_err() {
77975            self.control_handle.shutdown();
77976        }
77977        self.drop_without_shutdown();
77978        _result
77979    }
77980
77981    /// Similar to "send" but does not shutdown the channel if an error occurs.
77982    pub fn send_no_shutdown_on_err(
77983        self,
77984        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77985    ) -> Result<(), fidl::Error> {
77986        let _result = self.send_raw(result);
77987        self.drop_without_shutdown();
77988        _result
77989    }
77990
77991    fn send_raw(
77992        &self,
77993        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
77994    ) -> Result<(), fidl::Error> {
77995        self.control_handle.inner.send::<fidl::encoding::ResultType<
77996            BaseSocketGetOutOfBandInlineResponse,
77997            fidl_fuchsia_posix::Errno,
77998        >>(
77999            result.map(|value| (value,)),
78000            self.tx_id,
78001            0x348c1ab3aeca1745,
78002            fidl::encoding::DynamicFlags::empty(),
78003        )
78004    }
78005}
78006
78007#[must_use = "FIDL methods require a response to be sent"]
78008#[derive(Debug)]
78009pub struct SynchronousDatagramSocketSetNoCheckResponder {
78010    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78011    tx_id: u32,
78012}
78013
78014/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78015/// if the responder is dropped without sending a response, so that the client
78016/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78017impl std::ops::Drop for SynchronousDatagramSocketSetNoCheckResponder {
78018    fn drop(&mut self) {
78019        self.control_handle.shutdown();
78020        // Safety: drops once, never accessed again
78021        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78022    }
78023}
78024
78025impl fidl::endpoints::Responder for SynchronousDatagramSocketSetNoCheckResponder {
78026    type ControlHandle = SynchronousDatagramSocketControlHandle;
78027
78028    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78029        &self.control_handle
78030    }
78031
78032    fn drop_without_shutdown(mut self) {
78033        // Safety: drops once, never accessed again due to mem::forget
78034        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78035        // Prevent Drop from running (which would shut down the channel)
78036        std::mem::forget(self);
78037    }
78038}
78039
78040impl SynchronousDatagramSocketSetNoCheckResponder {
78041    /// Sends a response to the FIDL transaction.
78042    ///
78043    /// Sets the channel to shutdown if an error occurs.
78044    pub fn send(
78045        self,
78046        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78047    ) -> Result<(), fidl::Error> {
78048        let _result = self.send_raw(result);
78049        if _result.is_err() {
78050            self.control_handle.shutdown();
78051        }
78052        self.drop_without_shutdown();
78053        _result
78054    }
78055
78056    /// Similar to "send" but does not shutdown the channel if an error occurs.
78057    pub fn send_no_shutdown_on_err(
78058        self,
78059        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78060    ) -> Result<(), fidl::Error> {
78061        let _result = self.send_raw(result);
78062        self.drop_without_shutdown();
78063        _result
78064    }
78065
78066    fn send_raw(
78067        &self,
78068        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78069    ) -> Result<(), fidl::Error> {
78070        self.control_handle.inner.send::<fidl::encoding::ResultType<
78071            fidl::encoding::EmptyStruct,
78072            fidl_fuchsia_posix::Errno,
78073        >>(
78074            result,
78075            self.tx_id,
78076            0x6bbf00c53a4c78c2,
78077            fidl::encoding::DynamicFlags::empty(),
78078        )
78079    }
78080}
78081
78082#[must_use = "FIDL methods require a response to be sent"]
78083#[derive(Debug)]
78084pub struct SynchronousDatagramSocketGetNoCheckResponder {
78085    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78086    tx_id: u32,
78087}
78088
78089/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78090/// if the responder is dropped without sending a response, so that the client
78091/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78092impl std::ops::Drop for SynchronousDatagramSocketGetNoCheckResponder {
78093    fn drop(&mut self) {
78094        self.control_handle.shutdown();
78095        // Safety: drops once, never accessed again
78096        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78097    }
78098}
78099
78100impl fidl::endpoints::Responder for SynchronousDatagramSocketGetNoCheckResponder {
78101    type ControlHandle = SynchronousDatagramSocketControlHandle;
78102
78103    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78104        &self.control_handle
78105    }
78106
78107    fn drop_without_shutdown(mut self) {
78108        // Safety: drops once, never accessed again due to mem::forget
78109        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78110        // Prevent Drop from running (which would shut down the channel)
78111        std::mem::forget(self);
78112    }
78113}
78114
78115impl SynchronousDatagramSocketGetNoCheckResponder {
78116    /// Sends a response to the FIDL transaction.
78117    ///
78118    /// Sets the channel to shutdown if an error occurs.
78119    pub fn send(
78120        self,
78121        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78122    ) -> Result<(), fidl::Error> {
78123        let _result = self.send_raw(result);
78124        if _result.is_err() {
78125            self.control_handle.shutdown();
78126        }
78127        self.drop_without_shutdown();
78128        _result
78129    }
78130
78131    /// Similar to "send" but does not shutdown the channel if an error occurs.
78132    pub fn send_no_shutdown_on_err(
78133        self,
78134        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78135    ) -> Result<(), fidl::Error> {
78136        let _result = self.send_raw(result);
78137        self.drop_without_shutdown();
78138        _result
78139    }
78140
78141    fn send_raw(
78142        &self,
78143        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78144    ) -> Result<(), fidl::Error> {
78145        self.control_handle.inner.send::<fidl::encoding::ResultType<
78146            BaseSocketGetNoCheckResponse,
78147            fidl_fuchsia_posix::Errno,
78148        >>(
78149            result.map(|value| (value,)),
78150            self.tx_id,
78151            0x2cd4249286417694,
78152            fidl::encoding::DynamicFlags::empty(),
78153        )
78154    }
78155}
78156
78157#[must_use = "FIDL methods require a response to be sent"]
78158#[derive(Debug)]
78159pub struct SynchronousDatagramSocketSetLingerResponder {
78160    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78161    tx_id: u32,
78162}
78163
78164/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78165/// if the responder is dropped without sending a response, so that the client
78166/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78167impl std::ops::Drop for SynchronousDatagramSocketSetLingerResponder {
78168    fn drop(&mut self) {
78169        self.control_handle.shutdown();
78170        // Safety: drops once, never accessed again
78171        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78172    }
78173}
78174
78175impl fidl::endpoints::Responder for SynchronousDatagramSocketSetLingerResponder {
78176    type ControlHandle = SynchronousDatagramSocketControlHandle;
78177
78178    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78179        &self.control_handle
78180    }
78181
78182    fn drop_without_shutdown(mut self) {
78183        // Safety: drops once, never accessed again due to mem::forget
78184        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78185        // Prevent Drop from running (which would shut down the channel)
78186        std::mem::forget(self);
78187    }
78188}
78189
78190impl SynchronousDatagramSocketSetLingerResponder {
78191    /// Sends a response to the FIDL transaction.
78192    ///
78193    /// Sets the channel to shutdown if an error occurs.
78194    pub fn send(
78195        self,
78196        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78197    ) -> Result<(), fidl::Error> {
78198        let _result = self.send_raw(result);
78199        if _result.is_err() {
78200            self.control_handle.shutdown();
78201        }
78202        self.drop_without_shutdown();
78203        _result
78204    }
78205
78206    /// Similar to "send" but does not shutdown the channel if an error occurs.
78207    pub fn send_no_shutdown_on_err(
78208        self,
78209        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78210    ) -> Result<(), fidl::Error> {
78211        let _result = self.send_raw(result);
78212        self.drop_without_shutdown();
78213        _result
78214    }
78215
78216    fn send_raw(
78217        &self,
78218        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78219    ) -> Result<(), fidl::Error> {
78220        self.control_handle.inner.send::<fidl::encoding::ResultType<
78221            fidl::encoding::EmptyStruct,
78222            fidl_fuchsia_posix::Errno,
78223        >>(
78224            result,
78225            self.tx_id,
78226            0x45386351246e998e,
78227            fidl::encoding::DynamicFlags::empty(),
78228        )
78229    }
78230}
78231
78232#[must_use = "FIDL methods require a response to be sent"]
78233#[derive(Debug)]
78234pub struct SynchronousDatagramSocketGetLingerResponder {
78235    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78236    tx_id: u32,
78237}
78238
78239/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78240/// if the responder is dropped without sending a response, so that the client
78241/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78242impl std::ops::Drop for SynchronousDatagramSocketGetLingerResponder {
78243    fn drop(&mut self) {
78244        self.control_handle.shutdown();
78245        // Safety: drops once, never accessed again
78246        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78247    }
78248}
78249
78250impl fidl::endpoints::Responder for SynchronousDatagramSocketGetLingerResponder {
78251    type ControlHandle = SynchronousDatagramSocketControlHandle;
78252
78253    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78254        &self.control_handle
78255    }
78256
78257    fn drop_without_shutdown(mut self) {
78258        // Safety: drops once, never accessed again due to mem::forget
78259        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78260        // Prevent Drop from running (which would shut down the channel)
78261        std::mem::forget(self);
78262    }
78263}
78264
78265impl SynchronousDatagramSocketGetLingerResponder {
78266    /// Sends a response to the FIDL transaction.
78267    ///
78268    /// Sets the channel to shutdown if an error occurs.
78269    pub fn send(
78270        self,
78271        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
78272    ) -> Result<(), fidl::Error> {
78273        let _result = self.send_raw(result);
78274        if _result.is_err() {
78275            self.control_handle.shutdown();
78276        }
78277        self.drop_without_shutdown();
78278        _result
78279    }
78280
78281    /// Similar to "send" but does not shutdown the channel if an error occurs.
78282    pub fn send_no_shutdown_on_err(
78283        self,
78284        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
78285    ) -> Result<(), fidl::Error> {
78286        let _result = self.send_raw(result);
78287        self.drop_without_shutdown();
78288        _result
78289    }
78290
78291    fn send_raw(
78292        &self,
78293        mut result: Result<(bool, u32), fidl_fuchsia_posix::Errno>,
78294    ) -> Result<(), fidl::Error> {
78295        self.control_handle.inner.send::<fidl::encoding::ResultType<
78296            BaseSocketGetLingerResponse,
78297            fidl_fuchsia_posix::Errno,
78298        >>(
78299            result,
78300            self.tx_id,
78301            0x48eb20fc5ccb0e45,
78302            fidl::encoding::DynamicFlags::empty(),
78303        )
78304    }
78305}
78306
78307#[must_use = "FIDL methods require a response to be sent"]
78308#[derive(Debug)]
78309pub struct SynchronousDatagramSocketSetReusePortResponder {
78310    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78311    tx_id: u32,
78312}
78313
78314/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78315/// if the responder is dropped without sending a response, so that the client
78316/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78317impl std::ops::Drop for SynchronousDatagramSocketSetReusePortResponder {
78318    fn drop(&mut self) {
78319        self.control_handle.shutdown();
78320        // Safety: drops once, never accessed again
78321        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78322    }
78323}
78324
78325impl fidl::endpoints::Responder for SynchronousDatagramSocketSetReusePortResponder {
78326    type ControlHandle = SynchronousDatagramSocketControlHandle;
78327
78328    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78329        &self.control_handle
78330    }
78331
78332    fn drop_without_shutdown(mut self) {
78333        // Safety: drops once, never accessed again due to mem::forget
78334        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78335        // Prevent Drop from running (which would shut down the channel)
78336        std::mem::forget(self);
78337    }
78338}
78339
78340impl SynchronousDatagramSocketSetReusePortResponder {
78341    /// Sends a response to the FIDL transaction.
78342    ///
78343    /// Sets the channel to shutdown if an error occurs.
78344    pub fn send(
78345        self,
78346        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78347    ) -> Result<(), fidl::Error> {
78348        let _result = self.send_raw(result);
78349        if _result.is_err() {
78350            self.control_handle.shutdown();
78351        }
78352        self.drop_without_shutdown();
78353        _result
78354    }
78355
78356    /// Similar to "send" but does not shutdown the channel if an error occurs.
78357    pub fn send_no_shutdown_on_err(
78358        self,
78359        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78360    ) -> Result<(), fidl::Error> {
78361        let _result = self.send_raw(result);
78362        self.drop_without_shutdown();
78363        _result
78364    }
78365
78366    fn send_raw(
78367        &self,
78368        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78369    ) -> Result<(), fidl::Error> {
78370        self.control_handle.inner.send::<fidl::encoding::ResultType<
78371            fidl::encoding::EmptyStruct,
78372            fidl_fuchsia_posix::Errno,
78373        >>(
78374            result,
78375            self.tx_id,
78376            0x24dd3e5cb36d9ccb,
78377            fidl::encoding::DynamicFlags::empty(),
78378        )
78379    }
78380}
78381
78382#[must_use = "FIDL methods require a response to be sent"]
78383#[derive(Debug)]
78384pub struct SynchronousDatagramSocketGetReusePortResponder {
78385    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78386    tx_id: u32,
78387}
78388
78389/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78390/// if the responder is dropped without sending a response, so that the client
78391/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78392impl std::ops::Drop for SynchronousDatagramSocketGetReusePortResponder {
78393    fn drop(&mut self) {
78394        self.control_handle.shutdown();
78395        // Safety: drops once, never accessed again
78396        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78397    }
78398}
78399
78400impl fidl::endpoints::Responder for SynchronousDatagramSocketGetReusePortResponder {
78401    type ControlHandle = SynchronousDatagramSocketControlHandle;
78402
78403    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78404        &self.control_handle
78405    }
78406
78407    fn drop_without_shutdown(mut self) {
78408        // Safety: drops once, never accessed again due to mem::forget
78409        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78410        // Prevent Drop from running (which would shut down the channel)
78411        std::mem::forget(self);
78412    }
78413}
78414
78415impl SynchronousDatagramSocketGetReusePortResponder {
78416    /// Sends a response to the FIDL transaction.
78417    ///
78418    /// Sets the channel to shutdown if an error occurs.
78419    pub fn send(
78420        self,
78421        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78422    ) -> Result<(), fidl::Error> {
78423        let _result = self.send_raw(result);
78424        if _result.is_err() {
78425            self.control_handle.shutdown();
78426        }
78427        self.drop_without_shutdown();
78428        _result
78429    }
78430
78431    /// Similar to "send" but does not shutdown the channel if an error occurs.
78432    pub fn send_no_shutdown_on_err(
78433        self,
78434        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78435    ) -> Result<(), fidl::Error> {
78436        let _result = self.send_raw(result);
78437        self.drop_without_shutdown();
78438        _result
78439    }
78440
78441    fn send_raw(
78442        &self,
78443        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78444    ) -> Result<(), fidl::Error> {
78445        self.control_handle.inner.send::<fidl::encoding::ResultType<
78446            BaseSocketGetReusePortResponse,
78447            fidl_fuchsia_posix::Errno,
78448        >>(
78449            result.map(|value| (value,)),
78450            self.tx_id,
78451            0x7a112c1ab54ff828,
78452            fidl::encoding::DynamicFlags::empty(),
78453        )
78454    }
78455}
78456
78457#[must_use = "FIDL methods require a response to be sent"]
78458#[derive(Debug)]
78459pub struct SynchronousDatagramSocketGetAcceptConnResponder {
78460    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78461    tx_id: u32,
78462}
78463
78464/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78465/// if the responder is dropped without sending a response, so that the client
78466/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78467impl std::ops::Drop for SynchronousDatagramSocketGetAcceptConnResponder {
78468    fn drop(&mut self) {
78469        self.control_handle.shutdown();
78470        // Safety: drops once, never accessed again
78471        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78472    }
78473}
78474
78475impl fidl::endpoints::Responder for SynchronousDatagramSocketGetAcceptConnResponder {
78476    type ControlHandle = SynchronousDatagramSocketControlHandle;
78477
78478    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78479        &self.control_handle
78480    }
78481
78482    fn drop_without_shutdown(mut self) {
78483        // Safety: drops once, never accessed again due to mem::forget
78484        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78485        // Prevent Drop from running (which would shut down the channel)
78486        std::mem::forget(self);
78487    }
78488}
78489
78490impl SynchronousDatagramSocketGetAcceptConnResponder {
78491    /// Sends a response to the FIDL transaction.
78492    ///
78493    /// Sets the channel to shutdown if an error occurs.
78494    pub fn send(
78495        self,
78496        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78497    ) -> Result<(), fidl::Error> {
78498        let _result = self.send_raw(result);
78499        if _result.is_err() {
78500            self.control_handle.shutdown();
78501        }
78502        self.drop_without_shutdown();
78503        _result
78504    }
78505
78506    /// Similar to "send" but does not shutdown the channel if an error occurs.
78507    pub fn send_no_shutdown_on_err(
78508        self,
78509        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78510    ) -> Result<(), fidl::Error> {
78511        let _result = self.send_raw(result);
78512        self.drop_without_shutdown();
78513        _result
78514    }
78515
78516    fn send_raw(
78517        &self,
78518        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
78519    ) -> Result<(), fidl::Error> {
78520        self.control_handle.inner.send::<fidl::encoding::ResultType<
78521            BaseSocketGetAcceptConnResponse,
78522            fidl_fuchsia_posix::Errno,
78523        >>(
78524            result.map(|value| (value,)),
78525            self.tx_id,
78526            0x67ce6db6c2ec8966,
78527            fidl::encoding::DynamicFlags::empty(),
78528        )
78529    }
78530}
78531
78532#[must_use = "FIDL methods require a response to be sent"]
78533#[derive(Debug)]
78534pub struct SynchronousDatagramSocketSetBindToDeviceResponder {
78535    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78536    tx_id: u32,
78537}
78538
78539/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78540/// if the responder is dropped without sending a response, so that the client
78541/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78542impl std::ops::Drop for SynchronousDatagramSocketSetBindToDeviceResponder {
78543    fn drop(&mut self) {
78544        self.control_handle.shutdown();
78545        // Safety: drops once, never accessed again
78546        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78547    }
78548}
78549
78550impl fidl::endpoints::Responder for SynchronousDatagramSocketSetBindToDeviceResponder {
78551    type ControlHandle = SynchronousDatagramSocketControlHandle;
78552
78553    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78554        &self.control_handle
78555    }
78556
78557    fn drop_without_shutdown(mut self) {
78558        // Safety: drops once, never accessed again due to mem::forget
78559        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78560        // Prevent Drop from running (which would shut down the channel)
78561        std::mem::forget(self);
78562    }
78563}
78564
78565impl SynchronousDatagramSocketSetBindToDeviceResponder {
78566    /// Sends a response to the FIDL transaction.
78567    ///
78568    /// Sets the channel to shutdown if an error occurs.
78569    pub fn send(
78570        self,
78571        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78572    ) -> Result<(), fidl::Error> {
78573        let _result = self.send_raw(result);
78574        if _result.is_err() {
78575            self.control_handle.shutdown();
78576        }
78577        self.drop_without_shutdown();
78578        _result
78579    }
78580
78581    /// Similar to "send" but does not shutdown the channel if an error occurs.
78582    pub fn send_no_shutdown_on_err(
78583        self,
78584        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78585    ) -> Result<(), fidl::Error> {
78586        let _result = self.send_raw(result);
78587        self.drop_without_shutdown();
78588        _result
78589    }
78590
78591    fn send_raw(
78592        &self,
78593        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78594    ) -> Result<(), fidl::Error> {
78595        self.control_handle.inner.send::<fidl::encoding::ResultType<
78596            fidl::encoding::EmptyStruct,
78597            fidl_fuchsia_posix::Errno,
78598        >>(
78599            result,
78600            self.tx_id,
78601            0x2118b483f28aafc4,
78602            fidl::encoding::DynamicFlags::empty(),
78603        )
78604    }
78605}
78606
78607#[must_use = "FIDL methods require a response to be sent"]
78608#[derive(Debug)]
78609pub struct SynchronousDatagramSocketGetBindToDeviceResponder {
78610    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78611    tx_id: u32,
78612}
78613
78614/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78615/// if the responder is dropped without sending a response, so that the client
78616/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78617impl std::ops::Drop for SynchronousDatagramSocketGetBindToDeviceResponder {
78618    fn drop(&mut self) {
78619        self.control_handle.shutdown();
78620        // Safety: drops once, never accessed again
78621        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78622    }
78623}
78624
78625impl fidl::endpoints::Responder for SynchronousDatagramSocketGetBindToDeviceResponder {
78626    type ControlHandle = SynchronousDatagramSocketControlHandle;
78627
78628    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78629        &self.control_handle
78630    }
78631
78632    fn drop_without_shutdown(mut self) {
78633        // Safety: drops once, never accessed again due to mem::forget
78634        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78635        // Prevent Drop from running (which would shut down the channel)
78636        std::mem::forget(self);
78637    }
78638}
78639
78640impl SynchronousDatagramSocketGetBindToDeviceResponder {
78641    /// Sends a response to the FIDL transaction.
78642    ///
78643    /// Sets the channel to shutdown if an error occurs.
78644    pub fn send(
78645        self,
78646        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
78647    ) -> Result<(), fidl::Error> {
78648        let _result = self.send_raw(result);
78649        if _result.is_err() {
78650            self.control_handle.shutdown();
78651        }
78652        self.drop_without_shutdown();
78653        _result
78654    }
78655
78656    /// Similar to "send" but does not shutdown the channel if an error occurs.
78657    pub fn send_no_shutdown_on_err(
78658        self,
78659        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
78660    ) -> Result<(), fidl::Error> {
78661        let _result = self.send_raw(result);
78662        self.drop_without_shutdown();
78663        _result
78664    }
78665
78666    fn send_raw(
78667        &self,
78668        mut result: Result<&str, fidl_fuchsia_posix::Errno>,
78669    ) -> Result<(), fidl::Error> {
78670        self.control_handle.inner.send::<fidl::encoding::ResultType<
78671            BaseSocketGetBindToDeviceResponse,
78672            fidl_fuchsia_posix::Errno,
78673        >>(
78674            result.map(|value| (value,)),
78675            self.tx_id,
78676            0x1ab1fbf0ef7906c8,
78677            fidl::encoding::DynamicFlags::empty(),
78678        )
78679    }
78680}
78681
78682#[must_use = "FIDL methods require a response to be sent"]
78683#[derive(Debug)]
78684pub struct SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
78685    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78686    tx_id: u32,
78687}
78688
78689/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78690/// if the responder is dropped without sending a response, so that the client
78691/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78692impl std::ops::Drop for SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
78693    fn drop(&mut self) {
78694        self.control_handle.shutdown();
78695        // Safety: drops once, never accessed again
78696        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78697    }
78698}
78699
78700impl fidl::endpoints::Responder for SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
78701    type ControlHandle = SynchronousDatagramSocketControlHandle;
78702
78703    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78704        &self.control_handle
78705    }
78706
78707    fn drop_without_shutdown(mut self) {
78708        // Safety: drops once, never accessed again due to mem::forget
78709        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78710        // Prevent Drop from running (which would shut down the channel)
78711        std::mem::forget(self);
78712    }
78713}
78714
78715impl SynchronousDatagramSocketSetBindToInterfaceIndexResponder {
78716    /// Sends a response to the FIDL transaction.
78717    ///
78718    /// Sets the channel to shutdown if an error occurs.
78719    pub fn send(
78720        self,
78721        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78722    ) -> Result<(), fidl::Error> {
78723        let _result = self.send_raw(result);
78724        if _result.is_err() {
78725            self.control_handle.shutdown();
78726        }
78727        self.drop_without_shutdown();
78728        _result
78729    }
78730
78731    /// Similar to "send" but does not shutdown the channel if an error occurs.
78732    pub fn send_no_shutdown_on_err(
78733        self,
78734        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78735    ) -> Result<(), fidl::Error> {
78736        let _result = self.send_raw(result);
78737        self.drop_without_shutdown();
78738        _result
78739    }
78740
78741    fn send_raw(
78742        &self,
78743        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78744    ) -> Result<(), fidl::Error> {
78745        self.control_handle.inner.send::<fidl::encoding::ResultType<
78746            fidl::encoding::EmptyStruct,
78747            fidl_fuchsia_posix::Errno,
78748        >>(
78749            result,
78750            self.tx_id,
78751            0x6e387a0def00821,
78752            fidl::encoding::DynamicFlags::empty(),
78753        )
78754    }
78755}
78756
78757#[must_use = "FIDL methods require a response to be sent"]
78758#[derive(Debug)]
78759pub struct SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
78760    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78761    tx_id: u32,
78762}
78763
78764/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78765/// if the responder is dropped without sending a response, so that the client
78766/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78767impl std::ops::Drop for SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
78768    fn drop(&mut self) {
78769        self.control_handle.shutdown();
78770        // Safety: drops once, never accessed again
78771        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78772    }
78773}
78774
78775impl fidl::endpoints::Responder for SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
78776    type ControlHandle = SynchronousDatagramSocketControlHandle;
78777
78778    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78779        &self.control_handle
78780    }
78781
78782    fn drop_without_shutdown(mut self) {
78783        // Safety: drops once, never accessed again due to mem::forget
78784        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78785        // Prevent Drop from running (which would shut down the channel)
78786        std::mem::forget(self);
78787    }
78788}
78789
78790impl SynchronousDatagramSocketGetBindToInterfaceIndexResponder {
78791    /// Sends a response to the FIDL transaction.
78792    ///
78793    /// Sets the channel to shutdown if an error occurs.
78794    pub fn send(
78795        self,
78796        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
78797    ) -> Result<(), fidl::Error> {
78798        let _result = self.send_raw(result);
78799        if _result.is_err() {
78800            self.control_handle.shutdown();
78801        }
78802        self.drop_without_shutdown();
78803        _result
78804    }
78805
78806    /// Similar to "send" but does not shutdown the channel if an error occurs.
78807    pub fn send_no_shutdown_on_err(
78808        self,
78809        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
78810    ) -> Result<(), fidl::Error> {
78811        let _result = self.send_raw(result);
78812        self.drop_without_shutdown();
78813        _result
78814    }
78815
78816    fn send_raw(
78817        &self,
78818        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
78819    ) -> Result<(), fidl::Error> {
78820        self.control_handle.inner.send::<fidl::encoding::ResultType<
78821            BaseSocketGetBindToInterfaceIndexResponse,
78822            fidl_fuchsia_posix::Errno,
78823        >>(
78824            result.map(|value| (value,)),
78825            self.tx_id,
78826            0x59c31dd3e3078295,
78827            fidl::encoding::DynamicFlags::empty(),
78828        )
78829    }
78830}
78831
78832#[must_use = "FIDL methods require a response to be sent"]
78833#[derive(Debug)]
78834pub struct SynchronousDatagramSocketSetTimestampResponder {
78835    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78836    tx_id: u32,
78837}
78838
78839/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78840/// if the responder is dropped without sending a response, so that the client
78841/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78842impl std::ops::Drop for SynchronousDatagramSocketSetTimestampResponder {
78843    fn drop(&mut self) {
78844        self.control_handle.shutdown();
78845        // Safety: drops once, never accessed again
78846        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78847    }
78848}
78849
78850impl fidl::endpoints::Responder for SynchronousDatagramSocketSetTimestampResponder {
78851    type ControlHandle = SynchronousDatagramSocketControlHandle;
78852
78853    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78854        &self.control_handle
78855    }
78856
78857    fn drop_without_shutdown(mut self) {
78858        // Safety: drops once, never accessed again due to mem::forget
78859        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78860        // Prevent Drop from running (which would shut down the channel)
78861        std::mem::forget(self);
78862    }
78863}
78864
78865impl SynchronousDatagramSocketSetTimestampResponder {
78866    /// Sends a response to the FIDL transaction.
78867    ///
78868    /// Sets the channel to shutdown if an error occurs.
78869    pub fn send(
78870        self,
78871        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78872    ) -> Result<(), fidl::Error> {
78873        let _result = self.send_raw(result);
78874        if _result.is_err() {
78875            self.control_handle.shutdown();
78876        }
78877        self.drop_without_shutdown();
78878        _result
78879    }
78880
78881    /// Similar to "send" but does not shutdown the channel if an error occurs.
78882    pub fn send_no_shutdown_on_err(
78883        self,
78884        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78885    ) -> Result<(), fidl::Error> {
78886        let _result = self.send_raw(result);
78887        self.drop_without_shutdown();
78888        _result
78889    }
78890
78891    fn send_raw(
78892        &self,
78893        mut result: Result<(), fidl_fuchsia_posix::Errno>,
78894    ) -> Result<(), fidl::Error> {
78895        self.control_handle.inner.send::<fidl::encoding::ResultType<
78896            fidl::encoding::EmptyStruct,
78897            fidl_fuchsia_posix::Errno,
78898        >>(
78899            result,
78900            self.tx_id,
78901            0x285d6516c263d839,
78902            fidl::encoding::DynamicFlags::empty(),
78903        )
78904    }
78905}
78906
78907#[must_use = "FIDL methods require a response to be sent"]
78908#[derive(Debug)]
78909pub struct SynchronousDatagramSocketGetTimestampResponder {
78910    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78911    tx_id: u32,
78912}
78913
78914/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78915/// if the responder is dropped without sending a response, so that the client
78916/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78917impl std::ops::Drop for SynchronousDatagramSocketGetTimestampResponder {
78918    fn drop(&mut self) {
78919        self.control_handle.shutdown();
78920        // Safety: drops once, never accessed again
78921        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78922    }
78923}
78924
78925impl fidl::endpoints::Responder for SynchronousDatagramSocketGetTimestampResponder {
78926    type ControlHandle = SynchronousDatagramSocketControlHandle;
78927
78928    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
78929        &self.control_handle
78930    }
78931
78932    fn drop_without_shutdown(mut self) {
78933        // Safety: drops once, never accessed again due to mem::forget
78934        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78935        // Prevent Drop from running (which would shut down the channel)
78936        std::mem::forget(self);
78937    }
78938}
78939
78940impl SynchronousDatagramSocketGetTimestampResponder {
78941    /// Sends a response to the FIDL transaction.
78942    ///
78943    /// Sets the channel to shutdown if an error occurs.
78944    pub fn send(
78945        self,
78946        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
78947    ) -> Result<(), fidl::Error> {
78948        let _result = self.send_raw(result);
78949        if _result.is_err() {
78950            self.control_handle.shutdown();
78951        }
78952        self.drop_without_shutdown();
78953        _result
78954    }
78955
78956    /// Similar to "send" but does not shutdown the channel if an error occurs.
78957    pub fn send_no_shutdown_on_err(
78958        self,
78959        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
78960    ) -> Result<(), fidl::Error> {
78961        let _result = self.send_raw(result);
78962        self.drop_without_shutdown();
78963        _result
78964    }
78965
78966    fn send_raw(
78967        &self,
78968        mut result: Result<TimestampOption, fidl_fuchsia_posix::Errno>,
78969    ) -> Result<(), fidl::Error> {
78970        self.control_handle.inner.send::<fidl::encoding::ResultType<
78971            BaseSocketGetTimestampResponse,
78972            fidl_fuchsia_posix::Errno,
78973        >>(
78974            result.map(|value| (value,)),
78975            self.tx_id,
78976            0x49f2fffbbcc2bd27,
78977            fidl::encoding::DynamicFlags::empty(),
78978        )
78979    }
78980}
78981
78982#[must_use = "FIDL methods require a response to be sent"]
78983#[derive(Debug)]
78984pub struct SynchronousDatagramSocketSetMarkResponder {
78985    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
78986    tx_id: u32,
78987}
78988
78989/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
78990/// if the responder is dropped without sending a response, so that the client
78991/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
78992impl std::ops::Drop for SynchronousDatagramSocketSetMarkResponder {
78993    fn drop(&mut self) {
78994        self.control_handle.shutdown();
78995        // Safety: drops once, never accessed again
78996        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
78997    }
78998}
78999
79000impl fidl::endpoints::Responder for SynchronousDatagramSocketSetMarkResponder {
79001    type ControlHandle = SynchronousDatagramSocketControlHandle;
79002
79003    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79004        &self.control_handle
79005    }
79006
79007    fn drop_without_shutdown(mut self) {
79008        // Safety: drops once, never accessed again due to mem::forget
79009        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79010        // Prevent Drop from running (which would shut down the channel)
79011        std::mem::forget(self);
79012    }
79013}
79014
79015impl SynchronousDatagramSocketSetMarkResponder {
79016    /// Sends a response to the FIDL transaction.
79017    ///
79018    /// Sets the channel to shutdown if an error occurs.
79019    pub fn send(
79020        self,
79021        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79022    ) -> Result<(), fidl::Error> {
79023        let _result = self.send_raw(result);
79024        if _result.is_err() {
79025            self.control_handle.shutdown();
79026        }
79027        self.drop_without_shutdown();
79028        _result
79029    }
79030
79031    /// Similar to "send" but does not shutdown the channel if an error occurs.
79032    pub fn send_no_shutdown_on_err(
79033        self,
79034        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79035    ) -> Result<(), fidl::Error> {
79036        let _result = self.send_raw(result);
79037        self.drop_without_shutdown();
79038        _result
79039    }
79040
79041    fn send_raw(
79042        &self,
79043        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79044    ) -> Result<(), fidl::Error> {
79045        self.control_handle.inner.send::<fidl::encoding::ResultType<
79046            fidl::encoding::EmptyStruct,
79047            fidl_fuchsia_posix::Errno,
79048        >>(
79049            result,
79050            self.tx_id,
79051            0x6ead6de09f653236,
79052            fidl::encoding::DynamicFlags::empty(),
79053        )
79054    }
79055}
79056
79057#[must_use = "FIDL methods require a response to be sent"]
79058#[derive(Debug)]
79059pub struct SynchronousDatagramSocketGetMarkResponder {
79060    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79061    tx_id: u32,
79062}
79063
79064/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79065/// if the responder is dropped without sending a response, so that the client
79066/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79067impl std::ops::Drop for SynchronousDatagramSocketGetMarkResponder {
79068    fn drop(&mut self) {
79069        self.control_handle.shutdown();
79070        // Safety: drops once, never accessed again
79071        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79072    }
79073}
79074
79075impl fidl::endpoints::Responder for SynchronousDatagramSocketGetMarkResponder {
79076    type ControlHandle = SynchronousDatagramSocketControlHandle;
79077
79078    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79079        &self.control_handle
79080    }
79081
79082    fn drop_without_shutdown(mut self) {
79083        // Safety: drops once, never accessed again due to mem::forget
79084        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79085        // Prevent Drop from running (which would shut down the channel)
79086        std::mem::forget(self);
79087    }
79088}
79089
79090impl SynchronousDatagramSocketGetMarkResponder {
79091    /// Sends a response to the FIDL transaction.
79092    ///
79093    /// Sets the channel to shutdown if an error occurs.
79094    pub fn send(
79095        self,
79096        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
79097    ) -> Result<(), fidl::Error> {
79098        let _result = self.send_raw(result);
79099        if _result.is_err() {
79100            self.control_handle.shutdown();
79101        }
79102        self.drop_without_shutdown();
79103        _result
79104    }
79105
79106    /// Similar to "send" but does not shutdown the channel if an error occurs.
79107    pub fn send_no_shutdown_on_err(
79108        self,
79109        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
79110    ) -> Result<(), fidl::Error> {
79111        let _result = self.send_raw(result);
79112        self.drop_without_shutdown();
79113        _result
79114    }
79115
79116    fn send_raw(
79117        &self,
79118        mut result: Result<&OptionalUint32, fidl_fuchsia_posix::Errno>,
79119    ) -> Result<(), fidl::Error> {
79120        self.control_handle.inner.send::<fidl::encoding::ResultType<
79121            BaseSocketGetMarkResponse,
79122            fidl_fuchsia_posix::Errno,
79123        >>(
79124            result.map(|mark| (mark,)),
79125            self.tx_id,
79126            0x57a2752c61d93d47,
79127            fidl::encoding::DynamicFlags::empty(),
79128        )
79129    }
79130}
79131
79132#[must_use = "FIDL methods require a response to be sent"]
79133#[derive(Debug)]
79134pub struct SynchronousDatagramSocketGetCookieResponder {
79135    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79136    tx_id: u32,
79137}
79138
79139/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79140/// if the responder is dropped without sending a response, so that the client
79141/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79142impl std::ops::Drop for SynchronousDatagramSocketGetCookieResponder {
79143    fn drop(&mut self) {
79144        self.control_handle.shutdown();
79145        // Safety: drops once, never accessed again
79146        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79147    }
79148}
79149
79150impl fidl::endpoints::Responder for SynchronousDatagramSocketGetCookieResponder {
79151    type ControlHandle = SynchronousDatagramSocketControlHandle;
79152
79153    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79154        &self.control_handle
79155    }
79156
79157    fn drop_without_shutdown(mut self) {
79158        // Safety: drops once, never accessed again due to mem::forget
79159        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79160        // Prevent Drop from running (which would shut down the channel)
79161        std::mem::forget(self);
79162    }
79163}
79164
79165impl SynchronousDatagramSocketGetCookieResponder {
79166    /// Sends a response to the FIDL transaction.
79167    ///
79168    /// Sets the channel to shutdown if an error occurs.
79169    pub fn send(
79170        self,
79171        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
79172    ) -> Result<(), fidl::Error> {
79173        let _result = self.send_raw(result);
79174        if _result.is_err() {
79175            self.control_handle.shutdown();
79176        }
79177        self.drop_without_shutdown();
79178        _result
79179    }
79180
79181    /// Similar to "send" but does not shutdown the channel if an error occurs.
79182    pub fn send_no_shutdown_on_err(
79183        self,
79184        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
79185    ) -> Result<(), fidl::Error> {
79186        let _result = self.send_raw(result);
79187        self.drop_without_shutdown();
79188        _result
79189    }
79190
79191    fn send_raw(
79192        &self,
79193        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
79194    ) -> Result<(), fidl::Error> {
79195        self.control_handle.inner.send::<fidl::encoding::ResultType<
79196            BaseSocketGetCookieResponse,
79197            fidl_fuchsia_posix::Errno,
79198        >>(
79199            result.map(|value| (value,)),
79200            self.tx_id,
79201            0x2c2f47fd8f924e52,
79202            fidl::encoding::DynamicFlags::empty(),
79203        )
79204    }
79205}
79206
79207#[must_use = "FIDL methods require a response to be sent"]
79208#[derive(Debug)]
79209pub struct SynchronousDatagramSocketBindResponder {
79210    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79211    tx_id: u32,
79212}
79213
79214/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79215/// if the responder is dropped without sending a response, so that the client
79216/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79217impl std::ops::Drop for SynchronousDatagramSocketBindResponder {
79218    fn drop(&mut self) {
79219        self.control_handle.shutdown();
79220        // Safety: drops once, never accessed again
79221        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79222    }
79223}
79224
79225impl fidl::endpoints::Responder for SynchronousDatagramSocketBindResponder {
79226    type ControlHandle = SynchronousDatagramSocketControlHandle;
79227
79228    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79229        &self.control_handle
79230    }
79231
79232    fn drop_without_shutdown(mut self) {
79233        // Safety: drops once, never accessed again due to mem::forget
79234        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79235        // Prevent Drop from running (which would shut down the channel)
79236        std::mem::forget(self);
79237    }
79238}
79239
79240impl SynchronousDatagramSocketBindResponder {
79241    /// Sends a response to the FIDL transaction.
79242    ///
79243    /// Sets the channel to shutdown if an error occurs.
79244    pub fn send(
79245        self,
79246        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79247    ) -> Result<(), fidl::Error> {
79248        let _result = self.send_raw(result);
79249        if _result.is_err() {
79250            self.control_handle.shutdown();
79251        }
79252        self.drop_without_shutdown();
79253        _result
79254    }
79255
79256    /// Similar to "send" but does not shutdown the channel if an error occurs.
79257    pub fn send_no_shutdown_on_err(
79258        self,
79259        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79260    ) -> Result<(), fidl::Error> {
79261        let _result = self.send_raw(result);
79262        self.drop_without_shutdown();
79263        _result
79264    }
79265
79266    fn send_raw(
79267        &self,
79268        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79269    ) -> Result<(), fidl::Error> {
79270        self.control_handle.inner.send::<fidl::encoding::ResultType<
79271            fidl::encoding::EmptyStruct,
79272            fidl_fuchsia_posix::Errno,
79273        >>(
79274            result,
79275            self.tx_id,
79276            0x4bc6400ae92125d,
79277            fidl::encoding::DynamicFlags::empty(),
79278        )
79279    }
79280}
79281
79282#[must_use = "FIDL methods require a response to be sent"]
79283#[derive(Debug)]
79284pub struct SynchronousDatagramSocketConnectResponder {
79285    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79286    tx_id: u32,
79287}
79288
79289/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79290/// if the responder is dropped without sending a response, so that the client
79291/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79292impl std::ops::Drop for SynchronousDatagramSocketConnectResponder {
79293    fn drop(&mut self) {
79294        self.control_handle.shutdown();
79295        // Safety: drops once, never accessed again
79296        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79297    }
79298}
79299
79300impl fidl::endpoints::Responder for SynchronousDatagramSocketConnectResponder {
79301    type ControlHandle = SynchronousDatagramSocketControlHandle;
79302
79303    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79304        &self.control_handle
79305    }
79306
79307    fn drop_without_shutdown(mut self) {
79308        // Safety: drops once, never accessed again due to mem::forget
79309        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79310        // Prevent Drop from running (which would shut down the channel)
79311        std::mem::forget(self);
79312    }
79313}
79314
79315impl SynchronousDatagramSocketConnectResponder {
79316    /// Sends a response to the FIDL transaction.
79317    ///
79318    /// Sets the channel to shutdown if an error occurs.
79319    pub fn send(
79320        self,
79321        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79322    ) -> Result<(), fidl::Error> {
79323        let _result = self.send_raw(result);
79324        if _result.is_err() {
79325            self.control_handle.shutdown();
79326        }
79327        self.drop_without_shutdown();
79328        _result
79329    }
79330
79331    /// Similar to "send" but does not shutdown the channel if an error occurs.
79332    pub fn send_no_shutdown_on_err(
79333        self,
79334        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79335    ) -> Result<(), fidl::Error> {
79336        let _result = self.send_raw(result);
79337        self.drop_without_shutdown();
79338        _result
79339    }
79340
79341    fn send_raw(
79342        &self,
79343        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79344    ) -> Result<(), fidl::Error> {
79345        self.control_handle.inner.send::<fidl::encoding::ResultType<
79346            fidl::encoding::EmptyStruct,
79347            fidl_fuchsia_posix::Errno,
79348        >>(
79349            result,
79350            self.tx_id,
79351            0x5f05f19bfdd38871,
79352            fidl::encoding::DynamicFlags::empty(),
79353        )
79354    }
79355}
79356
79357#[must_use = "FIDL methods require a response to be sent"]
79358#[derive(Debug)]
79359pub struct SynchronousDatagramSocketDisconnectResponder {
79360    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79361    tx_id: u32,
79362}
79363
79364/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79365/// if the responder is dropped without sending a response, so that the client
79366/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79367impl std::ops::Drop for SynchronousDatagramSocketDisconnectResponder {
79368    fn drop(&mut self) {
79369        self.control_handle.shutdown();
79370        // Safety: drops once, never accessed again
79371        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79372    }
79373}
79374
79375impl fidl::endpoints::Responder for SynchronousDatagramSocketDisconnectResponder {
79376    type ControlHandle = SynchronousDatagramSocketControlHandle;
79377
79378    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79379        &self.control_handle
79380    }
79381
79382    fn drop_without_shutdown(mut self) {
79383        // Safety: drops once, never accessed again due to mem::forget
79384        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79385        // Prevent Drop from running (which would shut down the channel)
79386        std::mem::forget(self);
79387    }
79388}
79389
79390impl SynchronousDatagramSocketDisconnectResponder {
79391    /// Sends a response to the FIDL transaction.
79392    ///
79393    /// Sets the channel to shutdown if an error occurs.
79394    pub fn send(
79395        self,
79396        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79397    ) -> Result<(), fidl::Error> {
79398        let _result = self.send_raw(result);
79399        if _result.is_err() {
79400            self.control_handle.shutdown();
79401        }
79402        self.drop_without_shutdown();
79403        _result
79404    }
79405
79406    /// Similar to "send" but does not shutdown the channel if an error occurs.
79407    pub fn send_no_shutdown_on_err(
79408        self,
79409        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79410    ) -> Result<(), fidl::Error> {
79411        let _result = self.send_raw(result);
79412        self.drop_without_shutdown();
79413        _result
79414    }
79415
79416    fn send_raw(
79417        &self,
79418        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79419    ) -> Result<(), fidl::Error> {
79420        self.control_handle.inner.send::<fidl::encoding::ResultType<
79421            fidl::encoding::EmptyStruct,
79422            fidl_fuchsia_posix::Errno,
79423        >>(
79424            result,
79425            self.tx_id,
79426            0x74e63b91f7b29b2,
79427            fidl::encoding::DynamicFlags::empty(),
79428        )
79429    }
79430}
79431
79432#[must_use = "FIDL methods require a response to be sent"]
79433#[derive(Debug)]
79434pub struct SynchronousDatagramSocketGetSockNameResponder {
79435    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79436    tx_id: u32,
79437}
79438
79439/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79440/// if the responder is dropped without sending a response, so that the client
79441/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79442impl std::ops::Drop for SynchronousDatagramSocketGetSockNameResponder {
79443    fn drop(&mut self) {
79444        self.control_handle.shutdown();
79445        // Safety: drops once, never accessed again
79446        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79447    }
79448}
79449
79450impl fidl::endpoints::Responder for SynchronousDatagramSocketGetSockNameResponder {
79451    type ControlHandle = SynchronousDatagramSocketControlHandle;
79452
79453    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79454        &self.control_handle
79455    }
79456
79457    fn drop_without_shutdown(mut self) {
79458        // Safety: drops once, never accessed again due to mem::forget
79459        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79460        // Prevent Drop from running (which would shut down the channel)
79461        std::mem::forget(self);
79462    }
79463}
79464
79465impl SynchronousDatagramSocketGetSockNameResponder {
79466    /// Sends a response to the FIDL transaction.
79467    ///
79468    /// Sets the channel to shutdown if an error occurs.
79469    pub fn send(
79470        self,
79471        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79472    ) -> Result<(), fidl::Error> {
79473        let _result = self.send_raw(result);
79474        if _result.is_err() {
79475            self.control_handle.shutdown();
79476        }
79477        self.drop_without_shutdown();
79478        _result
79479    }
79480
79481    /// Similar to "send" but does not shutdown the channel if an error occurs.
79482    pub fn send_no_shutdown_on_err(
79483        self,
79484        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79485    ) -> Result<(), fidl::Error> {
79486        let _result = self.send_raw(result);
79487        self.drop_without_shutdown();
79488        _result
79489    }
79490
79491    fn send_raw(
79492        &self,
79493        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79494    ) -> Result<(), fidl::Error> {
79495        self.control_handle.inner.send::<fidl::encoding::ResultType<
79496            BaseNetworkSocketGetSockNameResponse,
79497            fidl_fuchsia_posix::Errno,
79498        >>(
79499            result.map(|addr| (addr,)),
79500            self.tx_id,
79501            0x475f23f84a1a4f85,
79502            fidl::encoding::DynamicFlags::empty(),
79503        )
79504    }
79505}
79506
79507#[must_use = "FIDL methods require a response to be sent"]
79508#[derive(Debug)]
79509pub struct SynchronousDatagramSocketGetPeerNameResponder {
79510    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79511    tx_id: u32,
79512}
79513
79514/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79515/// if the responder is dropped without sending a response, so that the client
79516/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79517impl std::ops::Drop for SynchronousDatagramSocketGetPeerNameResponder {
79518    fn drop(&mut self) {
79519        self.control_handle.shutdown();
79520        // Safety: drops once, never accessed again
79521        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79522    }
79523}
79524
79525impl fidl::endpoints::Responder for SynchronousDatagramSocketGetPeerNameResponder {
79526    type ControlHandle = SynchronousDatagramSocketControlHandle;
79527
79528    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79529        &self.control_handle
79530    }
79531
79532    fn drop_without_shutdown(mut self) {
79533        // Safety: drops once, never accessed again due to mem::forget
79534        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79535        // Prevent Drop from running (which would shut down the channel)
79536        std::mem::forget(self);
79537    }
79538}
79539
79540impl SynchronousDatagramSocketGetPeerNameResponder {
79541    /// Sends a response to the FIDL transaction.
79542    ///
79543    /// Sets the channel to shutdown if an error occurs.
79544    pub fn send(
79545        self,
79546        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79547    ) -> Result<(), fidl::Error> {
79548        let _result = self.send_raw(result);
79549        if _result.is_err() {
79550            self.control_handle.shutdown();
79551        }
79552        self.drop_without_shutdown();
79553        _result
79554    }
79555
79556    /// Similar to "send" but does not shutdown the channel if an error occurs.
79557    pub fn send_no_shutdown_on_err(
79558        self,
79559        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79560    ) -> Result<(), fidl::Error> {
79561        let _result = self.send_raw(result);
79562        self.drop_without_shutdown();
79563        _result
79564    }
79565
79566    fn send_raw(
79567        &self,
79568        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
79569    ) -> Result<(), fidl::Error> {
79570        self.control_handle.inner.send::<fidl::encoding::ResultType<
79571            BaseNetworkSocketGetPeerNameResponse,
79572            fidl_fuchsia_posix::Errno,
79573        >>(
79574            result.map(|addr| (addr,)),
79575            self.tx_id,
79576            0x1ffecf4bd5b6432e,
79577            fidl::encoding::DynamicFlags::empty(),
79578        )
79579    }
79580}
79581
79582#[must_use = "FIDL methods require a response to be sent"]
79583#[derive(Debug)]
79584pub struct SynchronousDatagramSocketShutdownResponder {
79585    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79586    tx_id: u32,
79587}
79588
79589/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79590/// if the responder is dropped without sending a response, so that the client
79591/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79592impl std::ops::Drop for SynchronousDatagramSocketShutdownResponder {
79593    fn drop(&mut self) {
79594        self.control_handle.shutdown();
79595        // Safety: drops once, never accessed again
79596        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79597    }
79598}
79599
79600impl fidl::endpoints::Responder for SynchronousDatagramSocketShutdownResponder {
79601    type ControlHandle = SynchronousDatagramSocketControlHandle;
79602
79603    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79604        &self.control_handle
79605    }
79606
79607    fn drop_without_shutdown(mut self) {
79608        // Safety: drops once, never accessed again due to mem::forget
79609        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79610        // Prevent Drop from running (which would shut down the channel)
79611        std::mem::forget(self);
79612    }
79613}
79614
79615impl SynchronousDatagramSocketShutdownResponder {
79616    /// Sends a response to the FIDL transaction.
79617    ///
79618    /// Sets the channel to shutdown if an error occurs.
79619    pub fn send(
79620        self,
79621        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79622    ) -> Result<(), fidl::Error> {
79623        let _result = self.send_raw(result);
79624        if _result.is_err() {
79625            self.control_handle.shutdown();
79626        }
79627        self.drop_without_shutdown();
79628        _result
79629    }
79630
79631    /// Similar to "send" but does not shutdown the channel if an error occurs.
79632    pub fn send_no_shutdown_on_err(
79633        self,
79634        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79635    ) -> Result<(), fidl::Error> {
79636        let _result = self.send_raw(result);
79637        self.drop_without_shutdown();
79638        _result
79639    }
79640
79641    fn send_raw(
79642        &self,
79643        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79644    ) -> Result<(), fidl::Error> {
79645        self.control_handle.inner.send::<fidl::encoding::ResultType<
79646            fidl::encoding::EmptyStruct,
79647            fidl_fuchsia_posix::Errno,
79648        >>(
79649            result,
79650            self.tx_id,
79651            0x247f38b6db68c336,
79652            fidl::encoding::DynamicFlags::empty(),
79653        )
79654    }
79655}
79656
79657#[must_use = "FIDL methods require a response to be sent"]
79658#[derive(Debug)]
79659pub struct SynchronousDatagramSocketSetIpTypeOfServiceResponder {
79660    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79661    tx_id: u32,
79662}
79663
79664/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79665/// if the responder is dropped without sending a response, so that the client
79666/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79667impl std::ops::Drop for SynchronousDatagramSocketSetIpTypeOfServiceResponder {
79668    fn drop(&mut self) {
79669        self.control_handle.shutdown();
79670        // Safety: drops once, never accessed again
79671        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79672    }
79673}
79674
79675impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpTypeOfServiceResponder {
79676    type ControlHandle = SynchronousDatagramSocketControlHandle;
79677
79678    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79679        &self.control_handle
79680    }
79681
79682    fn drop_without_shutdown(mut self) {
79683        // Safety: drops once, never accessed again due to mem::forget
79684        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79685        // Prevent Drop from running (which would shut down the channel)
79686        std::mem::forget(self);
79687    }
79688}
79689
79690impl SynchronousDatagramSocketSetIpTypeOfServiceResponder {
79691    /// Sends a response to the FIDL transaction.
79692    ///
79693    /// Sets the channel to shutdown if an error occurs.
79694    pub fn send(
79695        self,
79696        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79697    ) -> Result<(), fidl::Error> {
79698        let _result = self.send_raw(result);
79699        if _result.is_err() {
79700            self.control_handle.shutdown();
79701        }
79702        self.drop_without_shutdown();
79703        _result
79704    }
79705
79706    /// Similar to "send" but does not shutdown the channel if an error occurs.
79707    pub fn send_no_shutdown_on_err(
79708        self,
79709        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79710    ) -> Result<(), fidl::Error> {
79711        let _result = self.send_raw(result);
79712        self.drop_without_shutdown();
79713        _result
79714    }
79715
79716    fn send_raw(
79717        &self,
79718        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79719    ) -> Result<(), fidl::Error> {
79720        self.control_handle.inner.send::<fidl::encoding::ResultType<
79721            fidl::encoding::EmptyStruct,
79722            fidl_fuchsia_posix::Errno,
79723        >>(
79724            result,
79725            self.tx_id,
79726            0x995c600475b6d46,
79727            fidl::encoding::DynamicFlags::empty(),
79728        )
79729    }
79730}
79731
79732#[must_use = "FIDL methods require a response to be sent"]
79733#[derive(Debug)]
79734pub struct SynchronousDatagramSocketGetIpTypeOfServiceResponder {
79735    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79736    tx_id: u32,
79737}
79738
79739/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79740/// if the responder is dropped without sending a response, so that the client
79741/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79742impl std::ops::Drop for SynchronousDatagramSocketGetIpTypeOfServiceResponder {
79743    fn drop(&mut self) {
79744        self.control_handle.shutdown();
79745        // Safety: drops once, never accessed again
79746        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79747    }
79748}
79749
79750impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpTypeOfServiceResponder {
79751    type ControlHandle = SynchronousDatagramSocketControlHandle;
79752
79753    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79754        &self.control_handle
79755    }
79756
79757    fn drop_without_shutdown(mut self) {
79758        // Safety: drops once, never accessed again due to mem::forget
79759        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79760        // Prevent Drop from running (which would shut down the channel)
79761        std::mem::forget(self);
79762    }
79763}
79764
79765impl SynchronousDatagramSocketGetIpTypeOfServiceResponder {
79766    /// Sends a response to the FIDL transaction.
79767    ///
79768    /// Sets the channel to shutdown if an error occurs.
79769    pub fn send(
79770        self,
79771        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79772    ) -> Result<(), fidl::Error> {
79773        let _result = self.send_raw(result);
79774        if _result.is_err() {
79775            self.control_handle.shutdown();
79776        }
79777        self.drop_without_shutdown();
79778        _result
79779    }
79780
79781    /// Similar to "send" but does not shutdown the channel if an error occurs.
79782    pub fn send_no_shutdown_on_err(
79783        self,
79784        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79785    ) -> Result<(), fidl::Error> {
79786        let _result = self.send_raw(result);
79787        self.drop_without_shutdown();
79788        _result
79789    }
79790
79791    fn send_raw(
79792        &self,
79793        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79794    ) -> Result<(), fidl::Error> {
79795        self.control_handle.inner.send::<fidl::encoding::ResultType<
79796            BaseNetworkSocketGetIpTypeOfServiceResponse,
79797            fidl_fuchsia_posix::Errno,
79798        >>(
79799            result.map(|value| (value,)),
79800            self.tx_id,
79801            0x3814a04259f75fcb,
79802            fidl::encoding::DynamicFlags::empty(),
79803        )
79804    }
79805}
79806
79807#[must_use = "FIDL methods require a response to be sent"]
79808#[derive(Debug)]
79809pub struct SynchronousDatagramSocketSetIpTtlResponder {
79810    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79811    tx_id: u32,
79812}
79813
79814/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79815/// if the responder is dropped without sending a response, so that the client
79816/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79817impl std::ops::Drop for SynchronousDatagramSocketSetIpTtlResponder {
79818    fn drop(&mut self) {
79819        self.control_handle.shutdown();
79820        // Safety: drops once, never accessed again
79821        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79822    }
79823}
79824
79825impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpTtlResponder {
79826    type ControlHandle = SynchronousDatagramSocketControlHandle;
79827
79828    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79829        &self.control_handle
79830    }
79831
79832    fn drop_without_shutdown(mut self) {
79833        // Safety: drops once, never accessed again due to mem::forget
79834        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79835        // Prevent Drop from running (which would shut down the channel)
79836        std::mem::forget(self);
79837    }
79838}
79839
79840impl SynchronousDatagramSocketSetIpTtlResponder {
79841    /// Sends a response to the FIDL transaction.
79842    ///
79843    /// Sets the channel to shutdown if an error occurs.
79844    pub fn send(
79845        self,
79846        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79847    ) -> Result<(), fidl::Error> {
79848        let _result = self.send_raw(result);
79849        if _result.is_err() {
79850            self.control_handle.shutdown();
79851        }
79852        self.drop_without_shutdown();
79853        _result
79854    }
79855
79856    /// Similar to "send" but does not shutdown the channel if an error occurs.
79857    pub fn send_no_shutdown_on_err(
79858        self,
79859        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79860    ) -> Result<(), fidl::Error> {
79861        let _result = self.send_raw(result);
79862        self.drop_without_shutdown();
79863        _result
79864    }
79865
79866    fn send_raw(
79867        &self,
79868        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79869    ) -> Result<(), fidl::Error> {
79870        self.control_handle.inner.send::<fidl::encoding::ResultType<
79871            fidl::encoding::EmptyStruct,
79872            fidl_fuchsia_posix::Errno,
79873        >>(
79874            result,
79875            self.tx_id,
79876            0x29e2424b433ae1ef,
79877            fidl::encoding::DynamicFlags::empty(),
79878        )
79879    }
79880}
79881
79882#[must_use = "FIDL methods require a response to be sent"]
79883#[derive(Debug)]
79884pub struct SynchronousDatagramSocketGetIpTtlResponder {
79885    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79886    tx_id: u32,
79887}
79888
79889/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79890/// if the responder is dropped without sending a response, so that the client
79891/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79892impl std::ops::Drop for SynchronousDatagramSocketGetIpTtlResponder {
79893    fn drop(&mut self) {
79894        self.control_handle.shutdown();
79895        // Safety: drops once, never accessed again
79896        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79897    }
79898}
79899
79900impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpTtlResponder {
79901    type ControlHandle = SynchronousDatagramSocketControlHandle;
79902
79903    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79904        &self.control_handle
79905    }
79906
79907    fn drop_without_shutdown(mut self) {
79908        // Safety: drops once, never accessed again due to mem::forget
79909        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79910        // Prevent Drop from running (which would shut down the channel)
79911        std::mem::forget(self);
79912    }
79913}
79914
79915impl SynchronousDatagramSocketGetIpTtlResponder {
79916    /// Sends a response to the FIDL transaction.
79917    ///
79918    /// Sets the channel to shutdown if an error occurs.
79919    pub fn send(
79920        self,
79921        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79922    ) -> Result<(), fidl::Error> {
79923        let _result = self.send_raw(result);
79924        if _result.is_err() {
79925            self.control_handle.shutdown();
79926        }
79927        self.drop_without_shutdown();
79928        _result
79929    }
79930
79931    /// Similar to "send" but does not shutdown the channel if an error occurs.
79932    pub fn send_no_shutdown_on_err(
79933        self,
79934        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79935    ) -> Result<(), fidl::Error> {
79936        let _result = self.send_raw(result);
79937        self.drop_without_shutdown();
79938        _result
79939    }
79940
79941    fn send_raw(
79942        &self,
79943        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
79944    ) -> Result<(), fidl::Error> {
79945        self.control_handle.inner.send::<fidl::encoding::ResultType<
79946            BaseNetworkSocketGetIpTtlResponse,
79947            fidl_fuchsia_posix::Errno,
79948        >>(
79949            result.map(|value| (value,)),
79950            self.tx_id,
79951            0x47e47fa1f24da471,
79952            fidl::encoding::DynamicFlags::empty(),
79953        )
79954    }
79955}
79956
79957#[must_use = "FIDL methods require a response to be sent"]
79958#[derive(Debug)]
79959pub struct SynchronousDatagramSocketSetIpPacketInfoResponder {
79960    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
79961    tx_id: u32,
79962}
79963
79964/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
79965/// if the responder is dropped without sending a response, so that the client
79966/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
79967impl std::ops::Drop for SynchronousDatagramSocketSetIpPacketInfoResponder {
79968    fn drop(&mut self) {
79969        self.control_handle.shutdown();
79970        // Safety: drops once, never accessed again
79971        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79972    }
79973}
79974
79975impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpPacketInfoResponder {
79976    type ControlHandle = SynchronousDatagramSocketControlHandle;
79977
79978    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
79979        &self.control_handle
79980    }
79981
79982    fn drop_without_shutdown(mut self) {
79983        // Safety: drops once, never accessed again due to mem::forget
79984        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
79985        // Prevent Drop from running (which would shut down the channel)
79986        std::mem::forget(self);
79987    }
79988}
79989
79990impl SynchronousDatagramSocketSetIpPacketInfoResponder {
79991    /// Sends a response to the FIDL transaction.
79992    ///
79993    /// Sets the channel to shutdown if an error occurs.
79994    pub fn send(
79995        self,
79996        mut result: Result<(), fidl_fuchsia_posix::Errno>,
79997    ) -> Result<(), fidl::Error> {
79998        let _result = self.send_raw(result);
79999        if _result.is_err() {
80000            self.control_handle.shutdown();
80001        }
80002        self.drop_without_shutdown();
80003        _result
80004    }
80005
80006    /// Similar to "send" but does not shutdown the channel if an error occurs.
80007    pub fn send_no_shutdown_on_err(
80008        self,
80009        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80010    ) -> Result<(), fidl::Error> {
80011        let _result = self.send_raw(result);
80012        self.drop_without_shutdown();
80013        _result
80014    }
80015
80016    fn send_raw(
80017        &self,
80018        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80019    ) -> Result<(), fidl::Error> {
80020        self.control_handle.inner.send::<fidl::encoding::ResultType<
80021            fidl::encoding::EmptyStruct,
80022            fidl_fuchsia_posix::Errno,
80023        >>(
80024            result,
80025            self.tx_id,
80026            0x392d16bee20c0e16,
80027            fidl::encoding::DynamicFlags::empty(),
80028        )
80029    }
80030}
80031
80032#[must_use = "FIDL methods require a response to be sent"]
80033#[derive(Debug)]
80034pub struct SynchronousDatagramSocketGetIpPacketInfoResponder {
80035    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80036    tx_id: u32,
80037}
80038
80039/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80040/// if the responder is dropped without sending a response, so that the client
80041/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80042impl std::ops::Drop for SynchronousDatagramSocketGetIpPacketInfoResponder {
80043    fn drop(&mut self) {
80044        self.control_handle.shutdown();
80045        // Safety: drops once, never accessed again
80046        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80047    }
80048}
80049
80050impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpPacketInfoResponder {
80051    type ControlHandle = SynchronousDatagramSocketControlHandle;
80052
80053    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80054        &self.control_handle
80055    }
80056
80057    fn drop_without_shutdown(mut self) {
80058        // Safety: drops once, never accessed again due to mem::forget
80059        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80060        // Prevent Drop from running (which would shut down the channel)
80061        std::mem::forget(self);
80062    }
80063}
80064
80065impl SynchronousDatagramSocketGetIpPacketInfoResponder {
80066    /// Sends a response to the FIDL transaction.
80067    ///
80068    /// Sets the channel to shutdown if an error occurs.
80069    pub fn send(
80070        self,
80071        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80072    ) -> Result<(), fidl::Error> {
80073        let _result = self.send_raw(result);
80074        if _result.is_err() {
80075            self.control_handle.shutdown();
80076        }
80077        self.drop_without_shutdown();
80078        _result
80079    }
80080
80081    /// Similar to "send" but does not shutdown the channel if an error occurs.
80082    pub fn send_no_shutdown_on_err(
80083        self,
80084        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80085    ) -> Result<(), fidl::Error> {
80086        let _result = self.send_raw(result);
80087        self.drop_without_shutdown();
80088        _result
80089    }
80090
80091    fn send_raw(
80092        &self,
80093        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80094    ) -> Result<(), fidl::Error> {
80095        self.control_handle.inner.send::<fidl::encoding::ResultType<
80096            BaseNetworkSocketGetIpPacketInfoResponse,
80097            fidl_fuchsia_posix::Errno,
80098        >>(
80099            result.map(|value| (value,)),
80100            self.tx_id,
80101            0x54b505f242280740,
80102            fidl::encoding::DynamicFlags::empty(),
80103        )
80104    }
80105}
80106
80107#[must_use = "FIDL methods require a response to be sent"]
80108#[derive(Debug)]
80109pub struct SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
80110    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80111    tx_id: u32,
80112}
80113
80114/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80115/// if the responder is dropped without sending a response, so that the client
80116/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80117impl std::ops::Drop for SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
80118    fn drop(&mut self) {
80119        self.control_handle.shutdown();
80120        // Safety: drops once, never accessed again
80121        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80122    }
80123}
80124
80125impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
80126    type ControlHandle = SynchronousDatagramSocketControlHandle;
80127
80128    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80129        &self.control_handle
80130    }
80131
80132    fn drop_without_shutdown(mut self) {
80133        // Safety: drops once, never accessed again due to mem::forget
80134        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80135        // Prevent Drop from running (which would shut down the channel)
80136        std::mem::forget(self);
80137    }
80138}
80139
80140impl SynchronousDatagramSocketSetIpReceiveTypeOfServiceResponder {
80141    /// Sends a response to the FIDL transaction.
80142    ///
80143    /// Sets the channel to shutdown if an error occurs.
80144    pub fn send(
80145        self,
80146        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80147    ) -> Result<(), fidl::Error> {
80148        let _result = self.send_raw(result);
80149        if _result.is_err() {
80150            self.control_handle.shutdown();
80151        }
80152        self.drop_without_shutdown();
80153        _result
80154    }
80155
80156    /// Similar to "send" but does not shutdown the channel if an error occurs.
80157    pub fn send_no_shutdown_on_err(
80158        self,
80159        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80160    ) -> Result<(), fidl::Error> {
80161        let _result = self.send_raw(result);
80162        self.drop_without_shutdown();
80163        _result
80164    }
80165
80166    fn send_raw(
80167        &self,
80168        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80169    ) -> Result<(), fidl::Error> {
80170        self.control_handle.inner.send::<fidl::encoding::ResultType<
80171            fidl::encoding::EmptyStruct,
80172            fidl_fuchsia_posix::Errno,
80173        >>(
80174            result,
80175            self.tx_id,
80176            0x6c4f6714995f84ef,
80177            fidl::encoding::DynamicFlags::empty(),
80178        )
80179    }
80180}
80181
80182#[must_use = "FIDL methods require a response to be sent"]
80183#[derive(Debug)]
80184pub struct SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
80185    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80186    tx_id: u32,
80187}
80188
80189/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80190/// if the responder is dropped without sending a response, so that the client
80191/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80192impl std::ops::Drop for SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
80193    fn drop(&mut self) {
80194        self.control_handle.shutdown();
80195        // Safety: drops once, never accessed again
80196        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80197    }
80198}
80199
80200impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
80201    type ControlHandle = SynchronousDatagramSocketControlHandle;
80202
80203    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80204        &self.control_handle
80205    }
80206
80207    fn drop_without_shutdown(mut self) {
80208        // Safety: drops once, never accessed again due to mem::forget
80209        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80210        // Prevent Drop from running (which would shut down the channel)
80211        std::mem::forget(self);
80212    }
80213}
80214
80215impl SynchronousDatagramSocketGetIpReceiveTypeOfServiceResponder {
80216    /// Sends a response to the FIDL transaction.
80217    ///
80218    /// Sets the channel to shutdown if an error occurs.
80219    pub fn send(
80220        self,
80221        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80222    ) -> Result<(), fidl::Error> {
80223        let _result = self.send_raw(result);
80224        if _result.is_err() {
80225            self.control_handle.shutdown();
80226        }
80227        self.drop_without_shutdown();
80228        _result
80229    }
80230
80231    /// Similar to "send" but does not shutdown the channel if an error occurs.
80232    pub fn send_no_shutdown_on_err(
80233        self,
80234        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80235    ) -> Result<(), fidl::Error> {
80236        let _result = self.send_raw(result);
80237        self.drop_without_shutdown();
80238        _result
80239    }
80240
80241    fn send_raw(
80242        &self,
80243        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80244    ) -> Result<(), fidl::Error> {
80245        self.control_handle.inner.send::<fidl::encoding::ResultType<
80246            BaseNetworkSocketGetIpReceiveTypeOfServiceResponse,
80247            fidl_fuchsia_posix::Errno,
80248        >>(
80249            result.map(|value| (value,)),
80250            self.tx_id,
80251            0x4158ba7dc2795960,
80252            fidl::encoding::DynamicFlags::empty(),
80253        )
80254    }
80255}
80256
80257#[must_use = "FIDL methods require a response to be sent"]
80258#[derive(Debug)]
80259pub struct SynchronousDatagramSocketSetIpReceiveTtlResponder {
80260    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80261    tx_id: u32,
80262}
80263
80264/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80265/// if the responder is dropped without sending a response, so that the client
80266/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80267impl std::ops::Drop for SynchronousDatagramSocketSetIpReceiveTtlResponder {
80268    fn drop(&mut self) {
80269        self.control_handle.shutdown();
80270        // Safety: drops once, never accessed again
80271        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80272    }
80273}
80274
80275impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpReceiveTtlResponder {
80276    type ControlHandle = SynchronousDatagramSocketControlHandle;
80277
80278    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80279        &self.control_handle
80280    }
80281
80282    fn drop_without_shutdown(mut self) {
80283        // Safety: drops once, never accessed again due to mem::forget
80284        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80285        // Prevent Drop from running (which would shut down the channel)
80286        std::mem::forget(self);
80287    }
80288}
80289
80290impl SynchronousDatagramSocketSetIpReceiveTtlResponder {
80291    /// Sends a response to the FIDL transaction.
80292    ///
80293    /// Sets the channel to shutdown if an error occurs.
80294    pub fn send(
80295        self,
80296        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80297    ) -> Result<(), fidl::Error> {
80298        let _result = self.send_raw(result);
80299        if _result.is_err() {
80300            self.control_handle.shutdown();
80301        }
80302        self.drop_without_shutdown();
80303        _result
80304    }
80305
80306    /// Similar to "send" but does not shutdown the channel if an error occurs.
80307    pub fn send_no_shutdown_on_err(
80308        self,
80309        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80310    ) -> Result<(), fidl::Error> {
80311        let _result = self.send_raw(result);
80312        self.drop_without_shutdown();
80313        _result
80314    }
80315
80316    fn send_raw(
80317        &self,
80318        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80319    ) -> Result<(), fidl::Error> {
80320        self.control_handle.inner.send::<fidl::encoding::ResultType<
80321            fidl::encoding::EmptyStruct,
80322            fidl_fuchsia_posix::Errno,
80323        >>(
80324            result,
80325            self.tx_id,
80326            0x46f15be0ce0ab82b,
80327            fidl::encoding::DynamicFlags::empty(),
80328        )
80329    }
80330}
80331
80332#[must_use = "FIDL methods require a response to be sent"]
80333#[derive(Debug)]
80334pub struct SynchronousDatagramSocketGetIpReceiveTtlResponder {
80335    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80336    tx_id: u32,
80337}
80338
80339/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80340/// if the responder is dropped without sending a response, so that the client
80341/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80342impl std::ops::Drop for SynchronousDatagramSocketGetIpReceiveTtlResponder {
80343    fn drop(&mut self) {
80344        self.control_handle.shutdown();
80345        // Safety: drops once, never accessed again
80346        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80347    }
80348}
80349
80350impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpReceiveTtlResponder {
80351    type ControlHandle = SynchronousDatagramSocketControlHandle;
80352
80353    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80354        &self.control_handle
80355    }
80356
80357    fn drop_without_shutdown(mut self) {
80358        // Safety: drops once, never accessed again due to mem::forget
80359        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80360        // Prevent Drop from running (which would shut down the channel)
80361        std::mem::forget(self);
80362    }
80363}
80364
80365impl SynchronousDatagramSocketGetIpReceiveTtlResponder {
80366    /// Sends a response to the FIDL transaction.
80367    ///
80368    /// Sets the channel to shutdown if an error occurs.
80369    pub fn send(
80370        self,
80371        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80372    ) -> Result<(), fidl::Error> {
80373        let _result = self.send_raw(result);
80374        if _result.is_err() {
80375            self.control_handle.shutdown();
80376        }
80377        self.drop_without_shutdown();
80378        _result
80379    }
80380
80381    /// Similar to "send" but does not shutdown the channel if an error occurs.
80382    pub fn send_no_shutdown_on_err(
80383        self,
80384        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80385    ) -> Result<(), fidl::Error> {
80386        let _result = self.send_raw(result);
80387        self.drop_without_shutdown();
80388        _result
80389    }
80390
80391    fn send_raw(
80392        &self,
80393        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80394    ) -> Result<(), fidl::Error> {
80395        self.control_handle.inner.send::<fidl::encoding::ResultType<
80396            BaseNetworkSocketGetIpReceiveTtlResponse,
80397            fidl_fuchsia_posix::Errno,
80398        >>(
80399            result.map(|value| (value,)),
80400            self.tx_id,
80401            0x678ddd5a5dfa2eb5,
80402            fidl::encoding::DynamicFlags::empty(),
80403        )
80404    }
80405}
80406
80407#[must_use = "FIDL methods require a response to be sent"]
80408#[derive(Debug)]
80409pub struct SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
80410    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80411    tx_id: u32,
80412}
80413
80414/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80415/// if the responder is dropped without sending a response, so that the client
80416/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80417impl std::ops::Drop for SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
80418    fn drop(&mut self) {
80419        self.control_handle.shutdown();
80420        // Safety: drops once, never accessed again
80421        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80422    }
80423}
80424
80425impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
80426    type ControlHandle = SynchronousDatagramSocketControlHandle;
80427
80428    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80429        &self.control_handle
80430    }
80431
80432    fn drop_without_shutdown(mut self) {
80433        // Safety: drops once, never accessed again due to mem::forget
80434        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80435        // Prevent Drop from running (which would shut down the channel)
80436        std::mem::forget(self);
80437    }
80438}
80439
80440impl SynchronousDatagramSocketSetIpMulticastInterfaceResponder {
80441    /// Sends a response to the FIDL transaction.
80442    ///
80443    /// Sets the channel to shutdown if an error occurs.
80444    pub fn send(
80445        self,
80446        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80447    ) -> Result<(), fidl::Error> {
80448        let _result = self.send_raw(result);
80449        if _result.is_err() {
80450            self.control_handle.shutdown();
80451        }
80452        self.drop_without_shutdown();
80453        _result
80454    }
80455
80456    /// Similar to "send" but does not shutdown the channel if an error occurs.
80457    pub fn send_no_shutdown_on_err(
80458        self,
80459        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80460    ) -> Result<(), fidl::Error> {
80461        let _result = self.send_raw(result);
80462        self.drop_without_shutdown();
80463        _result
80464    }
80465
80466    fn send_raw(
80467        &self,
80468        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80469    ) -> Result<(), fidl::Error> {
80470        self.control_handle.inner.send::<fidl::encoding::ResultType<
80471            fidl::encoding::EmptyStruct,
80472            fidl_fuchsia_posix::Errno,
80473        >>(
80474            result,
80475            self.tx_id,
80476            0x752fbfa9b12befe,
80477            fidl::encoding::DynamicFlags::empty(),
80478        )
80479    }
80480}
80481
80482#[must_use = "FIDL methods require a response to be sent"]
80483#[derive(Debug)]
80484pub struct SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
80485    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80486    tx_id: u32,
80487}
80488
80489/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80490/// if the responder is dropped without sending a response, so that the client
80491/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80492impl std::ops::Drop for SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
80493    fn drop(&mut self) {
80494        self.control_handle.shutdown();
80495        // Safety: drops once, never accessed again
80496        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80497    }
80498}
80499
80500impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
80501    type ControlHandle = SynchronousDatagramSocketControlHandle;
80502
80503    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80504        &self.control_handle
80505    }
80506
80507    fn drop_without_shutdown(mut self) {
80508        // Safety: drops once, never accessed again due to mem::forget
80509        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80510        // Prevent Drop from running (which would shut down the channel)
80511        std::mem::forget(self);
80512    }
80513}
80514
80515impl SynchronousDatagramSocketGetIpMulticastInterfaceResponder {
80516    /// Sends a response to the FIDL transaction.
80517    ///
80518    /// Sets the channel to shutdown if an error occurs.
80519    pub fn send(
80520        self,
80521        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
80522    ) -> Result<(), fidl::Error> {
80523        let _result = self.send_raw(result);
80524        if _result.is_err() {
80525            self.control_handle.shutdown();
80526        }
80527        self.drop_without_shutdown();
80528        _result
80529    }
80530
80531    /// Similar to "send" but does not shutdown the channel if an error occurs.
80532    pub fn send_no_shutdown_on_err(
80533        self,
80534        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
80535    ) -> Result<(), fidl::Error> {
80536        let _result = self.send_raw(result);
80537        self.drop_without_shutdown();
80538        _result
80539    }
80540
80541    fn send_raw(
80542        &self,
80543        mut result: Result<&fidl_fuchsia_net::Ipv4Address, fidl_fuchsia_posix::Errno>,
80544    ) -> Result<(), fidl::Error> {
80545        self.control_handle.inner.send::<fidl::encoding::ResultType<
80546            BaseNetworkSocketGetIpMulticastInterfaceResponse,
80547            fidl_fuchsia_posix::Errno,
80548        >>(
80549            result.map(|value| (value,)),
80550            self.tx_id,
80551            0x320bd14c4df046c4,
80552            fidl::encoding::DynamicFlags::empty(),
80553        )
80554    }
80555}
80556
80557#[must_use = "FIDL methods require a response to be sent"]
80558#[derive(Debug)]
80559pub struct SynchronousDatagramSocketSetIpMulticastTtlResponder {
80560    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80561    tx_id: u32,
80562}
80563
80564/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80565/// if the responder is dropped without sending a response, so that the client
80566/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80567impl std::ops::Drop for SynchronousDatagramSocketSetIpMulticastTtlResponder {
80568    fn drop(&mut self) {
80569        self.control_handle.shutdown();
80570        // Safety: drops once, never accessed again
80571        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80572    }
80573}
80574
80575impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpMulticastTtlResponder {
80576    type ControlHandle = SynchronousDatagramSocketControlHandle;
80577
80578    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80579        &self.control_handle
80580    }
80581
80582    fn drop_without_shutdown(mut self) {
80583        // Safety: drops once, never accessed again due to mem::forget
80584        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80585        // Prevent Drop from running (which would shut down the channel)
80586        std::mem::forget(self);
80587    }
80588}
80589
80590impl SynchronousDatagramSocketSetIpMulticastTtlResponder {
80591    /// Sends a response to the FIDL transaction.
80592    ///
80593    /// Sets the channel to shutdown if an error occurs.
80594    pub fn send(
80595        self,
80596        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80597    ) -> Result<(), fidl::Error> {
80598        let _result = self.send_raw(result);
80599        if _result.is_err() {
80600            self.control_handle.shutdown();
80601        }
80602        self.drop_without_shutdown();
80603        _result
80604    }
80605
80606    /// Similar to "send" but does not shutdown the channel if an error occurs.
80607    pub fn send_no_shutdown_on_err(
80608        self,
80609        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80610    ) -> Result<(), fidl::Error> {
80611        let _result = self.send_raw(result);
80612        self.drop_without_shutdown();
80613        _result
80614    }
80615
80616    fn send_raw(
80617        &self,
80618        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80619    ) -> Result<(), fidl::Error> {
80620        self.control_handle.inner.send::<fidl::encoding::ResultType<
80621            fidl::encoding::EmptyStruct,
80622            fidl_fuchsia_posix::Errno,
80623        >>(
80624            result,
80625            self.tx_id,
80626            0x63134d53772916a1,
80627            fidl::encoding::DynamicFlags::empty(),
80628        )
80629    }
80630}
80631
80632#[must_use = "FIDL methods require a response to be sent"]
80633#[derive(Debug)]
80634pub struct SynchronousDatagramSocketGetIpMulticastTtlResponder {
80635    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80636    tx_id: u32,
80637}
80638
80639/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80640/// if the responder is dropped without sending a response, so that the client
80641/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80642impl std::ops::Drop for SynchronousDatagramSocketGetIpMulticastTtlResponder {
80643    fn drop(&mut self) {
80644        self.control_handle.shutdown();
80645        // Safety: drops once, never accessed again
80646        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80647    }
80648}
80649
80650impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpMulticastTtlResponder {
80651    type ControlHandle = SynchronousDatagramSocketControlHandle;
80652
80653    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80654        &self.control_handle
80655    }
80656
80657    fn drop_without_shutdown(mut self) {
80658        // Safety: drops once, never accessed again due to mem::forget
80659        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80660        // Prevent Drop from running (which would shut down the channel)
80661        std::mem::forget(self);
80662    }
80663}
80664
80665impl SynchronousDatagramSocketGetIpMulticastTtlResponder {
80666    /// Sends a response to the FIDL transaction.
80667    ///
80668    /// Sets the channel to shutdown if an error occurs.
80669    pub fn send(
80670        self,
80671        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
80672    ) -> Result<(), fidl::Error> {
80673        let _result = self.send_raw(result);
80674        if _result.is_err() {
80675            self.control_handle.shutdown();
80676        }
80677        self.drop_without_shutdown();
80678        _result
80679    }
80680
80681    /// Similar to "send" but does not shutdown the channel if an error occurs.
80682    pub fn send_no_shutdown_on_err(
80683        self,
80684        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
80685    ) -> Result<(), fidl::Error> {
80686        let _result = self.send_raw(result);
80687        self.drop_without_shutdown();
80688        _result
80689    }
80690
80691    fn send_raw(
80692        &self,
80693        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
80694    ) -> Result<(), fidl::Error> {
80695        self.control_handle.inner.send::<fidl::encoding::ResultType<
80696            BaseNetworkSocketGetIpMulticastTtlResponse,
80697            fidl_fuchsia_posix::Errno,
80698        >>(
80699            result.map(|value| (value,)),
80700            self.tx_id,
80701            0x4665cd378f39e1a,
80702            fidl::encoding::DynamicFlags::empty(),
80703        )
80704    }
80705}
80706
80707#[must_use = "FIDL methods require a response to be sent"]
80708#[derive(Debug)]
80709pub struct SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
80710    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80711    tx_id: u32,
80712}
80713
80714/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80715/// if the responder is dropped without sending a response, so that the client
80716/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80717impl std::ops::Drop for SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
80718    fn drop(&mut self) {
80719        self.control_handle.shutdown();
80720        // Safety: drops once, never accessed again
80721        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80722    }
80723}
80724
80725impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
80726    type ControlHandle = SynchronousDatagramSocketControlHandle;
80727
80728    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80729        &self.control_handle
80730    }
80731
80732    fn drop_without_shutdown(mut self) {
80733        // Safety: drops once, never accessed again due to mem::forget
80734        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80735        // Prevent Drop from running (which would shut down the channel)
80736        std::mem::forget(self);
80737    }
80738}
80739
80740impl SynchronousDatagramSocketSetIpMulticastLoopbackResponder {
80741    /// Sends a response to the FIDL transaction.
80742    ///
80743    /// Sets the channel to shutdown if an error occurs.
80744    pub fn send(
80745        self,
80746        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80747    ) -> Result<(), fidl::Error> {
80748        let _result = self.send_raw(result);
80749        if _result.is_err() {
80750            self.control_handle.shutdown();
80751        }
80752        self.drop_without_shutdown();
80753        _result
80754    }
80755
80756    /// Similar to "send" but does not shutdown the channel if an error occurs.
80757    pub fn send_no_shutdown_on_err(
80758        self,
80759        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80760    ) -> Result<(), fidl::Error> {
80761        let _result = self.send_raw(result);
80762        self.drop_without_shutdown();
80763        _result
80764    }
80765
80766    fn send_raw(
80767        &self,
80768        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80769    ) -> Result<(), fidl::Error> {
80770        self.control_handle.inner.send::<fidl::encoding::ResultType<
80771            fidl::encoding::EmptyStruct,
80772            fidl_fuchsia_posix::Errno,
80773        >>(
80774            result,
80775            self.tx_id,
80776            0x20c55c11f00943ea,
80777            fidl::encoding::DynamicFlags::empty(),
80778        )
80779    }
80780}
80781
80782#[must_use = "FIDL methods require a response to be sent"]
80783#[derive(Debug)]
80784pub struct SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
80785    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80786    tx_id: u32,
80787}
80788
80789/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80790/// if the responder is dropped without sending a response, so that the client
80791/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80792impl std::ops::Drop for SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
80793    fn drop(&mut self) {
80794        self.control_handle.shutdown();
80795        // Safety: drops once, never accessed again
80796        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80797    }
80798}
80799
80800impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
80801    type ControlHandle = SynchronousDatagramSocketControlHandle;
80802
80803    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80804        &self.control_handle
80805    }
80806
80807    fn drop_without_shutdown(mut self) {
80808        // Safety: drops once, never accessed again due to mem::forget
80809        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80810        // Prevent Drop from running (which would shut down the channel)
80811        std::mem::forget(self);
80812    }
80813}
80814
80815impl SynchronousDatagramSocketGetIpMulticastLoopbackResponder {
80816    /// Sends a response to the FIDL transaction.
80817    ///
80818    /// Sets the channel to shutdown if an error occurs.
80819    pub fn send(
80820        self,
80821        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80822    ) -> Result<(), fidl::Error> {
80823        let _result = self.send_raw(result);
80824        if _result.is_err() {
80825            self.control_handle.shutdown();
80826        }
80827        self.drop_without_shutdown();
80828        _result
80829    }
80830
80831    /// Similar to "send" but does not shutdown the channel if an error occurs.
80832    pub fn send_no_shutdown_on_err(
80833        self,
80834        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80835    ) -> Result<(), fidl::Error> {
80836        let _result = self.send_raw(result);
80837        self.drop_without_shutdown();
80838        _result
80839    }
80840
80841    fn send_raw(
80842        &self,
80843        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
80844    ) -> Result<(), fidl::Error> {
80845        self.control_handle.inner.send::<fidl::encoding::ResultType<
80846            BaseNetworkSocketGetIpMulticastLoopbackResponse,
80847            fidl_fuchsia_posix::Errno,
80848        >>(
80849            result.map(|value| (value,)),
80850            self.tx_id,
80851            0x3b6b26ff558298f2,
80852            fidl::encoding::DynamicFlags::empty(),
80853        )
80854    }
80855}
80856
80857#[must_use = "FIDL methods require a response to be sent"]
80858#[derive(Debug)]
80859pub struct SynchronousDatagramSocketAddIpMembershipResponder {
80860    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80861    tx_id: u32,
80862}
80863
80864/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80865/// if the responder is dropped without sending a response, so that the client
80866/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80867impl std::ops::Drop for SynchronousDatagramSocketAddIpMembershipResponder {
80868    fn drop(&mut self) {
80869        self.control_handle.shutdown();
80870        // Safety: drops once, never accessed again
80871        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80872    }
80873}
80874
80875impl fidl::endpoints::Responder for SynchronousDatagramSocketAddIpMembershipResponder {
80876    type ControlHandle = SynchronousDatagramSocketControlHandle;
80877
80878    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80879        &self.control_handle
80880    }
80881
80882    fn drop_without_shutdown(mut self) {
80883        // Safety: drops once, never accessed again due to mem::forget
80884        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80885        // Prevent Drop from running (which would shut down the channel)
80886        std::mem::forget(self);
80887    }
80888}
80889
80890impl SynchronousDatagramSocketAddIpMembershipResponder {
80891    /// Sends a response to the FIDL transaction.
80892    ///
80893    /// Sets the channel to shutdown if an error occurs.
80894    pub fn send(
80895        self,
80896        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80897    ) -> Result<(), fidl::Error> {
80898        let _result = self.send_raw(result);
80899        if _result.is_err() {
80900            self.control_handle.shutdown();
80901        }
80902        self.drop_without_shutdown();
80903        _result
80904    }
80905
80906    /// Similar to "send" but does not shutdown the channel if an error occurs.
80907    pub fn send_no_shutdown_on_err(
80908        self,
80909        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80910    ) -> Result<(), fidl::Error> {
80911        let _result = self.send_raw(result);
80912        self.drop_without_shutdown();
80913        _result
80914    }
80915
80916    fn send_raw(
80917        &self,
80918        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80919    ) -> Result<(), fidl::Error> {
80920        self.control_handle.inner.send::<fidl::encoding::ResultType<
80921            fidl::encoding::EmptyStruct,
80922            fidl_fuchsia_posix::Errno,
80923        >>(
80924            result,
80925            self.tx_id,
80926            0x76bc7df115a3b4d0,
80927            fidl::encoding::DynamicFlags::empty(),
80928        )
80929    }
80930}
80931
80932#[must_use = "FIDL methods require a response to be sent"]
80933#[derive(Debug)]
80934pub struct SynchronousDatagramSocketDropIpMembershipResponder {
80935    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
80936    tx_id: u32,
80937}
80938
80939/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
80940/// if the responder is dropped without sending a response, so that the client
80941/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
80942impl std::ops::Drop for SynchronousDatagramSocketDropIpMembershipResponder {
80943    fn drop(&mut self) {
80944        self.control_handle.shutdown();
80945        // Safety: drops once, never accessed again
80946        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80947    }
80948}
80949
80950impl fidl::endpoints::Responder for SynchronousDatagramSocketDropIpMembershipResponder {
80951    type ControlHandle = SynchronousDatagramSocketControlHandle;
80952
80953    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
80954        &self.control_handle
80955    }
80956
80957    fn drop_without_shutdown(mut self) {
80958        // Safety: drops once, never accessed again due to mem::forget
80959        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
80960        // Prevent Drop from running (which would shut down the channel)
80961        std::mem::forget(self);
80962    }
80963}
80964
80965impl SynchronousDatagramSocketDropIpMembershipResponder {
80966    /// Sends a response to the FIDL transaction.
80967    ///
80968    /// Sets the channel to shutdown if an error occurs.
80969    pub fn send(
80970        self,
80971        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80972    ) -> Result<(), fidl::Error> {
80973        let _result = self.send_raw(result);
80974        if _result.is_err() {
80975            self.control_handle.shutdown();
80976        }
80977        self.drop_without_shutdown();
80978        _result
80979    }
80980
80981    /// Similar to "send" but does not shutdown the channel if an error occurs.
80982    pub fn send_no_shutdown_on_err(
80983        self,
80984        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80985    ) -> Result<(), fidl::Error> {
80986        let _result = self.send_raw(result);
80987        self.drop_without_shutdown();
80988        _result
80989    }
80990
80991    fn send_raw(
80992        &self,
80993        mut result: Result<(), fidl_fuchsia_posix::Errno>,
80994    ) -> Result<(), fidl::Error> {
80995        self.control_handle.inner.send::<fidl::encoding::ResultType<
80996            fidl::encoding::EmptyStruct,
80997            fidl_fuchsia_posix::Errno,
80998        >>(
80999            result,
81000            self.tx_id,
81001            0x2888f3099188d03,
81002            fidl::encoding::DynamicFlags::empty(),
81003        )
81004    }
81005}
81006
81007#[must_use = "FIDL methods require a response to be sent"]
81008#[derive(Debug)]
81009pub struct SynchronousDatagramSocketSetIpTransparentResponder {
81010    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81011    tx_id: u32,
81012}
81013
81014/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81015/// if the responder is dropped without sending a response, so that the client
81016/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81017impl std::ops::Drop for SynchronousDatagramSocketSetIpTransparentResponder {
81018    fn drop(&mut self) {
81019        self.control_handle.shutdown();
81020        // Safety: drops once, never accessed again
81021        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81022    }
81023}
81024
81025impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpTransparentResponder {
81026    type ControlHandle = SynchronousDatagramSocketControlHandle;
81027
81028    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81029        &self.control_handle
81030    }
81031
81032    fn drop_without_shutdown(mut self) {
81033        // Safety: drops once, never accessed again due to mem::forget
81034        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81035        // Prevent Drop from running (which would shut down the channel)
81036        std::mem::forget(self);
81037    }
81038}
81039
81040impl SynchronousDatagramSocketSetIpTransparentResponder {
81041    /// Sends a response to the FIDL transaction.
81042    ///
81043    /// Sets the channel to shutdown if an error occurs.
81044    pub fn send(
81045        self,
81046        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81047    ) -> Result<(), fidl::Error> {
81048        let _result = self.send_raw(result);
81049        if _result.is_err() {
81050            self.control_handle.shutdown();
81051        }
81052        self.drop_without_shutdown();
81053        _result
81054    }
81055
81056    /// Similar to "send" but does not shutdown the channel if an error occurs.
81057    pub fn send_no_shutdown_on_err(
81058        self,
81059        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81060    ) -> Result<(), fidl::Error> {
81061        let _result = self.send_raw(result);
81062        self.drop_without_shutdown();
81063        _result
81064    }
81065
81066    fn send_raw(
81067        &self,
81068        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81069    ) -> Result<(), fidl::Error> {
81070        self.control_handle.inner.send::<fidl::encoding::ResultType<
81071            fidl::encoding::EmptyStruct,
81072            fidl_fuchsia_posix::Errno,
81073        >>(
81074            result,
81075            self.tx_id,
81076            0x1ae532b0c066e3a0,
81077            fidl::encoding::DynamicFlags::empty(),
81078        )
81079    }
81080}
81081
81082#[must_use = "FIDL methods require a response to be sent"]
81083#[derive(Debug)]
81084pub struct SynchronousDatagramSocketGetIpTransparentResponder {
81085    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81086    tx_id: u32,
81087}
81088
81089/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81090/// if the responder is dropped without sending a response, so that the client
81091/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81092impl std::ops::Drop for SynchronousDatagramSocketGetIpTransparentResponder {
81093    fn drop(&mut self) {
81094        self.control_handle.shutdown();
81095        // Safety: drops once, never accessed again
81096        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81097    }
81098}
81099
81100impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpTransparentResponder {
81101    type ControlHandle = SynchronousDatagramSocketControlHandle;
81102
81103    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81104        &self.control_handle
81105    }
81106
81107    fn drop_without_shutdown(mut self) {
81108        // Safety: drops once, never accessed again due to mem::forget
81109        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81110        // Prevent Drop from running (which would shut down the channel)
81111        std::mem::forget(self);
81112    }
81113}
81114
81115impl SynchronousDatagramSocketGetIpTransparentResponder {
81116    /// Sends a response to the FIDL transaction.
81117    ///
81118    /// Sets the channel to shutdown if an error occurs.
81119    pub fn send(
81120        self,
81121        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81122    ) -> Result<(), fidl::Error> {
81123        let _result = self.send_raw(result);
81124        if _result.is_err() {
81125            self.control_handle.shutdown();
81126        }
81127        self.drop_without_shutdown();
81128        _result
81129    }
81130
81131    /// Similar to "send" but does not shutdown the channel if an error occurs.
81132    pub fn send_no_shutdown_on_err(
81133        self,
81134        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81135    ) -> Result<(), fidl::Error> {
81136        let _result = self.send_raw(result);
81137        self.drop_without_shutdown();
81138        _result
81139    }
81140
81141    fn send_raw(
81142        &self,
81143        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81144    ) -> Result<(), fidl::Error> {
81145        self.control_handle.inner.send::<fidl::encoding::ResultType<
81146            BaseNetworkSocketGetIpTransparentResponse,
81147            fidl_fuchsia_posix::Errno,
81148        >>(
81149            result.map(|value| (value,)),
81150            self.tx_id,
81151            0x51d43695962ebfb5,
81152            fidl::encoding::DynamicFlags::empty(),
81153        )
81154    }
81155}
81156
81157#[must_use = "FIDL methods require a response to be sent"]
81158#[derive(Debug)]
81159pub struct SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
81160    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81161    tx_id: u32,
81162}
81163
81164/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81165/// if the responder is dropped without sending a response, so that the client
81166/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81167impl std::ops::Drop for SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
81168    fn drop(&mut self) {
81169        self.control_handle.shutdown();
81170        // Safety: drops once, never accessed again
81171        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81172    }
81173}
81174
81175impl fidl::endpoints::Responder
81176    for SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder
81177{
81178    type ControlHandle = SynchronousDatagramSocketControlHandle;
81179
81180    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81181        &self.control_handle
81182    }
81183
81184    fn drop_without_shutdown(mut self) {
81185        // Safety: drops once, never accessed again due to mem::forget
81186        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81187        // Prevent Drop from running (which would shut down the channel)
81188        std::mem::forget(self);
81189    }
81190}
81191
81192impl SynchronousDatagramSocketSetIpReceiveOriginalDestinationAddressResponder {
81193    /// Sends a response to the FIDL transaction.
81194    ///
81195    /// Sets the channel to shutdown if an error occurs.
81196    pub fn send(
81197        self,
81198        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81199    ) -> Result<(), fidl::Error> {
81200        let _result = self.send_raw(result);
81201        if _result.is_err() {
81202            self.control_handle.shutdown();
81203        }
81204        self.drop_without_shutdown();
81205        _result
81206    }
81207
81208    /// Similar to "send" but does not shutdown the channel if an error occurs.
81209    pub fn send_no_shutdown_on_err(
81210        self,
81211        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81212    ) -> Result<(), fidl::Error> {
81213        let _result = self.send_raw(result);
81214        self.drop_without_shutdown();
81215        _result
81216    }
81217
81218    fn send_raw(
81219        &self,
81220        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81221    ) -> Result<(), fidl::Error> {
81222        self.control_handle.inner.send::<fidl::encoding::ResultType<
81223            fidl::encoding::EmptyStruct,
81224            fidl_fuchsia_posix::Errno,
81225        >>(
81226            result,
81227            self.tx_id,
81228            0x4722b4ce52f7840,
81229            fidl::encoding::DynamicFlags::empty(),
81230        )
81231    }
81232}
81233
81234#[must_use = "FIDL methods require a response to be sent"]
81235#[derive(Debug)]
81236pub struct SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
81237    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81238    tx_id: u32,
81239}
81240
81241/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81242/// if the responder is dropped without sending a response, so that the client
81243/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81244impl std::ops::Drop for SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
81245    fn drop(&mut self) {
81246        self.control_handle.shutdown();
81247        // Safety: drops once, never accessed again
81248        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81249    }
81250}
81251
81252impl fidl::endpoints::Responder
81253    for SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder
81254{
81255    type ControlHandle = SynchronousDatagramSocketControlHandle;
81256
81257    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81258        &self.control_handle
81259    }
81260
81261    fn drop_without_shutdown(mut self) {
81262        // Safety: drops once, never accessed again due to mem::forget
81263        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81264        // Prevent Drop from running (which would shut down the channel)
81265        std::mem::forget(self);
81266    }
81267}
81268
81269impl SynchronousDatagramSocketGetIpReceiveOriginalDestinationAddressResponder {
81270    /// Sends a response to the FIDL transaction.
81271    ///
81272    /// Sets the channel to shutdown if an error occurs.
81273    pub fn send(
81274        self,
81275        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81276    ) -> Result<(), fidl::Error> {
81277        let _result = self.send_raw(result);
81278        if _result.is_err() {
81279            self.control_handle.shutdown();
81280        }
81281        self.drop_without_shutdown();
81282        _result
81283    }
81284
81285    /// Similar to "send" but does not shutdown the channel if an error occurs.
81286    pub fn send_no_shutdown_on_err(
81287        self,
81288        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81289    ) -> Result<(), fidl::Error> {
81290        let _result = self.send_raw(result);
81291        self.drop_without_shutdown();
81292        _result
81293    }
81294
81295    fn send_raw(
81296        &self,
81297        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81298    ) -> Result<(), fidl::Error> {
81299        self.control_handle.inner.send::<fidl::encoding::ResultType<
81300            BaseNetworkSocketGetIpReceiveOriginalDestinationAddressResponse,
81301            fidl_fuchsia_posix::Errno,
81302        >>(
81303            result.map(|value| (value,)),
81304            self.tx_id,
81305            0x2a0e7dc5d6bfdfe9,
81306            fidl::encoding::DynamicFlags::empty(),
81307        )
81308    }
81309}
81310
81311#[must_use = "FIDL methods require a response to be sent"]
81312#[derive(Debug)]
81313pub struct SynchronousDatagramSocketAddIpv6MembershipResponder {
81314    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81315    tx_id: u32,
81316}
81317
81318/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81319/// if the responder is dropped without sending a response, so that the client
81320/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81321impl std::ops::Drop for SynchronousDatagramSocketAddIpv6MembershipResponder {
81322    fn drop(&mut self) {
81323        self.control_handle.shutdown();
81324        // Safety: drops once, never accessed again
81325        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81326    }
81327}
81328
81329impl fidl::endpoints::Responder for SynchronousDatagramSocketAddIpv6MembershipResponder {
81330    type ControlHandle = SynchronousDatagramSocketControlHandle;
81331
81332    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81333        &self.control_handle
81334    }
81335
81336    fn drop_without_shutdown(mut self) {
81337        // Safety: drops once, never accessed again due to mem::forget
81338        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81339        // Prevent Drop from running (which would shut down the channel)
81340        std::mem::forget(self);
81341    }
81342}
81343
81344impl SynchronousDatagramSocketAddIpv6MembershipResponder {
81345    /// Sends a response to the FIDL transaction.
81346    ///
81347    /// Sets the channel to shutdown if an error occurs.
81348    pub fn send(
81349        self,
81350        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81351    ) -> Result<(), fidl::Error> {
81352        let _result = self.send_raw(result);
81353        if _result.is_err() {
81354            self.control_handle.shutdown();
81355        }
81356        self.drop_without_shutdown();
81357        _result
81358    }
81359
81360    /// Similar to "send" but does not shutdown the channel if an error occurs.
81361    pub fn send_no_shutdown_on_err(
81362        self,
81363        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81364    ) -> Result<(), fidl::Error> {
81365        let _result = self.send_raw(result);
81366        self.drop_without_shutdown();
81367        _result
81368    }
81369
81370    fn send_raw(
81371        &self,
81372        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81373    ) -> Result<(), fidl::Error> {
81374        self.control_handle.inner.send::<fidl::encoding::ResultType<
81375            fidl::encoding::EmptyStruct,
81376            fidl_fuchsia_posix::Errno,
81377        >>(
81378            result,
81379            self.tx_id,
81380            0x7c94727acb4ea4b3,
81381            fidl::encoding::DynamicFlags::empty(),
81382        )
81383    }
81384}
81385
81386#[must_use = "FIDL methods require a response to be sent"]
81387#[derive(Debug)]
81388pub struct SynchronousDatagramSocketDropIpv6MembershipResponder {
81389    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81390    tx_id: u32,
81391}
81392
81393/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81394/// if the responder is dropped without sending a response, so that the client
81395/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81396impl std::ops::Drop for SynchronousDatagramSocketDropIpv6MembershipResponder {
81397    fn drop(&mut self) {
81398        self.control_handle.shutdown();
81399        // Safety: drops once, never accessed again
81400        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81401    }
81402}
81403
81404impl fidl::endpoints::Responder for SynchronousDatagramSocketDropIpv6MembershipResponder {
81405    type ControlHandle = SynchronousDatagramSocketControlHandle;
81406
81407    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81408        &self.control_handle
81409    }
81410
81411    fn drop_without_shutdown(mut self) {
81412        // Safety: drops once, never accessed again due to mem::forget
81413        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81414        // Prevent Drop from running (which would shut down the channel)
81415        std::mem::forget(self);
81416    }
81417}
81418
81419impl SynchronousDatagramSocketDropIpv6MembershipResponder {
81420    /// Sends a response to the FIDL transaction.
81421    ///
81422    /// Sets the channel to shutdown if an error occurs.
81423    pub fn send(
81424        self,
81425        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81426    ) -> Result<(), fidl::Error> {
81427        let _result = self.send_raw(result);
81428        if _result.is_err() {
81429            self.control_handle.shutdown();
81430        }
81431        self.drop_without_shutdown();
81432        _result
81433    }
81434
81435    /// Similar to "send" but does not shutdown the channel if an error occurs.
81436    pub fn send_no_shutdown_on_err(
81437        self,
81438        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81439    ) -> Result<(), fidl::Error> {
81440        let _result = self.send_raw(result);
81441        self.drop_without_shutdown();
81442        _result
81443    }
81444
81445    fn send_raw(
81446        &self,
81447        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81448    ) -> Result<(), fidl::Error> {
81449        self.control_handle.inner.send::<fidl::encoding::ResultType<
81450            fidl::encoding::EmptyStruct,
81451            fidl_fuchsia_posix::Errno,
81452        >>(
81453            result,
81454            self.tx_id,
81455            0x42104c70ccaba304,
81456            fidl::encoding::DynamicFlags::empty(),
81457        )
81458    }
81459}
81460
81461#[must_use = "FIDL methods require a response to be sent"]
81462#[derive(Debug)]
81463pub struct SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
81464    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81465    tx_id: u32,
81466}
81467
81468/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81469/// if the responder is dropped without sending a response, so that the client
81470/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81471impl std::ops::Drop for SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
81472    fn drop(&mut self) {
81473        self.control_handle.shutdown();
81474        // Safety: drops once, never accessed again
81475        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81476    }
81477}
81478
81479impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
81480    type ControlHandle = SynchronousDatagramSocketControlHandle;
81481
81482    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81483        &self.control_handle
81484    }
81485
81486    fn drop_without_shutdown(mut self) {
81487        // Safety: drops once, never accessed again due to mem::forget
81488        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81489        // Prevent Drop from running (which would shut down the channel)
81490        std::mem::forget(self);
81491    }
81492}
81493
81494impl SynchronousDatagramSocketSetIpv6MulticastInterfaceResponder {
81495    /// Sends a response to the FIDL transaction.
81496    ///
81497    /// Sets the channel to shutdown if an error occurs.
81498    pub fn send(
81499        self,
81500        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81501    ) -> Result<(), fidl::Error> {
81502        let _result = self.send_raw(result);
81503        if _result.is_err() {
81504            self.control_handle.shutdown();
81505        }
81506        self.drop_without_shutdown();
81507        _result
81508    }
81509
81510    /// Similar to "send" but does not shutdown the channel if an error occurs.
81511    pub fn send_no_shutdown_on_err(
81512        self,
81513        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81514    ) -> Result<(), fidl::Error> {
81515        let _result = self.send_raw(result);
81516        self.drop_without_shutdown();
81517        _result
81518    }
81519
81520    fn send_raw(
81521        &self,
81522        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81523    ) -> Result<(), fidl::Error> {
81524        self.control_handle.inner.send::<fidl::encoding::ResultType<
81525            fidl::encoding::EmptyStruct,
81526            fidl_fuchsia_posix::Errno,
81527        >>(
81528            result,
81529            self.tx_id,
81530            0x135f76db3774ab3b,
81531            fidl::encoding::DynamicFlags::empty(),
81532        )
81533    }
81534}
81535
81536#[must_use = "FIDL methods require a response to be sent"]
81537#[derive(Debug)]
81538pub struct SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
81539    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81540    tx_id: u32,
81541}
81542
81543/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81544/// if the responder is dropped without sending a response, so that the client
81545/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81546impl std::ops::Drop for SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
81547    fn drop(&mut self) {
81548        self.control_handle.shutdown();
81549        // Safety: drops once, never accessed again
81550        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81551    }
81552}
81553
81554impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
81555    type ControlHandle = SynchronousDatagramSocketControlHandle;
81556
81557    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81558        &self.control_handle
81559    }
81560
81561    fn drop_without_shutdown(mut self) {
81562        // Safety: drops once, never accessed again due to mem::forget
81563        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81564        // Prevent Drop from running (which would shut down the channel)
81565        std::mem::forget(self);
81566    }
81567}
81568
81569impl SynchronousDatagramSocketGetIpv6MulticastInterfaceResponder {
81570    /// Sends a response to the FIDL transaction.
81571    ///
81572    /// Sets the channel to shutdown if an error occurs.
81573    pub fn send(
81574        self,
81575        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
81576    ) -> Result<(), fidl::Error> {
81577        let _result = self.send_raw(result);
81578        if _result.is_err() {
81579            self.control_handle.shutdown();
81580        }
81581        self.drop_without_shutdown();
81582        _result
81583    }
81584
81585    /// Similar to "send" but does not shutdown the channel if an error occurs.
81586    pub fn send_no_shutdown_on_err(
81587        self,
81588        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
81589    ) -> Result<(), fidl::Error> {
81590        let _result = self.send_raw(result);
81591        self.drop_without_shutdown();
81592        _result
81593    }
81594
81595    fn send_raw(
81596        &self,
81597        mut result: Result<u64, fidl_fuchsia_posix::Errno>,
81598    ) -> Result<(), fidl::Error> {
81599        self.control_handle.inner.send::<fidl::encoding::ResultType<
81600            BaseNetworkSocketGetIpv6MulticastInterfaceResponse,
81601            fidl_fuchsia_posix::Errno,
81602        >>(
81603            result.map(|value| (value,)),
81604            self.tx_id,
81605            0x1f26fcdd348f1882,
81606            fidl::encoding::DynamicFlags::empty(),
81607        )
81608    }
81609}
81610
81611#[must_use = "FIDL methods require a response to be sent"]
81612#[derive(Debug)]
81613pub struct SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
81614    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81615    tx_id: u32,
81616}
81617
81618/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81619/// if the responder is dropped without sending a response, so that the client
81620/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81621impl std::ops::Drop for SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
81622    fn drop(&mut self) {
81623        self.control_handle.shutdown();
81624        // Safety: drops once, never accessed again
81625        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81626    }
81627}
81628
81629impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
81630    type ControlHandle = SynchronousDatagramSocketControlHandle;
81631
81632    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81633        &self.control_handle
81634    }
81635
81636    fn drop_without_shutdown(mut self) {
81637        // Safety: drops once, never accessed again due to mem::forget
81638        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81639        // Prevent Drop from running (which would shut down the channel)
81640        std::mem::forget(self);
81641    }
81642}
81643
81644impl SynchronousDatagramSocketSetIpv6UnicastHopsResponder {
81645    /// Sends a response to the FIDL transaction.
81646    ///
81647    /// Sets the channel to shutdown if an error occurs.
81648    pub fn send(
81649        self,
81650        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81651    ) -> Result<(), fidl::Error> {
81652        let _result = self.send_raw(result);
81653        if _result.is_err() {
81654            self.control_handle.shutdown();
81655        }
81656        self.drop_without_shutdown();
81657        _result
81658    }
81659
81660    /// Similar to "send" but does not shutdown the channel if an error occurs.
81661    pub fn send_no_shutdown_on_err(
81662        self,
81663        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81664    ) -> Result<(), fidl::Error> {
81665        let _result = self.send_raw(result);
81666        self.drop_without_shutdown();
81667        _result
81668    }
81669
81670    fn send_raw(
81671        &self,
81672        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81673    ) -> Result<(), fidl::Error> {
81674        self.control_handle.inner.send::<fidl::encoding::ResultType<
81675            fidl::encoding::EmptyStruct,
81676            fidl_fuchsia_posix::Errno,
81677        >>(
81678            result,
81679            self.tx_id,
81680            0x157d51e98f462859,
81681            fidl::encoding::DynamicFlags::empty(),
81682        )
81683    }
81684}
81685
81686#[must_use = "FIDL methods require a response to be sent"]
81687#[derive(Debug)]
81688pub struct SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
81689    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81690    tx_id: u32,
81691}
81692
81693/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81694/// if the responder is dropped without sending a response, so that the client
81695/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81696impl std::ops::Drop for SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
81697    fn drop(&mut self) {
81698        self.control_handle.shutdown();
81699        // Safety: drops once, never accessed again
81700        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81701    }
81702}
81703
81704impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
81705    type ControlHandle = SynchronousDatagramSocketControlHandle;
81706
81707    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81708        &self.control_handle
81709    }
81710
81711    fn drop_without_shutdown(mut self) {
81712        // Safety: drops once, never accessed again due to mem::forget
81713        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81714        // Prevent Drop from running (which would shut down the channel)
81715        std::mem::forget(self);
81716    }
81717}
81718
81719impl SynchronousDatagramSocketGetIpv6UnicastHopsResponder {
81720    /// Sends a response to the FIDL transaction.
81721    ///
81722    /// Sets the channel to shutdown if an error occurs.
81723    pub fn send(
81724        self,
81725        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81726    ) -> Result<(), fidl::Error> {
81727        let _result = self.send_raw(result);
81728        if _result.is_err() {
81729            self.control_handle.shutdown();
81730        }
81731        self.drop_without_shutdown();
81732        _result
81733    }
81734
81735    /// Similar to "send" but does not shutdown the channel if an error occurs.
81736    pub fn send_no_shutdown_on_err(
81737        self,
81738        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81739    ) -> Result<(), fidl::Error> {
81740        let _result = self.send_raw(result);
81741        self.drop_without_shutdown();
81742        _result
81743    }
81744
81745    fn send_raw(
81746        &self,
81747        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
81748    ) -> Result<(), fidl::Error> {
81749        self.control_handle.inner.send::<fidl::encoding::ResultType<
81750            BaseNetworkSocketGetIpv6UnicastHopsResponse,
81751            fidl_fuchsia_posix::Errno,
81752        >>(
81753            result.map(|value| (value,)),
81754            self.tx_id,
81755            0x21f4641cad8bd8d2,
81756            fidl::encoding::DynamicFlags::empty(),
81757        )
81758    }
81759}
81760
81761#[must_use = "FIDL methods require a response to be sent"]
81762#[derive(Debug)]
81763pub struct SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
81764    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81765    tx_id: u32,
81766}
81767
81768/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81769/// if the responder is dropped without sending a response, so that the client
81770/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81771impl std::ops::Drop for SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
81772    fn drop(&mut self) {
81773        self.control_handle.shutdown();
81774        // Safety: drops once, never accessed again
81775        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81776    }
81777}
81778
81779impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
81780    type ControlHandle = SynchronousDatagramSocketControlHandle;
81781
81782    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81783        &self.control_handle
81784    }
81785
81786    fn drop_without_shutdown(mut self) {
81787        // Safety: drops once, never accessed again due to mem::forget
81788        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81789        // Prevent Drop from running (which would shut down the channel)
81790        std::mem::forget(self);
81791    }
81792}
81793
81794impl SynchronousDatagramSocketSetIpv6ReceiveHopLimitResponder {
81795    /// Sends a response to the FIDL transaction.
81796    ///
81797    /// Sets the channel to shutdown if an error occurs.
81798    pub fn send(
81799        self,
81800        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81801    ) -> Result<(), fidl::Error> {
81802        let _result = self.send_raw(result);
81803        if _result.is_err() {
81804            self.control_handle.shutdown();
81805        }
81806        self.drop_without_shutdown();
81807        _result
81808    }
81809
81810    /// Similar to "send" but does not shutdown the channel if an error occurs.
81811    pub fn send_no_shutdown_on_err(
81812        self,
81813        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81814    ) -> Result<(), fidl::Error> {
81815        let _result = self.send_raw(result);
81816        self.drop_without_shutdown();
81817        _result
81818    }
81819
81820    fn send_raw(
81821        &self,
81822        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81823    ) -> Result<(), fidl::Error> {
81824        self.control_handle.inner.send::<fidl::encoding::ResultType<
81825            fidl::encoding::EmptyStruct,
81826            fidl_fuchsia_posix::Errno,
81827        >>(
81828            result,
81829            self.tx_id,
81830            0x5c24808ed2e84a1e,
81831            fidl::encoding::DynamicFlags::empty(),
81832        )
81833    }
81834}
81835
81836#[must_use = "FIDL methods require a response to be sent"]
81837#[derive(Debug)]
81838pub struct SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
81839    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81840    tx_id: u32,
81841}
81842
81843/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81844/// if the responder is dropped without sending a response, so that the client
81845/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81846impl std::ops::Drop for SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
81847    fn drop(&mut self) {
81848        self.control_handle.shutdown();
81849        // Safety: drops once, never accessed again
81850        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81851    }
81852}
81853
81854impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
81855    type ControlHandle = SynchronousDatagramSocketControlHandle;
81856
81857    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81858        &self.control_handle
81859    }
81860
81861    fn drop_without_shutdown(mut self) {
81862        // Safety: drops once, never accessed again due to mem::forget
81863        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81864        // Prevent Drop from running (which would shut down the channel)
81865        std::mem::forget(self);
81866    }
81867}
81868
81869impl SynchronousDatagramSocketGetIpv6ReceiveHopLimitResponder {
81870    /// Sends a response to the FIDL transaction.
81871    ///
81872    /// Sets the channel to shutdown if an error occurs.
81873    pub fn send(
81874        self,
81875        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81876    ) -> Result<(), fidl::Error> {
81877        let _result = self.send_raw(result);
81878        if _result.is_err() {
81879            self.control_handle.shutdown();
81880        }
81881        self.drop_without_shutdown();
81882        _result
81883    }
81884
81885    /// Similar to "send" but does not shutdown the channel if an error occurs.
81886    pub fn send_no_shutdown_on_err(
81887        self,
81888        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81889    ) -> Result<(), fidl::Error> {
81890        let _result = self.send_raw(result);
81891        self.drop_without_shutdown();
81892        _result
81893    }
81894
81895    fn send_raw(
81896        &self,
81897        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
81898    ) -> Result<(), fidl::Error> {
81899        self.control_handle.inner.send::<fidl::encoding::ResultType<
81900            BaseNetworkSocketGetIpv6ReceiveHopLimitResponse,
81901            fidl_fuchsia_posix::Errno,
81902        >>(
81903            result.map(|value| (value,)),
81904            self.tx_id,
81905            0x341e06689885b4c0,
81906            fidl::encoding::DynamicFlags::empty(),
81907        )
81908    }
81909}
81910
81911#[must_use = "FIDL methods require a response to be sent"]
81912#[derive(Debug)]
81913pub struct SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
81914    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81915    tx_id: u32,
81916}
81917
81918/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81919/// if the responder is dropped without sending a response, so that the client
81920/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81921impl std::ops::Drop for SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
81922    fn drop(&mut self) {
81923        self.control_handle.shutdown();
81924        // Safety: drops once, never accessed again
81925        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81926    }
81927}
81928
81929impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
81930    type ControlHandle = SynchronousDatagramSocketControlHandle;
81931
81932    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
81933        &self.control_handle
81934    }
81935
81936    fn drop_without_shutdown(mut self) {
81937        // Safety: drops once, never accessed again due to mem::forget
81938        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
81939        // Prevent Drop from running (which would shut down the channel)
81940        std::mem::forget(self);
81941    }
81942}
81943
81944impl SynchronousDatagramSocketSetIpv6MulticastHopsResponder {
81945    /// Sends a response to the FIDL transaction.
81946    ///
81947    /// Sets the channel to shutdown if an error occurs.
81948    pub fn send(
81949        self,
81950        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81951    ) -> Result<(), fidl::Error> {
81952        let _result = self.send_raw(result);
81953        if _result.is_err() {
81954            self.control_handle.shutdown();
81955        }
81956        self.drop_without_shutdown();
81957        _result
81958    }
81959
81960    /// Similar to "send" but does not shutdown the channel if an error occurs.
81961    pub fn send_no_shutdown_on_err(
81962        self,
81963        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81964    ) -> Result<(), fidl::Error> {
81965        let _result = self.send_raw(result);
81966        self.drop_without_shutdown();
81967        _result
81968    }
81969
81970    fn send_raw(
81971        &self,
81972        mut result: Result<(), fidl_fuchsia_posix::Errno>,
81973    ) -> Result<(), fidl::Error> {
81974        self.control_handle.inner.send::<fidl::encoding::ResultType<
81975            fidl::encoding::EmptyStruct,
81976            fidl_fuchsia_posix::Errno,
81977        >>(
81978            result,
81979            self.tx_id,
81980            0x25b9cd4d181f82c1,
81981            fidl::encoding::DynamicFlags::empty(),
81982        )
81983    }
81984}
81985
81986#[must_use = "FIDL methods require a response to be sent"]
81987#[derive(Debug)]
81988pub struct SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
81989    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
81990    tx_id: u32,
81991}
81992
81993/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
81994/// if the responder is dropped without sending a response, so that the client
81995/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
81996impl std::ops::Drop for SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
81997    fn drop(&mut self) {
81998        self.control_handle.shutdown();
81999        // Safety: drops once, never accessed again
82000        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82001    }
82002}
82003
82004impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
82005    type ControlHandle = SynchronousDatagramSocketControlHandle;
82006
82007    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82008        &self.control_handle
82009    }
82010
82011    fn drop_without_shutdown(mut self) {
82012        // Safety: drops once, never accessed again due to mem::forget
82013        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82014        // Prevent Drop from running (which would shut down the channel)
82015        std::mem::forget(self);
82016    }
82017}
82018
82019impl SynchronousDatagramSocketGetIpv6MulticastHopsResponder {
82020    /// Sends a response to the FIDL transaction.
82021    ///
82022    /// Sets the channel to shutdown if an error occurs.
82023    pub fn send(
82024        self,
82025        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82026    ) -> Result<(), fidl::Error> {
82027        let _result = self.send_raw(result);
82028        if _result.is_err() {
82029            self.control_handle.shutdown();
82030        }
82031        self.drop_without_shutdown();
82032        _result
82033    }
82034
82035    /// Similar to "send" but does not shutdown the channel if an error occurs.
82036    pub fn send_no_shutdown_on_err(
82037        self,
82038        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82039    ) -> Result<(), fidl::Error> {
82040        let _result = self.send_raw(result);
82041        self.drop_without_shutdown();
82042        _result
82043    }
82044
82045    fn send_raw(
82046        &self,
82047        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82048    ) -> Result<(), fidl::Error> {
82049        self.control_handle.inner.send::<fidl::encoding::ResultType<
82050            BaseNetworkSocketGetIpv6MulticastHopsResponse,
82051            fidl_fuchsia_posix::Errno,
82052        >>(
82053            result.map(|value| (value,)),
82054            self.tx_id,
82055            0x52916948a365012a,
82056            fidl::encoding::DynamicFlags::empty(),
82057        )
82058    }
82059}
82060
82061#[must_use = "FIDL methods require a response to be sent"]
82062#[derive(Debug)]
82063pub struct SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
82064    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82065    tx_id: u32,
82066}
82067
82068/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82069/// if the responder is dropped without sending a response, so that the client
82070/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82071impl std::ops::Drop for SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
82072    fn drop(&mut self) {
82073        self.control_handle.shutdown();
82074        // Safety: drops once, never accessed again
82075        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82076    }
82077}
82078
82079impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
82080    type ControlHandle = SynchronousDatagramSocketControlHandle;
82081
82082    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82083        &self.control_handle
82084    }
82085
82086    fn drop_without_shutdown(mut self) {
82087        // Safety: drops once, never accessed again due to mem::forget
82088        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82089        // Prevent Drop from running (which would shut down the channel)
82090        std::mem::forget(self);
82091    }
82092}
82093
82094impl SynchronousDatagramSocketSetIpv6MulticastLoopbackResponder {
82095    /// Sends a response to the FIDL transaction.
82096    ///
82097    /// Sets the channel to shutdown if an error occurs.
82098    pub fn send(
82099        self,
82100        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82101    ) -> Result<(), fidl::Error> {
82102        let _result = self.send_raw(result);
82103        if _result.is_err() {
82104            self.control_handle.shutdown();
82105        }
82106        self.drop_without_shutdown();
82107        _result
82108    }
82109
82110    /// Similar to "send" but does not shutdown the channel if an error occurs.
82111    pub fn send_no_shutdown_on_err(
82112        self,
82113        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82114    ) -> Result<(), fidl::Error> {
82115        let _result = self.send_raw(result);
82116        self.drop_without_shutdown();
82117        _result
82118    }
82119
82120    fn send_raw(
82121        &self,
82122        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82123    ) -> Result<(), fidl::Error> {
82124        self.control_handle.inner.send::<fidl::encoding::ResultType<
82125            fidl::encoding::EmptyStruct,
82126            fidl_fuchsia_posix::Errno,
82127        >>(
82128            result,
82129            self.tx_id,
82130            0x55701c409ff41b40,
82131            fidl::encoding::DynamicFlags::empty(),
82132        )
82133    }
82134}
82135
82136#[must_use = "FIDL methods require a response to be sent"]
82137#[derive(Debug)]
82138pub struct SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
82139    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82140    tx_id: u32,
82141}
82142
82143/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82144/// if the responder is dropped without sending a response, so that the client
82145/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82146impl std::ops::Drop for SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
82147    fn drop(&mut self) {
82148        self.control_handle.shutdown();
82149        // Safety: drops once, never accessed again
82150        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82151    }
82152}
82153
82154impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
82155    type ControlHandle = SynchronousDatagramSocketControlHandle;
82156
82157    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82158        &self.control_handle
82159    }
82160
82161    fn drop_without_shutdown(mut self) {
82162        // Safety: drops once, never accessed again due to mem::forget
82163        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82164        // Prevent Drop from running (which would shut down the channel)
82165        std::mem::forget(self);
82166    }
82167}
82168
82169impl SynchronousDatagramSocketGetIpv6MulticastLoopbackResponder {
82170    /// Sends a response to the FIDL transaction.
82171    ///
82172    /// Sets the channel to shutdown if an error occurs.
82173    pub fn send(
82174        self,
82175        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82176    ) -> Result<(), fidl::Error> {
82177        let _result = self.send_raw(result);
82178        if _result.is_err() {
82179            self.control_handle.shutdown();
82180        }
82181        self.drop_without_shutdown();
82182        _result
82183    }
82184
82185    /// Similar to "send" but does not shutdown the channel if an error occurs.
82186    pub fn send_no_shutdown_on_err(
82187        self,
82188        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82189    ) -> Result<(), fidl::Error> {
82190        let _result = self.send_raw(result);
82191        self.drop_without_shutdown();
82192        _result
82193    }
82194
82195    fn send_raw(
82196        &self,
82197        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82198    ) -> Result<(), fidl::Error> {
82199        self.control_handle.inner.send::<fidl::encoding::ResultType<
82200            BaseNetworkSocketGetIpv6MulticastLoopbackResponse,
82201            fidl_fuchsia_posix::Errno,
82202        >>(
82203            result.map(|value| (value,)),
82204            self.tx_id,
82205            0x4415b701fde319c3,
82206            fidl::encoding::DynamicFlags::empty(),
82207        )
82208    }
82209}
82210
82211#[must_use = "FIDL methods require a response to be sent"]
82212#[derive(Debug)]
82213pub struct SynchronousDatagramSocketSetIpv6OnlyResponder {
82214    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82215    tx_id: u32,
82216}
82217
82218/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82219/// if the responder is dropped without sending a response, so that the client
82220/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82221impl std::ops::Drop for SynchronousDatagramSocketSetIpv6OnlyResponder {
82222    fn drop(&mut self) {
82223        self.control_handle.shutdown();
82224        // Safety: drops once, never accessed again
82225        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82226    }
82227}
82228
82229impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6OnlyResponder {
82230    type ControlHandle = SynchronousDatagramSocketControlHandle;
82231
82232    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82233        &self.control_handle
82234    }
82235
82236    fn drop_without_shutdown(mut self) {
82237        // Safety: drops once, never accessed again due to mem::forget
82238        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82239        // Prevent Drop from running (which would shut down the channel)
82240        std::mem::forget(self);
82241    }
82242}
82243
82244impl SynchronousDatagramSocketSetIpv6OnlyResponder {
82245    /// Sends a response to the FIDL transaction.
82246    ///
82247    /// Sets the channel to shutdown if an error occurs.
82248    pub fn send(
82249        self,
82250        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82251    ) -> Result<(), fidl::Error> {
82252        let _result = self.send_raw(result);
82253        if _result.is_err() {
82254            self.control_handle.shutdown();
82255        }
82256        self.drop_without_shutdown();
82257        _result
82258    }
82259
82260    /// Similar to "send" but does not shutdown the channel if an error occurs.
82261    pub fn send_no_shutdown_on_err(
82262        self,
82263        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82264    ) -> Result<(), fidl::Error> {
82265        let _result = self.send_raw(result);
82266        self.drop_without_shutdown();
82267        _result
82268    }
82269
82270    fn send_raw(
82271        &self,
82272        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82273    ) -> Result<(), fidl::Error> {
82274        self.control_handle.inner.send::<fidl::encoding::ResultType<
82275            fidl::encoding::EmptyStruct,
82276            fidl_fuchsia_posix::Errno,
82277        >>(
82278            result,
82279            self.tx_id,
82280            0x4873f1364758cbba,
82281            fidl::encoding::DynamicFlags::empty(),
82282        )
82283    }
82284}
82285
82286#[must_use = "FIDL methods require a response to be sent"]
82287#[derive(Debug)]
82288pub struct SynchronousDatagramSocketGetIpv6OnlyResponder {
82289    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82290    tx_id: u32,
82291}
82292
82293/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82294/// if the responder is dropped without sending a response, so that the client
82295/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82296impl std::ops::Drop for SynchronousDatagramSocketGetIpv6OnlyResponder {
82297    fn drop(&mut self) {
82298        self.control_handle.shutdown();
82299        // Safety: drops once, never accessed again
82300        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82301    }
82302}
82303
82304impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6OnlyResponder {
82305    type ControlHandle = SynchronousDatagramSocketControlHandle;
82306
82307    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82308        &self.control_handle
82309    }
82310
82311    fn drop_without_shutdown(mut self) {
82312        // Safety: drops once, never accessed again due to mem::forget
82313        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82314        // Prevent Drop from running (which would shut down the channel)
82315        std::mem::forget(self);
82316    }
82317}
82318
82319impl SynchronousDatagramSocketGetIpv6OnlyResponder {
82320    /// Sends a response to the FIDL transaction.
82321    ///
82322    /// Sets the channel to shutdown if an error occurs.
82323    pub fn send(
82324        self,
82325        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82326    ) -> Result<(), fidl::Error> {
82327        let _result = self.send_raw(result);
82328        if _result.is_err() {
82329            self.control_handle.shutdown();
82330        }
82331        self.drop_without_shutdown();
82332        _result
82333    }
82334
82335    /// Similar to "send" but does not shutdown the channel if an error occurs.
82336    pub fn send_no_shutdown_on_err(
82337        self,
82338        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82339    ) -> Result<(), fidl::Error> {
82340        let _result = self.send_raw(result);
82341        self.drop_without_shutdown();
82342        _result
82343    }
82344
82345    fn send_raw(
82346        &self,
82347        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82348    ) -> Result<(), fidl::Error> {
82349        self.control_handle.inner.send::<fidl::encoding::ResultType<
82350            BaseNetworkSocketGetIpv6OnlyResponse,
82351            fidl_fuchsia_posix::Errno,
82352        >>(
82353            result.map(|value| (value,)),
82354            self.tx_id,
82355            0x4aa3340a1a26b89c,
82356            fidl::encoding::DynamicFlags::empty(),
82357        )
82358    }
82359}
82360
82361#[must_use = "FIDL methods require a response to be sent"]
82362#[derive(Debug)]
82363pub struct SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
82364    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82365    tx_id: u32,
82366}
82367
82368/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82369/// if the responder is dropped without sending a response, so that the client
82370/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82371impl std::ops::Drop for SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
82372    fn drop(&mut self) {
82373        self.control_handle.shutdown();
82374        // Safety: drops once, never accessed again
82375        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82376    }
82377}
82378
82379impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
82380    type ControlHandle = SynchronousDatagramSocketControlHandle;
82381
82382    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82383        &self.control_handle
82384    }
82385
82386    fn drop_without_shutdown(mut self) {
82387        // Safety: drops once, never accessed again due to mem::forget
82388        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82389        // Prevent Drop from running (which would shut down the channel)
82390        std::mem::forget(self);
82391    }
82392}
82393
82394impl SynchronousDatagramSocketSetIpv6ReceiveTrafficClassResponder {
82395    /// Sends a response to the FIDL transaction.
82396    ///
82397    /// Sets the channel to shutdown if an error occurs.
82398    pub fn send(
82399        self,
82400        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82401    ) -> Result<(), fidl::Error> {
82402        let _result = self.send_raw(result);
82403        if _result.is_err() {
82404            self.control_handle.shutdown();
82405        }
82406        self.drop_without_shutdown();
82407        _result
82408    }
82409
82410    /// Similar to "send" but does not shutdown the channel if an error occurs.
82411    pub fn send_no_shutdown_on_err(
82412        self,
82413        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82414    ) -> Result<(), fidl::Error> {
82415        let _result = self.send_raw(result);
82416        self.drop_without_shutdown();
82417        _result
82418    }
82419
82420    fn send_raw(
82421        &self,
82422        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82423    ) -> Result<(), fidl::Error> {
82424        self.control_handle.inner.send::<fidl::encoding::ResultType<
82425            fidl::encoding::EmptyStruct,
82426            fidl_fuchsia_posix::Errno,
82427        >>(
82428            result,
82429            self.tx_id,
82430            0x58f07c8788d099a0,
82431            fidl::encoding::DynamicFlags::empty(),
82432        )
82433    }
82434}
82435
82436#[must_use = "FIDL methods require a response to be sent"]
82437#[derive(Debug)]
82438pub struct SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
82439    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82440    tx_id: u32,
82441}
82442
82443/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82444/// if the responder is dropped without sending a response, so that the client
82445/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82446impl std::ops::Drop for SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
82447    fn drop(&mut self) {
82448        self.control_handle.shutdown();
82449        // Safety: drops once, never accessed again
82450        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82451    }
82452}
82453
82454impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
82455    type ControlHandle = SynchronousDatagramSocketControlHandle;
82456
82457    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82458        &self.control_handle
82459    }
82460
82461    fn drop_without_shutdown(mut self) {
82462        // Safety: drops once, never accessed again due to mem::forget
82463        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82464        // Prevent Drop from running (which would shut down the channel)
82465        std::mem::forget(self);
82466    }
82467}
82468
82469impl SynchronousDatagramSocketGetIpv6ReceiveTrafficClassResponder {
82470    /// Sends a response to the FIDL transaction.
82471    ///
82472    /// Sets the channel to shutdown if an error occurs.
82473    pub fn send(
82474        self,
82475        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82476    ) -> Result<(), fidl::Error> {
82477        let _result = self.send_raw(result);
82478        if _result.is_err() {
82479            self.control_handle.shutdown();
82480        }
82481        self.drop_without_shutdown();
82482        _result
82483    }
82484
82485    /// Similar to "send" but does not shutdown the channel if an error occurs.
82486    pub fn send_no_shutdown_on_err(
82487        self,
82488        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82489    ) -> Result<(), fidl::Error> {
82490        let _result = self.send_raw(result);
82491        self.drop_without_shutdown();
82492        _result
82493    }
82494
82495    fn send_raw(
82496        &self,
82497        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82498    ) -> Result<(), fidl::Error> {
82499        self.control_handle.inner.send::<fidl::encoding::ResultType<
82500            BaseNetworkSocketGetIpv6ReceiveTrafficClassResponse,
82501            fidl_fuchsia_posix::Errno,
82502        >>(
82503            result.map(|value| (value,)),
82504            self.tx_id,
82505            0x2e334df1da553ffa,
82506            fidl::encoding::DynamicFlags::empty(),
82507        )
82508    }
82509}
82510
82511#[must_use = "FIDL methods require a response to be sent"]
82512#[derive(Debug)]
82513pub struct SynchronousDatagramSocketSetIpv6TrafficClassResponder {
82514    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82515    tx_id: u32,
82516}
82517
82518/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82519/// if the responder is dropped without sending a response, so that the client
82520/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82521impl std::ops::Drop for SynchronousDatagramSocketSetIpv6TrafficClassResponder {
82522    fn drop(&mut self) {
82523        self.control_handle.shutdown();
82524        // Safety: drops once, never accessed again
82525        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82526    }
82527}
82528
82529impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6TrafficClassResponder {
82530    type ControlHandle = SynchronousDatagramSocketControlHandle;
82531
82532    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82533        &self.control_handle
82534    }
82535
82536    fn drop_without_shutdown(mut self) {
82537        // Safety: drops once, never accessed again due to mem::forget
82538        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82539        // Prevent Drop from running (which would shut down the channel)
82540        std::mem::forget(self);
82541    }
82542}
82543
82544impl SynchronousDatagramSocketSetIpv6TrafficClassResponder {
82545    /// Sends a response to the FIDL transaction.
82546    ///
82547    /// Sets the channel to shutdown if an error occurs.
82548    pub fn send(
82549        self,
82550        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82551    ) -> Result<(), fidl::Error> {
82552        let _result = self.send_raw(result);
82553        if _result.is_err() {
82554            self.control_handle.shutdown();
82555        }
82556        self.drop_without_shutdown();
82557        _result
82558    }
82559
82560    /// Similar to "send" but does not shutdown the channel if an error occurs.
82561    pub fn send_no_shutdown_on_err(
82562        self,
82563        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82564    ) -> Result<(), fidl::Error> {
82565        let _result = self.send_raw(result);
82566        self.drop_without_shutdown();
82567        _result
82568    }
82569
82570    fn send_raw(
82571        &self,
82572        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82573    ) -> Result<(), fidl::Error> {
82574        self.control_handle.inner.send::<fidl::encoding::ResultType<
82575            fidl::encoding::EmptyStruct,
82576            fidl_fuchsia_posix::Errno,
82577        >>(
82578            result,
82579            self.tx_id,
82580            0x6af077800c5a0b4f,
82581            fidl::encoding::DynamicFlags::empty(),
82582        )
82583    }
82584}
82585
82586#[must_use = "FIDL methods require a response to be sent"]
82587#[derive(Debug)]
82588pub struct SynchronousDatagramSocketGetIpv6TrafficClassResponder {
82589    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82590    tx_id: u32,
82591}
82592
82593/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82594/// if the responder is dropped without sending a response, so that the client
82595/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82596impl std::ops::Drop for SynchronousDatagramSocketGetIpv6TrafficClassResponder {
82597    fn drop(&mut self) {
82598        self.control_handle.shutdown();
82599        // Safety: drops once, never accessed again
82600        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82601    }
82602}
82603
82604impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6TrafficClassResponder {
82605    type ControlHandle = SynchronousDatagramSocketControlHandle;
82606
82607    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82608        &self.control_handle
82609    }
82610
82611    fn drop_without_shutdown(mut self) {
82612        // Safety: drops once, never accessed again due to mem::forget
82613        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82614        // Prevent Drop from running (which would shut down the channel)
82615        std::mem::forget(self);
82616    }
82617}
82618
82619impl SynchronousDatagramSocketGetIpv6TrafficClassResponder {
82620    /// Sends a response to the FIDL transaction.
82621    ///
82622    /// Sets the channel to shutdown if an error occurs.
82623    pub fn send(
82624        self,
82625        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82626    ) -> Result<(), fidl::Error> {
82627        let _result = self.send_raw(result);
82628        if _result.is_err() {
82629            self.control_handle.shutdown();
82630        }
82631        self.drop_without_shutdown();
82632        _result
82633    }
82634
82635    /// Similar to "send" but does not shutdown the channel if an error occurs.
82636    pub fn send_no_shutdown_on_err(
82637        self,
82638        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82639    ) -> Result<(), fidl::Error> {
82640        let _result = self.send_raw(result);
82641        self.drop_without_shutdown();
82642        _result
82643    }
82644
82645    fn send_raw(
82646        &self,
82647        mut result: Result<u8, fidl_fuchsia_posix::Errno>,
82648    ) -> Result<(), fidl::Error> {
82649        self.control_handle.inner.send::<fidl::encoding::ResultType<
82650            BaseNetworkSocketGetIpv6TrafficClassResponse,
82651            fidl_fuchsia_posix::Errno,
82652        >>(
82653            result.map(|value| (value,)),
82654            self.tx_id,
82655            0x6baf6eed8fc2f04,
82656            fidl::encoding::DynamicFlags::empty(),
82657        )
82658    }
82659}
82660
82661#[must_use = "FIDL methods require a response to be sent"]
82662#[derive(Debug)]
82663pub struct SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
82664    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82665    tx_id: u32,
82666}
82667
82668/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82669/// if the responder is dropped without sending a response, so that the client
82670/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82671impl std::ops::Drop for SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
82672    fn drop(&mut self) {
82673        self.control_handle.shutdown();
82674        // Safety: drops once, never accessed again
82675        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82676    }
82677}
82678
82679impl fidl::endpoints::Responder for SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
82680    type ControlHandle = SynchronousDatagramSocketControlHandle;
82681
82682    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82683        &self.control_handle
82684    }
82685
82686    fn drop_without_shutdown(mut self) {
82687        // Safety: drops once, never accessed again due to mem::forget
82688        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82689        // Prevent Drop from running (which would shut down the channel)
82690        std::mem::forget(self);
82691    }
82692}
82693
82694impl SynchronousDatagramSocketSetIpv6ReceivePacketInfoResponder {
82695    /// Sends a response to the FIDL transaction.
82696    ///
82697    /// Sets the channel to shutdown if an error occurs.
82698    pub fn send(
82699        self,
82700        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82701    ) -> Result<(), fidl::Error> {
82702        let _result = self.send_raw(result);
82703        if _result.is_err() {
82704            self.control_handle.shutdown();
82705        }
82706        self.drop_without_shutdown();
82707        _result
82708    }
82709
82710    /// Similar to "send" but does not shutdown the channel if an error occurs.
82711    pub fn send_no_shutdown_on_err(
82712        self,
82713        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82714    ) -> Result<(), fidl::Error> {
82715        let _result = self.send_raw(result);
82716        self.drop_without_shutdown();
82717        _result
82718    }
82719
82720    fn send_raw(
82721        &self,
82722        mut result: Result<(), fidl_fuchsia_posix::Errno>,
82723    ) -> Result<(), fidl::Error> {
82724        self.control_handle.inner.send::<fidl::encoding::ResultType<
82725            fidl::encoding::EmptyStruct,
82726            fidl_fuchsia_posix::Errno,
82727        >>(
82728            result,
82729            self.tx_id,
82730            0x19259775b1a92768,
82731            fidl::encoding::DynamicFlags::empty(),
82732        )
82733    }
82734}
82735
82736#[must_use = "FIDL methods require a response to be sent"]
82737#[derive(Debug)]
82738pub struct SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
82739    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82740    tx_id: u32,
82741}
82742
82743/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82744/// if the responder is dropped without sending a response, so that the client
82745/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82746impl std::ops::Drop for SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
82747    fn drop(&mut self) {
82748        self.control_handle.shutdown();
82749        // Safety: drops once, never accessed again
82750        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82751    }
82752}
82753
82754impl fidl::endpoints::Responder for SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
82755    type ControlHandle = SynchronousDatagramSocketControlHandle;
82756
82757    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82758        &self.control_handle
82759    }
82760
82761    fn drop_without_shutdown(mut self) {
82762        // Safety: drops once, never accessed again due to mem::forget
82763        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82764        // Prevent Drop from running (which would shut down the channel)
82765        std::mem::forget(self);
82766    }
82767}
82768
82769impl SynchronousDatagramSocketGetIpv6ReceivePacketInfoResponder {
82770    /// Sends a response to the FIDL transaction.
82771    ///
82772    /// Sets the channel to shutdown if an error occurs.
82773    pub fn send(
82774        self,
82775        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82776    ) -> Result<(), fidl::Error> {
82777        let _result = self.send_raw(result);
82778        if _result.is_err() {
82779            self.control_handle.shutdown();
82780        }
82781        self.drop_without_shutdown();
82782        _result
82783    }
82784
82785    /// Similar to "send" but does not shutdown the channel if an error occurs.
82786    pub fn send_no_shutdown_on_err(
82787        self,
82788        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82789    ) -> Result<(), fidl::Error> {
82790        let _result = self.send_raw(result);
82791        self.drop_without_shutdown();
82792        _result
82793    }
82794
82795    fn send_raw(
82796        &self,
82797        mut result: Result<bool, fidl_fuchsia_posix::Errno>,
82798    ) -> Result<(), fidl::Error> {
82799        self.control_handle.inner.send::<fidl::encoding::ResultType<
82800            BaseNetworkSocketGetIpv6ReceivePacketInfoResponse,
82801            fidl_fuchsia_posix::Errno,
82802        >>(
82803            result.map(|value| (value,)),
82804            self.tx_id,
82805            0x7acd4a2775baec75,
82806            fidl::encoding::DynamicFlags::empty(),
82807        )
82808    }
82809}
82810
82811#[must_use = "FIDL methods require a response to be sent"]
82812#[derive(Debug)]
82813pub struct SynchronousDatagramSocketGetOriginalDestinationResponder {
82814    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82815    tx_id: u32,
82816}
82817
82818/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82819/// if the responder is dropped without sending a response, so that the client
82820/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82821impl std::ops::Drop for SynchronousDatagramSocketGetOriginalDestinationResponder {
82822    fn drop(&mut self) {
82823        self.control_handle.shutdown();
82824        // Safety: drops once, never accessed again
82825        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82826    }
82827}
82828
82829impl fidl::endpoints::Responder for SynchronousDatagramSocketGetOriginalDestinationResponder {
82830    type ControlHandle = SynchronousDatagramSocketControlHandle;
82831
82832    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82833        &self.control_handle
82834    }
82835
82836    fn drop_without_shutdown(mut self) {
82837        // Safety: drops once, never accessed again due to mem::forget
82838        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82839        // Prevent Drop from running (which would shut down the channel)
82840        std::mem::forget(self);
82841    }
82842}
82843
82844impl SynchronousDatagramSocketGetOriginalDestinationResponder {
82845    /// Sends a response to the FIDL transaction.
82846    ///
82847    /// Sets the channel to shutdown if an error occurs.
82848    pub fn send(
82849        self,
82850        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
82851    ) -> Result<(), fidl::Error> {
82852        let _result = self.send_raw(result);
82853        if _result.is_err() {
82854            self.control_handle.shutdown();
82855        }
82856        self.drop_without_shutdown();
82857        _result
82858    }
82859
82860    /// Similar to "send" but does not shutdown the channel if an error occurs.
82861    pub fn send_no_shutdown_on_err(
82862        self,
82863        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
82864    ) -> Result<(), fidl::Error> {
82865        let _result = self.send_raw(result);
82866        self.drop_without_shutdown();
82867        _result
82868    }
82869
82870    fn send_raw(
82871        &self,
82872        mut result: Result<&fidl_fuchsia_net::SocketAddress, fidl_fuchsia_posix::Errno>,
82873    ) -> Result<(), fidl::Error> {
82874        self.control_handle.inner.send::<fidl::encoding::ResultType<
82875            BaseNetworkSocketGetOriginalDestinationResponse,
82876            fidl_fuchsia_posix::Errno,
82877        >>(
82878            result.map(|value| (value,)),
82879            self.tx_id,
82880            0x38bf28f0dafdbac0,
82881            fidl::encoding::DynamicFlags::empty(),
82882        )
82883    }
82884}
82885
82886#[must_use = "FIDL methods require a response to be sent"]
82887#[derive(Debug)]
82888pub struct SynchronousDatagramSocketGetInfoResponder {
82889    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82890    tx_id: u32,
82891}
82892
82893/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82894/// if the responder is dropped without sending a response, so that the client
82895/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82896impl std::ops::Drop for SynchronousDatagramSocketGetInfoResponder {
82897    fn drop(&mut self) {
82898        self.control_handle.shutdown();
82899        // Safety: drops once, never accessed again
82900        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82901    }
82902}
82903
82904impl fidl::endpoints::Responder for SynchronousDatagramSocketGetInfoResponder {
82905    type ControlHandle = SynchronousDatagramSocketControlHandle;
82906
82907    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82908        &self.control_handle
82909    }
82910
82911    fn drop_without_shutdown(mut self) {
82912        // Safety: drops once, never accessed again due to mem::forget
82913        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82914        // Prevent Drop from running (which would shut down the channel)
82915        std::mem::forget(self);
82916    }
82917}
82918
82919impl SynchronousDatagramSocketGetInfoResponder {
82920    /// Sends a response to the FIDL transaction.
82921    ///
82922    /// Sets the channel to shutdown if an error occurs.
82923    pub fn send(
82924        self,
82925        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
82926    ) -> Result<(), fidl::Error> {
82927        let _result = self.send_raw(result);
82928        if _result.is_err() {
82929            self.control_handle.shutdown();
82930        }
82931        self.drop_without_shutdown();
82932        _result
82933    }
82934
82935    /// Similar to "send" but does not shutdown the channel if an error occurs.
82936    pub fn send_no_shutdown_on_err(
82937        self,
82938        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
82939    ) -> Result<(), fidl::Error> {
82940        let _result = self.send_raw(result);
82941        self.drop_without_shutdown();
82942        _result
82943    }
82944
82945    fn send_raw(
82946        &self,
82947        mut result: Result<(Domain, DatagramSocketProtocol), fidl_fuchsia_posix::Errno>,
82948    ) -> Result<(), fidl::Error> {
82949        self.control_handle.inner.send::<fidl::encoding::ResultType<
82950            BaseDatagramSocketGetInfoResponse,
82951            fidl_fuchsia_posix::Errno,
82952        >>(
82953            result,
82954            self.tx_id,
82955            0x48aa0a1f6a32d2ed,
82956            fidl::encoding::DynamicFlags::empty(),
82957        )
82958    }
82959}
82960
82961#[must_use = "FIDL methods require a response to be sent"]
82962#[derive(Debug)]
82963pub struct SynchronousDatagramSocketDescribeResponder {
82964    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
82965    tx_id: u32,
82966}
82967
82968/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
82969/// if the responder is dropped without sending a response, so that the client
82970/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
82971impl std::ops::Drop for SynchronousDatagramSocketDescribeResponder {
82972    fn drop(&mut self) {
82973        self.control_handle.shutdown();
82974        // Safety: drops once, never accessed again
82975        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82976    }
82977}
82978
82979impl fidl::endpoints::Responder for SynchronousDatagramSocketDescribeResponder {
82980    type ControlHandle = SynchronousDatagramSocketControlHandle;
82981
82982    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
82983        &self.control_handle
82984    }
82985
82986    fn drop_without_shutdown(mut self) {
82987        // Safety: drops once, never accessed again due to mem::forget
82988        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
82989        // Prevent Drop from running (which would shut down the channel)
82990        std::mem::forget(self);
82991    }
82992}
82993
82994impl SynchronousDatagramSocketDescribeResponder {
82995    /// Sends a response to the FIDL transaction.
82996    ///
82997    /// Sets the channel to shutdown if an error occurs.
82998    pub fn send(
82999        self,
83000        mut payload: SynchronousDatagramSocketDescribeResponse,
83001    ) -> Result<(), fidl::Error> {
83002        let _result = self.send_raw(payload);
83003        if _result.is_err() {
83004            self.control_handle.shutdown();
83005        }
83006        self.drop_without_shutdown();
83007        _result
83008    }
83009
83010    /// Similar to "send" but does not shutdown the channel if an error occurs.
83011    pub fn send_no_shutdown_on_err(
83012        self,
83013        mut payload: SynchronousDatagramSocketDescribeResponse,
83014    ) -> Result<(), fidl::Error> {
83015        let _result = self.send_raw(payload);
83016        self.drop_without_shutdown();
83017        _result
83018    }
83019
83020    fn send_raw(
83021        &self,
83022        mut payload: SynchronousDatagramSocketDescribeResponse,
83023    ) -> Result<(), fidl::Error> {
83024        self.control_handle.inner.send::<SynchronousDatagramSocketDescribeResponse>(
83025            &mut payload,
83026            self.tx_id,
83027            0x585f20b73631070d,
83028            fidl::encoding::DynamicFlags::empty(),
83029        )
83030    }
83031}
83032
83033#[must_use = "FIDL methods require a response to be sent"]
83034#[derive(Debug)]
83035pub struct SynchronousDatagramSocketRecvMsgResponder {
83036    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83037    tx_id: u32,
83038}
83039
83040/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83041/// if the responder is dropped without sending a response, so that the client
83042/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83043impl std::ops::Drop for SynchronousDatagramSocketRecvMsgResponder {
83044    fn drop(&mut self) {
83045        self.control_handle.shutdown();
83046        // Safety: drops once, never accessed again
83047        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83048    }
83049}
83050
83051impl fidl::endpoints::Responder for SynchronousDatagramSocketRecvMsgResponder {
83052    type ControlHandle = SynchronousDatagramSocketControlHandle;
83053
83054    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83055        &self.control_handle
83056    }
83057
83058    fn drop_without_shutdown(mut self) {
83059        // Safety: drops once, never accessed again due to mem::forget
83060        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83061        // Prevent Drop from running (which would shut down the channel)
83062        std::mem::forget(self);
83063    }
83064}
83065
83066impl SynchronousDatagramSocketRecvMsgResponder {
83067    /// Sends a response to the FIDL transaction.
83068    ///
83069    /// Sets the channel to shutdown if an error occurs.
83070    pub fn send(
83071        self,
83072        mut result: Result<
83073            (Option<&fidl_fuchsia_net::SocketAddress>, &[u8], &DatagramSocketRecvControlData, u32),
83074            fidl_fuchsia_posix::Errno,
83075        >,
83076    ) -> Result<(), fidl::Error> {
83077        let _result = self.send_raw(result);
83078        if _result.is_err() {
83079            self.control_handle.shutdown();
83080        }
83081        self.drop_without_shutdown();
83082        _result
83083    }
83084
83085    /// Similar to "send" but does not shutdown the channel if an error occurs.
83086    pub fn send_no_shutdown_on_err(
83087        self,
83088        mut result: Result<
83089            (Option<&fidl_fuchsia_net::SocketAddress>, &[u8], &DatagramSocketRecvControlData, u32),
83090            fidl_fuchsia_posix::Errno,
83091        >,
83092    ) -> Result<(), fidl::Error> {
83093        let _result = self.send_raw(result);
83094        self.drop_without_shutdown();
83095        _result
83096    }
83097
83098    fn send_raw(
83099        &self,
83100        mut result: Result<
83101            (Option<&fidl_fuchsia_net::SocketAddress>, &[u8], &DatagramSocketRecvControlData, u32),
83102            fidl_fuchsia_posix::Errno,
83103        >,
83104    ) -> Result<(), fidl::Error> {
83105        self.control_handle.inner.send::<fidl::encoding::ResultType<
83106            SynchronousDatagramSocketRecvMsgResponse,
83107            fidl_fuchsia_posix::Errno,
83108        >>(
83109            result,
83110            self.tx_id,
83111            0x28e494e48fb5dbf3,
83112            fidl::encoding::DynamicFlags::empty(),
83113        )
83114    }
83115}
83116
83117#[must_use = "FIDL methods require a response to be sent"]
83118#[derive(Debug)]
83119pub struct SynchronousDatagramSocketSendMsgResponder {
83120    control_handle: std::mem::ManuallyDrop<SynchronousDatagramSocketControlHandle>,
83121    tx_id: u32,
83122}
83123
83124/// Set the the channel to be shutdown (see [`SynchronousDatagramSocketControlHandle::shutdown`])
83125/// if the responder is dropped without sending a response, so that the client
83126/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
83127impl std::ops::Drop for SynchronousDatagramSocketSendMsgResponder {
83128    fn drop(&mut self) {
83129        self.control_handle.shutdown();
83130        // Safety: drops once, never accessed again
83131        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83132    }
83133}
83134
83135impl fidl::endpoints::Responder for SynchronousDatagramSocketSendMsgResponder {
83136    type ControlHandle = SynchronousDatagramSocketControlHandle;
83137
83138    fn control_handle(&self) -> &SynchronousDatagramSocketControlHandle {
83139        &self.control_handle
83140    }
83141
83142    fn drop_without_shutdown(mut self) {
83143        // Safety: drops once, never accessed again due to mem::forget
83144        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
83145        // Prevent Drop from running (which would shut down the channel)
83146        std::mem::forget(self);
83147    }
83148}
83149
83150impl SynchronousDatagramSocketSendMsgResponder {
83151    /// Sends a response to the FIDL transaction.
83152    ///
83153    /// Sets the channel to shutdown if an error occurs.
83154    pub fn send(
83155        self,
83156        mut result: Result<i64, fidl_fuchsia_posix::Errno>,
83157    ) -> Result<(), fidl::Error> {
83158        let _result = self.send_raw(result);
83159        if _result.is_err() {
83160            self.control_handle.shutdown();
83161        }
83162        self.drop_without_shutdown();
83163        _result
83164    }
83165
83166    /// Similar to "send" but does not shutdown the channel if an error occurs.
83167    pub fn send_no_shutdown_on_err(
83168        self,
83169        mut result: Result<i64, fidl_fuchsia_posix::Errno>,
83170    ) -> Result<(), fidl::Error> {
83171        let _result = self.send_raw(result);
83172        self.drop_without_shutdown();
83173        _result
83174    }
83175
83176    fn send_raw(
83177        &self,
83178        mut result: Result<i64, fidl_fuchsia_posix::Errno>,
83179    ) -> Result<(), fidl::Error> {
83180        self.control_handle.inner.send::<fidl::encoding::ResultType<
83181            SynchronousDatagramSocketSendMsgResponse,
83182            fidl_fuchsia_posix::Errno,
83183        >>(
83184            result.map(|len| (len,)),
83185            self.tx_id,
83186            0x12dc2fceab6cefaa,
83187            fidl::encoding::DynamicFlags::empty(),
83188        )
83189    }
83190}
83191
83192mod internal {
83193    use super::*;
83194
83195    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketWithOptionsRequest {
83196        type Borrowed<'a> = &'a mut Self;
83197        fn take_or_borrow<'a>(
83198            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83199        ) -> Self::Borrowed<'a> {
83200            value
83201        }
83202    }
83203
83204    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketWithOptionsRequest {
83205        type Owned = Self;
83206
83207        #[inline(always)]
83208        fn inline_align(_context: fidl::encoding::Context) -> usize {
83209            8
83210        }
83211
83212        #[inline(always)]
83213        fn inline_size(_context: fidl::encoding::Context) -> usize {
83214            24
83215        }
83216    }
83217
83218    unsafe impl
83219        fidl::encoding::Encode<
83220            ProviderDatagramSocketWithOptionsRequest,
83221            fidl::encoding::DefaultFuchsiaResourceDialect,
83222        > for &mut ProviderDatagramSocketWithOptionsRequest
83223    {
83224        #[inline]
83225        unsafe fn encode(
83226            self,
83227            encoder: &mut fidl::encoding::Encoder<
83228                '_,
83229                fidl::encoding::DefaultFuchsiaResourceDialect,
83230            >,
83231            offset: usize,
83232            _depth: fidl::encoding::Depth,
83233        ) -> fidl::Result<()> {
83234            encoder.debug_check_bounds::<ProviderDatagramSocketWithOptionsRequest>(offset);
83235            // Delegate to tuple encoding.
83236            fidl::encoding::Encode::<
83237                ProviderDatagramSocketWithOptionsRequest,
83238                fidl::encoding::DefaultFuchsiaResourceDialect,
83239            >::encode(
83240                (
83241                    <Domain as fidl::encoding::ValueTypeMarker>::borrow(&self.domain),
83242                    <DatagramSocketProtocol as fidl::encoding::ValueTypeMarker>::borrow(
83243                        &self.proto,
83244                    ),
83245                    <SocketCreationOptions as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
83246                        &mut self.opts,
83247                    ),
83248                ),
83249                encoder,
83250                offset,
83251                _depth,
83252            )
83253        }
83254    }
83255    unsafe impl<
83256        T0: fidl::encoding::Encode<Domain, fidl::encoding::DefaultFuchsiaResourceDialect>,
83257        T1: fidl::encoding::Encode<
83258                DatagramSocketProtocol,
83259                fidl::encoding::DefaultFuchsiaResourceDialect,
83260            >,
83261        T2: fidl::encoding::Encode<
83262                SocketCreationOptions,
83263                fidl::encoding::DefaultFuchsiaResourceDialect,
83264            >,
83265    >
83266        fidl::encoding::Encode<
83267            ProviderDatagramSocketWithOptionsRequest,
83268            fidl::encoding::DefaultFuchsiaResourceDialect,
83269        > for (T0, T1, T2)
83270    {
83271        #[inline]
83272        unsafe fn encode(
83273            self,
83274            encoder: &mut fidl::encoding::Encoder<
83275                '_,
83276                fidl::encoding::DefaultFuchsiaResourceDialect,
83277            >,
83278            offset: usize,
83279            depth: fidl::encoding::Depth,
83280        ) -> fidl::Result<()> {
83281            encoder.debug_check_bounds::<ProviderDatagramSocketWithOptionsRequest>(offset);
83282            // Zero out padding regions. There's no need to apply masks
83283            // because the unmasked parts will be overwritten by fields.
83284            unsafe {
83285                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
83286                (ptr as *mut u64).write_unaligned(0);
83287            }
83288            // Write the fields.
83289            self.0.encode(encoder, offset + 0, depth)?;
83290            self.1.encode(encoder, offset + 4, depth)?;
83291            self.2.encode(encoder, offset + 8, depth)?;
83292            Ok(())
83293        }
83294    }
83295
83296    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83297        for ProviderDatagramSocketWithOptionsRequest
83298    {
83299        #[inline(always)]
83300        fn new_empty() -> Self {
83301            Self {
83302                domain: fidl::new_empty!(Domain, fidl::encoding::DefaultFuchsiaResourceDialect),
83303                proto: fidl::new_empty!(
83304                    DatagramSocketProtocol,
83305                    fidl::encoding::DefaultFuchsiaResourceDialect
83306                ),
83307                opts: fidl::new_empty!(
83308                    SocketCreationOptions,
83309                    fidl::encoding::DefaultFuchsiaResourceDialect
83310                ),
83311            }
83312        }
83313
83314        #[inline]
83315        unsafe fn decode(
83316            &mut self,
83317            decoder: &mut fidl::encoding::Decoder<
83318                '_,
83319                fidl::encoding::DefaultFuchsiaResourceDialect,
83320            >,
83321            offset: usize,
83322            _depth: fidl::encoding::Depth,
83323        ) -> fidl::Result<()> {
83324            decoder.debug_check_bounds::<Self>(offset);
83325            // Verify that padding bytes are zero.
83326            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
83327            let padval = unsafe { (ptr as *const u64).read_unaligned() };
83328            let mask = 0xffff0000u64;
83329            let maskedval = padval & mask;
83330            if maskedval != 0 {
83331                return Err(fidl::Error::NonZeroPadding {
83332                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
83333                });
83334            }
83335            fidl::decode!(
83336                Domain,
83337                fidl::encoding::DefaultFuchsiaResourceDialect,
83338                &mut self.domain,
83339                decoder,
83340                offset + 0,
83341                _depth
83342            )?;
83343            fidl::decode!(
83344                DatagramSocketProtocol,
83345                fidl::encoding::DefaultFuchsiaResourceDialect,
83346                &mut self.proto,
83347                decoder,
83348                offset + 4,
83349                _depth
83350            )?;
83351            fidl::decode!(
83352                SocketCreationOptions,
83353                fidl::encoding::DefaultFuchsiaResourceDialect,
83354                &mut self.opts,
83355                decoder,
83356                offset + 8,
83357                _depth
83358            )?;
83359            Ok(())
83360        }
83361    }
83362
83363    impl fidl::encoding::ResourceTypeMarker for ProviderStreamSocketWithOptionsRequest {
83364        type Borrowed<'a> = &'a mut Self;
83365        fn take_or_borrow<'a>(
83366            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83367        ) -> Self::Borrowed<'a> {
83368            value
83369        }
83370    }
83371
83372    unsafe impl fidl::encoding::TypeMarker for ProviderStreamSocketWithOptionsRequest {
83373        type Owned = Self;
83374
83375        #[inline(always)]
83376        fn inline_align(_context: fidl::encoding::Context) -> usize {
83377            8
83378        }
83379
83380        #[inline(always)]
83381        fn inline_size(_context: fidl::encoding::Context) -> usize {
83382            24
83383        }
83384    }
83385
83386    unsafe impl
83387        fidl::encoding::Encode<
83388            ProviderStreamSocketWithOptionsRequest,
83389            fidl::encoding::DefaultFuchsiaResourceDialect,
83390        > for &mut ProviderStreamSocketWithOptionsRequest
83391    {
83392        #[inline]
83393        unsafe fn encode(
83394            self,
83395            encoder: &mut fidl::encoding::Encoder<
83396                '_,
83397                fidl::encoding::DefaultFuchsiaResourceDialect,
83398            >,
83399            offset: usize,
83400            _depth: fidl::encoding::Depth,
83401        ) -> fidl::Result<()> {
83402            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsRequest>(offset);
83403            // Delegate to tuple encoding.
83404            fidl::encoding::Encode::<
83405                ProviderStreamSocketWithOptionsRequest,
83406                fidl::encoding::DefaultFuchsiaResourceDialect,
83407            >::encode(
83408                (
83409                    <Domain as fidl::encoding::ValueTypeMarker>::borrow(&self.domain),
83410                    <StreamSocketProtocol as fidl::encoding::ValueTypeMarker>::borrow(&self.proto),
83411                    <SocketCreationOptions as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
83412                        &mut self.opts,
83413                    ),
83414                ),
83415                encoder,
83416                offset,
83417                _depth,
83418            )
83419        }
83420    }
83421    unsafe impl<
83422        T0: fidl::encoding::Encode<Domain, fidl::encoding::DefaultFuchsiaResourceDialect>,
83423        T1: fidl::encoding::Encode<StreamSocketProtocol, fidl::encoding::DefaultFuchsiaResourceDialect>,
83424        T2: fidl::encoding::Encode<
83425                SocketCreationOptions,
83426                fidl::encoding::DefaultFuchsiaResourceDialect,
83427            >,
83428    >
83429        fidl::encoding::Encode<
83430            ProviderStreamSocketWithOptionsRequest,
83431            fidl::encoding::DefaultFuchsiaResourceDialect,
83432        > for (T0, T1, T2)
83433    {
83434        #[inline]
83435        unsafe fn encode(
83436            self,
83437            encoder: &mut fidl::encoding::Encoder<
83438                '_,
83439                fidl::encoding::DefaultFuchsiaResourceDialect,
83440            >,
83441            offset: usize,
83442            depth: fidl::encoding::Depth,
83443        ) -> fidl::Result<()> {
83444            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsRequest>(offset);
83445            // Zero out padding regions. There's no need to apply masks
83446            // because the unmasked parts will be overwritten by fields.
83447            unsafe {
83448                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
83449                (ptr as *mut u64).write_unaligned(0);
83450            }
83451            // Write the fields.
83452            self.0.encode(encoder, offset + 0, depth)?;
83453            self.1.encode(encoder, offset + 4, depth)?;
83454            self.2.encode(encoder, offset + 8, depth)?;
83455            Ok(())
83456        }
83457    }
83458
83459    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83460        for ProviderStreamSocketWithOptionsRequest
83461    {
83462        #[inline(always)]
83463        fn new_empty() -> Self {
83464            Self {
83465                domain: fidl::new_empty!(Domain, fidl::encoding::DefaultFuchsiaResourceDialect),
83466                proto: fidl::new_empty!(
83467                    StreamSocketProtocol,
83468                    fidl::encoding::DefaultFuchsiaResourceDialect
83469                ),
83470                opts: fidl::new_empty!(
83471                    SocketCreationOptions,
83472                    fidl::encoding::DefaultFuchsiaResourceDialect
83473                ),
83474            }
83475        }
83476
83477        #[inline]
83478        unsafe fn decode(
83479            &mut self,
83480            decoder: &mut fidl::encoding::Decoder<
83481                '_,
83482                fidl::encoding::DefaultFuchsiaResourceDialect,
83483            >,
83484            offset: usize,
83485            _depth: fidl::encoding::Depth,
83486        ) -> fidl::Result<()> {
83487            decoder.debug_check_bounds::<Self>(offset);
83488            // Verify that padding bytes are zero.
83489            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
83490            let padval = unsafe { (ptr as *const u64).read_unaligned() };
83491            let mask = 0xffff0000u64;
83492            let maskedval = padval & mask;
83493            if maskedval != 0 {
83494                return Err(fidl::Error::NonZeroPadding {
83495                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
83496                });
83497            }
83498            fidl::decode!(
83499                Domain,
83500                fidl::encoding::DefaultFuchsiaResourceDialect,
83501                &mut self.domain,
83502                decoder,
83503                offset + 0,
83504                _depth
83505            )?;
83506            fidl::decode!(
83507                StreamSocketProtocol,
83508                fidl::encoding::DefaultFuchsiaResourceDialect,
83509                &mut self.proto,
83510                decoder,
83511                offset + 4,
83512                _depth
83513            )?;
83514            fidl::decode!(
83515                SocketCreationOptions,
83516                fidl::encoding::DefaultFuchsiaResourceDialect,
83517                &mut self.opts,
83518                decoder,
83519                offset + 8,
83520                _depth
83521            )?;
83522            Ok(())
83523        }
83524    }
83525
83526    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketDeprecatedResponse {
83527        type Borrowed<'a> = &'a mut Self;
83528        fn take_or_borrow<'a>(
83529            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83530        ) -> Self::Borrowed<'a> {
83531            value
83532        }
83533    }
83534
83535    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketDeprecatedResponse {
83536        type Owned = Self;
83537
83538        #[inline(always)]
83539        fn inline_align(_context: fidl::encoding::Context) -> usize {
83540            4
83541        }
83542
83543        #[inline(always)]
83544        fn inline_size(_context: fidl::encoding::Context) -> usize {
83545            4
83546        }
83547    }
83548
83549    unsafe impl
83550        fidl::encoding::Encode<
83551            ProviderDatagramSocketDeprecatedResponse,
83552            fidl::encoding::DefaultFuchsiaResourceDialect,
83553        > for &mut ProviderDatagramSocketDeprecatedResponse
83554    {
83555        #[inline]
83556        unsafe fn encode(
83557            self,
83558            encoder: &mut fidl::encoding::Encoder<
83559                '_,
83560                fidl::encoding::DefaultFuchsiaResourceDialect,
83561            >,
83562            offset: usize,
83563            _depth: fidl::encoding::Depth,
83564        ) -> fidl::Result<()> {
83565            encoder.debug_check_bounds::<ProviderDatagramSocketDeprecatedResponse>(offset);
83566            // Delegate to tuple encoding.
83567            fidl::encoding::Encode::<
83568                ProviderDatagramSocketDeprecatedResponse,
83569                fidl::encoding::DefaultFuchsiaResourceDialect,
83570            >::encode(
83571                (<fidl::encoding::Endpoint<
83572                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
83573                > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
83574                    &mut self.s
83575                ),),
83576                encoder,
83577                offset,
83578                _depth,
83579            )
83580        }
83581    }
83582    unsafe impl<
83583        T0: fidl::encoding::Encode<
83584                fidl::encoding::Endpoint<
83585                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
83586                >,
83587                fidl::encoding::DefaultFuchsiaResourceDialect,
83588            >,
83589    >
83590        fidl::encoding::Encode<
83591            ProviderDatagramSocketDeprecatedResponse,
83592            fidl::encoding::DefaultFuchsiaResourceDialect,
83593        > for (T0,)
83594    {
83595        #[inline]
83596        unsafe fn encode(
83597            self,
83598            encoder: &mut fidl::encoding::Encoder<
83599                '_,
83600                fidl::encoding::DefaultFuchsiaResourceDialect,
83601            >,
83602            offset: usize,
83603            depth: fidl::encoding::Depth,
83604        ) -> fidl::Result<()> {
83605            encoder.debug_check_bounds::<ProviderDatagramSocketDeprecatedResponse>(offset);
83606            // Zero out padding regions. There's no need to apply masks
83607            // because the unmasked parts will be overwritten by fields.
83608            // Write the fields.
83609            self.0.encode(encoder, offset + 0, depth)?;
83610            Ok(())
83611        }
83612    }
83613
83614    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83615        for ProviderDatagramSocketDeprecatedResponse
83616    {
83617        #[inline(always)]
83618        fn new_empty() -> Self {
83619            Self {
83620                s: fidl::new_empty!(
83621                    fidl::encoding::Endpoint<
83622                        fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
83623                    >,
83624                    fidl::encoding::DefaultFuchsiaResourceDialect
83625                ),
83626            }
83627        }
83628
83629        #[inline]
83630        unsafe fn decode(
83631            &mut self,
83632            decoder: &mut fidl::encoding::Decoder<
83633                '_,
83634                fidl::encoding::DefaultFuchsiaResourceDialect,
83635            >,
83636            offset: usize,
83637            _depth: fidl::encoding::Depth,
83638        ) -> fidl::Result<()> {
83639            decoder.debug_check_bounds::<Self>(offset);
83640            // Verify that padding bytes are zero.
83641            fidl::decode!(
83642                fidl::encoding::Endpoint<
83643                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
83644                >,
83645                fidl::encoding::DefaultFuchsiaResourceDialect,
83646                &mut self.s,
83647                decoder,
83648                offset + 0,
83649                _depth
83650            )?;
83651            Ok(())
83652        }
83653    }
83654
83655    impl fidl::encoding::ResourceTypeMarker for ProviderStreamSocketWithOptionsResponse {
83656        type Borrowed<'a> = &'a mut Self;
83657        fn take_or_borrow<'a>(
83658            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83659        ) -> Self::Borrowed<'a> {
83660            value
83661        }
83662    }
83663
83664    unsafe impl fidl::encoding::TypeMarker for ProviderStreamSocketWithOptionsResponse {
83665        type Owned = Self;
83666
83667        #[inline(always)]
83668        fn inline_align(_context: fidl::encoding::Context) -> usize {
83669            4
83670        }
83671
83672        #[inline(always)]
83673        fn inline_size(_context: fidl::encoding::Context) -> usize {
83674            4
83675        }
83676    }
83677
83678    unsafe impl
83679        fidl::encoding::Encode<
83680            ProviderStreamSocketWithOptionsResponse,
83681            fidl::encoding::DefaultFuchsiaResourceDialect,
83682        > for &mut ProviderStreamSocketWithOptionsResponse
83683    {
83684        #[inline]
83685        unsafe fn encode(
83686            self,
83687            encoder: &mut fidl::encoding::Encoder<
83688                '_,
83689                fidl::encoding::DefaultFuchsiaResourceDialect,
83690            >,
83691            offset: usize,
83692            _depth: fidl::encoding::Depth,
83693        ) -> fidl::Result<()> {
83694            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsResponse>(offset);
83695            // Delegate to tuple encoding.
83696            fidl::encoding::Encode::<ProviderStreamSocketWithOptionsResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
83697                (
83698                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.s),
83699                ),
83700                encoder, offset, _depth
83701            )
83702        }
83703    }
83704    unsafe impl<
83705        T0: fidl::encoding::Encode<
83706                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83707                fidl::encoding::DefaultFuchsiaResourceDialect,
83708            >,
83709    >
83710        fidl::encoding::Encode<
83711            ProviderStreamSocketWithOptionsResponse,
83712            fidl::encoding::DefaultFuchsiaResourceDialect,
83713        > for (T0,)
83714    {
83715        #[inline]
83716        unsafe fn encode(
83717            self,
83718            encoder: &mut fidl::encoding::Encoder<
83719                '_,
83720                fidl::encoding::DefaultFuchsiaResourceDialect,
83721            >,
83722            offset: usize,
83723            depth: fidl::encoding::Depth,
83724        ) -> fidl::Result<()> {
83725            encoder.debug_check_bounds::<ProviderStreamSocketWithOptionsResponse>(offset);
83726            // Zero out padding regions. There's no need to apply masks
83727            // because the unmasked parts will be overwritten by fields.
83728            // Write the fields.
83729            self.0.encode(encoder, offset + 0, depth)?;
83730            Ok(())
83731        }
83732    }
83733
83734    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83735        for ProviderStreamSocketWithOptionsResponse
83736    {
83737        #[inline(always)]
83738        fn new_empty() -> Self {
83739            Self {
83740                s: fidl::new_empty!(
83741                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83742                    fidl::encoding::DefaultFuchsiaResourceDialect
83743                ),
83744            }
83745        }
83746
83747        #[inline]
83748        unsafe fn decode(
83749            &mut self,
83750            decoder: &mut fidl::encoding::Decoder<
83751                '_,
83752                fidl::encoding::DefaultFuchsiaResourceDialect,
83753            >,
83754            offset: usize,
83755            _depth: fidl::encoding::Depth,
83756        ) -> fidl::Result<()> {
83757            decoder.debug_check_bounds::<Self>(offset);
83758            // Verify that padding bytes are zero.
83759            fidl::decode!(
83760                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83761                fidl::encoding::DefaultFuchsiaResourceDialect,
83762                &mut self.s,
83763                decoder,
83764                offset + 0,
83765                _depth
83766            )?;
83767            Ok(())
83768        }
83769    }
83770
83771    impl fidl::encoding::ResourceTypeMarker for ProviderStreamSocketResponse {
83772        type Borrowed<'a> = &'a mut Self;
83773        fn take_or_borrow<'a>(
83774            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83775        ) -> Self::Borrowed<'a> {
83776            value
83777        }
83778    }
83779
83780    unsafe impl fidl::encoding::TypeMarker for ProviderStreamSocketResponse {
83781        type Owned = Self;
83782
83783        #[inline(always)]
83784        fn inline_align(_context: fidl::encoding::Context) -> usize {
83785            4
83786        }
83787
83788        #[inline(always)]
83789        fn inline_size(_context: fidl::encoding::Context) -> usize {
83790            4
83791        }
83792    }
83793
83794    unsafe impl
83795        fidl::encoding::Encode<
83796            ProviderStreamSocketResponse,
83797            fidl::encoding::DefaultFuchsiaResourceDialect,
83798        > for &mut ProviderStreamSocketResponse
83799    {
83800        #[inline]
83801        unsafe fn encode(
83802            self,
83803            encoder: &mut fidl::encoding::Encoder<
83804                '_,
83805                fidl::encoding::DefaultFuchsiaResourceDialect,
83806            >,
83807            offset: usize,
83808            _depth: fidl::encoding::Depth,
83809        ) -> fidl::Result<()> {
83810            encoder.debug_check_bounds::<ProviderStreamSocketResponse>(offset);
83811            // Delegate to tuple encoding.
83812            fidl::encoding::Encode::<ProviderStreamSocketResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
83813                (
83814                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.s),
83815                ),
83816                encoder, offset, _depth
83817            )
83818        }
83819    }
83820    unsafe impl<
83821        T0: fidl::encoding::Encode<
83822                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83823                fidl::encoding::DefaultFuchsiaResourceDialect,
83824            >,
83825    >
83826        fidl::encoding::Encode<
83827            ProviderStreamSocketResponse,
83828            fidl::encoding::DefaultFuchsiaResourceDialect,
83829        > for (T0,)
83830    {
83831        #[inline]
83832        unsafe fn encode(
83833            self,
83834            encoder: &mut fidl::encoding::Encoder<
83835                '_,
83836                fidl::encoding::DefaultFuchsiaResourceDialect,
83837            >,
83838            offset: usize,
83839            depth: fidl::encoding::Depth,
83840        ) -> fidl::Result<()> {
83841            encoder.debug_check_bounds::<ProviderStreamSocketResponse>(offset);
83842            // Zero out padding regions. There's no need to apply masks
83843            // because the unmasked parts will be overwritten by fields.
83844            // Write the fields.
83845            self.0.encode(encoder, offset + 0, depth)?;
83846            Ok(())
83847        }
83848    }
83849
83850    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83851        for ProviderStreamSocketResponse
83852    {
83853        #[inline(always)]
83854        fn new_empty() -> Self {
83855            Self {
83856                s: fidl::new_empty!(
83857                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83858                    fidl::encoding::DefaultFuchsiaResourceDialect
83859                ),
83860            }
83861        }
83862
83863        #[inline]
83864        unsafe fn decode(
83865            &mut self,
83866            decoder: &mut fidl::encoding::Decoder<
83867                '_,
83868                fidl::encoding::DefaultFuchsiaResourceDialect,
83869            >,
83870            offset: usize,
83871            _depth: fidl::encoding::Depth,
83872        ) -> fidl::Result<()> {
83873            decoder.debug_check_bounds::<Self>(offset);
83874            // Verify that padding bytes are zero.
83875            fidl::decode!(
83876                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83877                fidl::encoding::DefaultFuchsiaResourceDialect,
83878                &mut self.s,
83879                decoder,
83880                offset + 0,
83881                _depth
83882            )?;
83883            Ok(())
83884        }
83885    }
83886
83887    impl fidl::encoding::ResourceTypeMarker for StreamSocketAcceptResponse {
83888        type Borrowed<'a> = &'a mut Self;
83889        fn take_or_borrow<'a>(
83890            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
83891        ) -> Self::Borrowed<'a> {
83892            value
83893        }
83894    }
83895
83896    unsafe impl fidl::encoding::TypeMarker for StreamSocketAcceptResponse {
83897        type Owned = Self;
83898
83899        #[inline(always)]
83900        fn inline_align(_context: fidl::encoding::Context) -> usize {
83901            8
83902        }
83903
83904        #[inline(always)]
83905        fn inline_size(_context: fidl::encoding::Context) -> usize {
83906            24
83907        }
83908    }
83909
83910    unsafe impl
83911        fidl::encoding::Encode<
83912            StreamSocketAcceptResponse,
83913            fidl::encoding::DefaultFuchsiaResourceDialect,
83914        > for &mut StreamSocketAcceptResponse
83915    {
83916        #[inline]
83917        unsafe fn encode(
83918            self,
83919            encoder: &mut fidl::encoding::Encoder<
83920                '_,
83921                fidl::encoding::DefaultFuchsiaResourceDialect,
83922            >,
83923            offset: usize,
83924            _depth: fidl::encoding::Depth,
83925        ) -> fidl::Result<()> {
83926            encoder.debug_check_bounds::<StreamSocketAcceptResponse>(offset);
83927            // Delegate to tuple encoding.
83928            fidl::encoding::Encode::<StreamSocketAcceptResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
83929                (
83930                    <fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress> as fidl::encoding::ValueTypeMarker>::borrow(&self.addr),
83931                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.s),
83932                ),
83933                encoder, offset, _depth
83934            )
83935        }
83936    }
83937    unsafe impl<
83938        T0: fidl::encoding::Encode<
83939                fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress>,
83940                fidl::encoding::DefaultFuchsiaResourceDialect,
83941            >,
83942        T1: fidl::encoding::Encode<
83943                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83944                fidl::encoding::DefaultFuchsiaResourceDialect,
83945            >,
83946    >
83947        fidl::encoding::Encode<
83948            StreamSocketAcceptResponse,
83949            fidl::encoding::DefaultFuchsiaResourceDialect,
83950        > for (T0, T1)
83951    {
83952        #[inline]
83953        unsafe fn encode(
83954            self,
83955            encoder: &mut fidl::encoding::Encoder<
83956                '_,
83957                fidl::encoding::DefaultFuchsiaResourceDialect,
83958            >,
83959            offset: usize,
83960            depth: fidl::encoding::Depth,
83961        ) -> fidl::Result<()> {
83962            encoder.debug_check_bounds::<StreamSocketAcceptResponse>(offset);
83963            // Zero out padding regions. There's no need to apply masks
83964            // because the unmasked parts will be overwritten by fields.
83965            unsafe {
83966                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
83967                (ptr as *mut u64).write_unaligned(0);
83968            }
83969            // Write the fields.
83970            self.0.encode(encoder, offset + 0, depth)?;
83971            self.1.encode(encoder, offset + 16, depth)?;
83972            Ok(())
83973        }
83974    }
83975
83976    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
83977        for StreamSocketAcceptResponse
83978    {
83979        #[inline(always)]
83980        fn new_empty() -> Self {
83981            Self {
83982                addr: fidl::new_empty!(
83983                    fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress>,
83984                    fidl::encoding::DefaultFuchsiaResourceDialect
83985                ),
83986                s: fidl::new_empty!(
83987                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
83988                    fidl::encoding::DefaultFuchsiaResourceDialect
83989                ),
83990            }
83991        }
83992
83993        #[inline]
83994        unsafe fn decode(
83995            &mut self,
83996            decoder: &mut fidl::encoding::Decoder<
83997                '_,
83998                fidl::encoding::DefaultFuchsiaResourceDialect,
83999            >,
84000            offset: usize,
84001            _depth: fidl::encoding::Depth,
84002        ) -> fidl::Result<()> {
84003            decoder.debug_check_bounds::<Self>(offset);
84004            // Verify that padding bytes are zero.
84005            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
84006            let padval = unsafe { (ptr as *const u64).read_unaligned() };
84007            let mask = 0xffffffff00000000u64;
84008            let maskedval = padval & mask;
84009            if maskedval != 0 {
84010                return Err(fidl::Error::NonZeroPadding {
84011                    padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
84012                });
84013            }
84014            fidl::decode!(
84015                fidl::encoding::OptionalUnion<fidl_fuchsia_net::SocketAddress>,
84016                fidl::encoding::DefaultFuchsiaResourceDialect,
84017                &mut self.addr,
84018                decoder,
84019                offset + 0,
84020                _depth
84021            )?;
84022            fidl::decode!(
84023                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<StreamSocketMarker>>,
84024                fidl::encoding::DefaultFuchsiaResourceDialect,
84025                &mut self.s,
84026                decoder,
84027                offset + 16,
84028                _depth
84029            )?;
84030            Ok(())
84031        }
84032    }
84033
84034    impl DatagramSocketDescribeResponse {
84035        #[inline(always)]
84036        fn max_ordinal_present(&self) -> u64 {
84037            if let Some(_) = self.metadata_encoding_protocol_version {
84038                return 4;
84039            }
84040            if let Some(_) = self.rx_meta_buf_size {
84041                return 3;
84042            }
84043            if let Some(_) = self.tx_meta_buf_size {
84044                return 2;
84045            }
84046            if let Some(_) = self.socket {
84047                return 1;
84048            }
84049            0
84050        }
84051    }
84052
84053    impl fidl::encoding::ResourceTypeMarker for DatagramSocketDescribeResponse {
84054        type Borrowed<'a> = &'a mut Self;
84055        fn take_or_borrow<'a>(
84056            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
84057        ) -> Self::Borrowed<'a> {
84058            value
84059        }
84060    }
84061
84062    unsafe impl fidl::encoding::TypeMarker for DatagramSocketDescribeResponse {
84063        type Owned = Self;
84064
84065        #[inline(always)]
84066        fn inline_align(_context: fidl::encoding::Context) -> usize {
84067            8
84068        }
84069
84070        #[inline(always)]
84071        fn inline_size(_context: fidl::encoding::Context) -> usize {
84072            16
84073        }
84074    }
84075
84076    unsafe impl
84077        fidl::encoding::Encode<
84078            DatagramSocketDescribeResponse,
84079            fidl::encoding::DefaultFuchsiaResourceDialect,
84080        > for &mut DatagramSocketDescribeResponse
84081    {
84082        unsafe fn encode(
84083            self,
84084            encoder: &mut fidl::encoding::Encoder<
84085                '_,
84086                fidl::encoding::DefaultFuchsiaResourceDialect,
84087            >,
84088            offset: usize,
84089            mut depth: fidl::encoding::Depth,
84090        ) -> fidl::Result<()> {
84091            encoder.debug_check_bounds::<DatagramSocketDescribeResponse>(offset);
84092            // Vector header
84093            let max_ordinal: u64 = self.max_ordinal_present();
84094            encoder.write_num(max_ordinal, offset);
84095            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
84096            // Calling encoder.out_of_line_offset(0) is not allowed.
84097            if max_ordinal == 0 {
84098                return Ok(());
84099            }
84100            depth.increment()?;
84101            let envelope_size = 8;
84102            let bytes_len = max_ordinal as usize * envelope_size;
84103            #[allow(unused_variables)]
84104            let offset = encoder.out_of_line_offset(bytes_len);
84105            let mut _prev_end_offset: usize = 0;
84106            if 1 > max_ordinal {
84107                return Ok(());
84108            }
84109
84110            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84111            // are envelope_size bytes.
84112            let cur_offset: usize = (1 - 1) * envelope_size;
84113
84114            // Zero reserved fields.
84115            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84116
84117            // Safety:
84118            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84119            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84120            //   envelope_size bytes, there is always sufficient room.
84121            fidl::encoding::encode_in_envelope_optional::<
84122                fidl::encoding::HandleType<
84123                    fidl::Socket,
84124                    { fidl::ObjectType::SOCKET.into_raw() },
84125                    2147483648,
84126                >,
84127                fidl::encoding::DefaultFuchsiaResourceDialect,
84128            >(
84129                self.socket.as_mut().map(
84130                    <fidl::encoding::HandleType<
84131                        fidl::Socket,
84132                        { fidl::ObjectType::SOCKET.into_raw() },
84133                        2147483648,
84134                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
84135                ),
84136                encoder,
84137                offset + cur_offset,
84138                depth,
84139            )?;
84140
84141            _prev_end_offset = cur_offset + envelope_size;
84142            if 2 > max_ordinal {
84143                return Ok(());
84144            }
84145
84146            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84147            // are envelope_size bytes.
84148            let cur_offset: usize = (2 - 1) * envelope_size;
84149
84150            // Zero reserved fields.
84151            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84152
84153            // Safety:
84154            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84155            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84156            //   envelope_size bytes, there is always sufficient room.
84157            fidl::encoding::encode_in_envelope_optional::<
84158                u64,
84159                fidl::encoding::DefaultFuchsiaResourceDialect,
84160            >(
84161                self.tx_meta_buf_size
84162                    .as_ref()
84163                    .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
84164                encoder,
84165                offset + cur_offset,
84166                depth,
84167            )?;
84168
84169            _prev_end_offset = cur_offset + envelope_size;
84170            if 3 > max_ordinal {
84171                return Ok(());
84172            }
84173
84174            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84175            // are envelope_size bytes.
84176            let cur_offset: usize = (3 - 1) * envelope_size;
84177
84178            // Zero reserved fields.
84179            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84180
84181            // Safety:
84182            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84183            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84184            //   envelope_size bytes, there is always sufficient room.
84185            fidl::encoding::encode_in_envelope_optional::<
84186                u64,
84187                fidl::encoding::DefaultFuchsiaResourceDialect,
84188            >(
84189                self.rx_meta_buf_size
84190                    .as_ref()
84191                    .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
84192                encoder,
84193                offset + cur_offset,
84194                depth,
84195            )?;
84196
84197            _prev_end_offset = cur_offset + envelope_size;
84198            if 4 > max_ordinal {
84199                return Ok(());
84200            }
84201
84202            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84203            // are envelope_size bytes.
84204            let cur_offset: usize = (4 - 1) * envelope_size;
84205
84206            // Zero reserved fields.
84207            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84208
84209            // Safety:
84210            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84211            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84212            //   envelope_size bytes, there is always sufficient room.
84213            fidl::encoding::encode_in_envelope_optional::<
84214                UdpMetadataEncodingProtocolVersion,
84215                fidl::encoding::DefaultFuchsiaResourceDialect,
84216            >(
84217                self.metadata_encoding_protocol_version.as_ref().map(
84218                    <UdpMetadataEncodingProtocolVersion as fidl::encoding::ValueTypeMarker>::borrow,
84219                ),
84220                encoder,
84221                offset + cur_offset,
84222                depth,
84223            )?;
84224
84225            _prev_end_offset = cur_offset + envelope_size;
84226
84227            Ok(())
84228        }
84229    }
84230
84231    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
84232        for DatagramSocketDescribeResponse
84233    {
84234        #[inline(always)]
84235        fn new_empty() -> Self {
84236            Self::default()
84237        }
84238
84239        unsafe fn decode(
84240            &mut self,
84241            decoder: &mut fidl::encoding::Decoder<
84242                '_,
84243                fidl::encoding::DefaultFuchsiaResourceDialect,
84244            >,
84245            offset: usize,
84246            mut depth: fidl::encoding::Depth,
84247        ) -> fidl::Result<()> {
84248            decoder.debug_check_bounds::<Self>(offset);
84249            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
84250                None => return Err(fidl::Error::NotNullable),
84251                Some(len) => len,
84252            };
84253            // Calling decoder.out_of_line_offset(0) is not allowed.
84254            if len == 0 {
84255                return Ok(());
84256            };
84257            depth.increment()?;
84258            let envelope_size = 8;
84259            let bytes_len = len * envelope_size;
84260            let offset = decoder.out_of_line_offset(bytes_len)?;
84261            // Decode the envelope for each type.
84262            let mut _next_ordinal_to_read = 0;
84263            let mut next_offset = offset;
84264            let end_offset = offset + bytes_len;
84265            _next_ordinal_to_read += 1;
84266            if next_offset >= end_offset {
84267                return Ok(());
84268            }
84269
84270            // Decode unknown envelopes for gaps in ordinals.
84271            while _next_ordinal_to_read < 1 {
84272                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84273                _next_ordinal_to_read += 1;
84274                next_offset += envelope_size;
84275            }
84276
84277            let next_out_of_line = decoder.next_out_of_line();
84278            let handles_before = decoder.remaining_handles();
84279            if let Some((inlined, num_bytes, num_handles)) =
84280                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84281            {
84282                let member_inline_size = <fidl::encoding::HandleType<
84283                    fidl::Socket,
84284                    { fidl::ObjectType::SOCKET.into_raw() },
84285                    2147483648,
84286                > as fidl::encoding::TypeMarker>::inline_size(
84287                    decoder.context
84288                );
84289                if inlined != (member_inline_size <= 4) {
84290                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84291                }
84292                let inner_offset;
84293                let mut inner_depth = depth.clone();
84294                if inlined {
84295                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84296                    inner_offset = next_offset;
84297                } else {
84298                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84299                    inner_depth.increment()?;
84300                }
84301                let val_ref =
84302                self.socket.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect));
84303                fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
84304                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84305                {
84306                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84307                }
84308                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84309                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84310                }
84311            }
84312
84313            next_offset += envelope_size;
84314            _next_ordinal_to_read += 1;
84315            if next_offset >= end_offset {
84316                return Ok(());
84317            }
84318
84319            // Decode unknown envelopes for gaps in ordinals.
84320            while _next_ordinal_to_read < 2 {
84321                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84322                _next_ordinal_to_read += 1;
84323                next_offset += envelope_size;
84324            }
84325
84326            let next_out_of_line = decoder.next_out_of_line();
84327            let handles_before = decoder.remaining_handles();
84328            if let Some((inlined, num_bytes, num_handles)) =
84329                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84330            {
84331                let member_inline_size =
84332                    <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
84333                if inlined != (member_inline_size <= 4) {
84334                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84335                }
84336                let inner_offset;
84337                let mut inner_depth = depth.clone();
84338                if inlined {
84339                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84340                    inner_offset = next_offset;
84341                } else {
84342                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84343                    inner_depth.increment()?;
84344                }
84345                let val_ref = self.tx_meta_buf_size.get_or_insert_with(|| {
84346                    fidl::new_empty!(u64, fidl::encoding::DefaultFuchsiaResourceDialect)
84347                });
84348                fidl::decode!(
84349                    u64,
84350                    fidl::encoding::DefaultFuchsiaResourceDialect,
84351                    val_ref,
84352                    decoder,
84353                    inner_offset,
84354                    inner_depth
84355                )?;
84356                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84357                {
84358                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84359                }
84360                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84361                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84362                }
84363            }
84364
84365            next_offset += envelope_size;
84366            _next_ordinal_to_read += 1;
84367            if next_offset >= end_offset {
84368                return Ok(());
84369            }
84370
84371            // Decode unknown envelopes for gaps in ordinals.
84372            while _next_ordinal_to_read < 3 {
84373                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84374                _next_ordinal_to_read += 1;
84375                next_offset += envelope_size;
84376            }
84377
84378            let next_out_of_line = decoder.next_out_of_line();
84379            let handles_before = decoder.remaining_handles();
84380            if let Some((inlined, num_bytes, num_handles)) =
84381                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84382            {
84383                let member_inline_size =
84384                    <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
84385                if inlined != (member_inline_size <= 4) {
84386                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84387                }
84388                let inner_offset;
84389                let mut inner_depth = depth.clone();
84390                if inlined {
84391                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84392                    inner_offset = next_offset;
84393                } else {
84394                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84395                    inner_depth.increment()?;
84396                }
84397                let val_ref = self.rx_meta_buf_size.get_or_insert_with(|| {
84398                    fidl::new_empty!(u64, fidl::encoding::DefaultFuchsiaResourceDialect)
84399                });
84400                fidl::decode!(
84401                    u64,
84402                    fidl::encoding::DefaultFuchsiaResourceDialect,
84403                    val_ref,
84404                    decoder,
84405                    inner_offset,
84406                    inner_depth
84407                )?;
84408                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84409                {
84410                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84411                }
84412                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84413                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84414                }
84415            }
84416
84417            next_offset += envelope_size;
84418            _next_ordinal_to_read += 1;
84419            if next_offset >= end_offset {
84420                return Ok(());
84421            }
84422
84423            // Decode unknown envelopes for gaps in ordinals.
84424            while _next_ordinal_to_read < 4 {
84425                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84426                _next_ordinal_to_read += 1;
84427                next_offset += envelope_size;
84428            }
84429
84430            let next_out_of_line = decoder.next_out_of_line();
84431            let handles_before = decoder.remaining_handles();
84432            if let Some((inlined, num_bytes, num_handles)) =
84433                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84434            {
84435                let member_inline_size =
84436                    <UdpMetadataEncodingProtocolVersion as fidl::encoding::TypeMarker>::inline_size(
84437                        decoder.context,
84438                    );
84439                if inlined != (member_inline_size <= 4) {
84440                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84441                }
84442                let inner_offset;
84443                let mut inner_depth = depth.clone();
84444                if inlined {
84445                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84446                    inner_offset = next_offset;
84447                } else {
84448                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84449                    inner_depth.increment()?;
84450                }
84451                let val_ref = self.metadata_encoding_protocol_version.get_or_insert_with(|| {
84452                    fidl::new_empty!(
84453                        UdpMetadataEncodingProtocolVersion,
84454                        fidl::encoding::DefaultFuchsiaResourceDialect
84455                    )
84456                });
84457                fidl::decode!(
84458                    UdpMetadataEncodingProtocolVersion,
84459                    fidl::encoding::DefaultFuchsiaResourceDialect,
84460                    val_ref,
84461                    decoder,
84462                    inner_offset,
84463                    inner_depth
84464                )?;
84465                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84466                {
84467                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84468                }
84469                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84470                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84471                }
84472            }
84473
84474            next_offset += envelope_size;
84475
84476            // Decode the remaining unknown envelopes.
84477            while next_offset < end_offset {
84478                _next_ordinal_to_read += 1;
84479                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84480                next_offset += envelope_size;
84481            }
84482
84483            Ok(())
84484        }
84485    }
84486
84487    impl DatagramSocketRecvMsgPostflightResponse {
84488        #[inline(always)]
84489        fn max_ordinal_present(&self) -> u64 {
84490            if let Some(_) = self.requests {
84491                return 3;
84492            }
84493            if let Some(_) = self.timestamp {
84494                return 2;
84495            }
84496            if let Some(_) = self.validity {
84497                return 1;
84498            }
84499            0
84500        }
84501    }
84502
84503    impl fidl::encoding::ResourceTypeMarker for DatagramSocketRecvMsgPostflightResponse {
84504        type Borrowed<'a> = &'a mut Self;
84505        fn take_or_borrow<'a>(
84506            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
84507        ) -> Self::Borrowed<'a> {
84508            value
84509        }
84510    }
84511
84512    unsafe impl fidl::encoding::TypeMarker for DatagramSocketRecvMsgPostflightResponse {
84513        type Owned = Self;
84514
84515        #[inline(always)]
84516        fn inline_align(_context: fidl::encoding::Context) -> usize {
84517            8
84518        }
84519
84520        #[inline(always)]
84521        fn inline_size(_context: fidl::encoding::Context) -> usize {
84522            16
84523        }
84524    }
84525
84526    unsafe impl
84527        fidl::encoding::Encode<
84528            DatagramSocketRecvMsgPostflightResponse,
84529            fidl::encoding::DefaultFuchsiaResourceDialect,
84530        > for &mut DatagramSocketRecvMsgPostflightResponse
84531    {
84532        unsafe fn encode(
84533            self,
84534            encoder: &mut fidl::encoding::Encoder<
84535                '_,
84536                fidl::encoding::DefaultFuchsiaResourceDialect,
84537            >,
84538            offset: usize,
84539            mut depth: fidl::encoding::Depth,
84540        ) -> fidl::Result<()> {
84541            encoder.debug_check_bounds::<DatagramSocketRecvMsgPostflightResponse>(offset);
84542            // Vector header
84543            let max_ordinal: u64 = self.max_ordinal_present();
84544            encoder.write_num(max_ordinal, offset);
84545            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
84546            // Calling encoder.out_of_line_offset(0) is not allowed.
84547            if max_ordinal == 0 {
84548                return Ok(());
84549            }
84550            depth.increment()?;
84551            let envelope_size = 8;
84552            let bytes_len = max_ordinal as usize * envelope_size;
84553            #[allow(unused_variables)]
84554            let offset = encoder.out_of_line_offset(bytes_len);
84555            let mut _prev_end_offset: usize = 0;
84556            if 1 > max_ordinal {
84557                return Ok(());
84558            }
84559
84560            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84561            // are envelope_size bytes.
84562            let cur_offset: usize = (1 - 1) * envelope_size;
84563
84564            // Zero reserved fields.
84565            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84566
84567            // Safety:
84568            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84569            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84570            //   envelope_size bytes, there is always sufficient room.
84571            fidl::encoding::encode_in_envelope_optional::<
84572                fidl::encoding::HandleType<
84573                    fidl::EventPair,
84574                    { fidl::ObjectType::EVENTPAIR.into_raw() },
84575                    49155,
84576                >,
84577                fidl::encoding::DefaultFuchsiaResourceDialect,
84578            >(
84579                self.validity.as_mut().map(
84580                    <fidl::encoding::HandleType<
84581                        fidl::EventPair,
84582                        { fidl::ObjectType::EVENTPAIR.into_raw() },
84583                        49155,
84584                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
84585                ),
84586                encoder,
84587                offset + cur_offset,
84588                depth,
84589            )?;
84590
84591            _prev_end_offset = cur_offset + envelope_size;
84592            if 2 > max_ordinal {
84593                return Ok(());
84594            }
84595
84596            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84597            // are envelope_size bytes.
84598            let cur_offset: usize = (2 - 1) * envelope_size;
84599
84600            // Zero reserved fields.
84601            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84602
84603            // Safety:
84604            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84605            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84606            //   envelope_size bytes, there is always sufficient room.
84607            fidl::encoding::encode_in_envelope_optional::<
84608                TimestampOption,
84609                fidl::encoding::DefaultFuchsiaResourceDialect,
84610            >(
84611                self.timestamp
84612                    .as_ref()
84613                    .map(<TimestampOption as fidl::encoding::ValueTypeMarker>::borrow),
84614                encoder,
84615                offset + cur_offset,
84616                depth,
84617            )?;
84618
84619            _prev_end_offset = cur_offset + envelope_size;
84620            if 3 > max_ordinal {
84621                return Ok(());
84622            }
84623
84624            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84625            // are envelope_size bytes.
84626            let cur_offset: usize = (3 - 1) * envelope_size;
84627
84628            // Zero reserved fields.
84629            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84630
84631            // Safety:
84632            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84633            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84634            //   envelope_size bytes, there is always sufficient room.
84635            fidl::encoding::encode_in_envelope_optional::<
84636                CmsgRequests,
84637                fidl::encoding::DefaultFuchsiaResourceDialect,
84638            >(
84639                self.requests
84640                    .as_ref()
84641                    .map(<CmsgRequests as fidl::encoding::ValueTypeMarker>::borrow),
84642                encoder,
84643                offset + cur_offset,
84644                depth,
84645            )?;
84646
84647            _prev_end_offset = cur_offset + envelope_size;
84648
84649            Ok(())
84650        }
84651    }
84652
84653    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
84654        for DatagramSocketRecvMsgPostflightResponse
84655    {
84656        #[inline(always)]
84657        fn new_empty() -> Self {
84658            Self::default()
84659        }
84660
84661        unsafe fn decode(
84662            &mut self,
84663            decoder: &mut fidl::encoding::Decoder<
84664                '_,
84665                fidl::encoding::DefaultFuchsiaResourceDialect,
84666            >,
84667            offset: usize,
84668            mut depth: fidl::encoding::Depth,
84669        ) -> fidl::Result<()> {
84670            decoder.debug_check_bounds::<Self>(offset);
84671            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
84672                None => return Err(fidl::Error::NotNullable),
84673                Some(len) => len,
84674            };
84675            // Calling decoder.out_of_line_offset(0) is not allowed.
84676            if len == 0 {
84677                return Ok(());
84678            };
84679            depth.increment()?;
84680            let envelope_size = 8;
84681            let bytes_len = len * envelope_size;
84682            let offset = decoder.out_of_line_offset(bytes_len)?;
84683            // Decode the envelope for each type.
84684            let mut _next_ordinal_to_read = 0;
84685            let mut next_offset = offset;
84686            let end_offset = offset + bytes_len;
84687            _next_ordinal_to_read += 1;
84688            if next_offset >= end_offset {
84689                return Ok(());
84690            }
84691
84692            // Decode unknown envelopes for gaps in ordinals.
84693            while _next_ordinal_to_read < 1 {
84694                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84695                _next_ordinal_to_read += 1;
84696                next_offset += envelope_size;
84697            }
84698
84699            let next_out_of_line = decoder.next_out_of_line();
84700            let handles_before = decoder.remaining_handles();
84701            if let Some((inlined, num_bytes, num_handles)) =
84702                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84703            {
84704                let member_inline_size = <fidl::encoding::HandleType<
84705                    fidl::EventPair,
84706                    { fidl::ObjectType::EVENTPAIR.into_raw() },
84707                    49155,
84708                > as fidl::encoding::TypeMarker>::inline_size(
84709                    decoder.context
84710                );
84711                if inlined != (member_inline_size <= 4) {
84712                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84713                }
84714                let inner_offset;
84715                let mut inner_depth = depth.clone();
84716                if inlined {
84717                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84718                    inner_offset = next_offset;
84719                } else {
84720                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84721                    inner_depth.increment()?;
84722                }
84723                let val_ref =
84724                self.validity.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 49155>, fidl::encoding::DefaultFuchsiaResourceDialect));
84725                fidl::decode!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 49155>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
84726                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84727                {
84728                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84729                }
84730                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84731                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84732                }
84733            }
84734
84735            next_offset += envelope_size;
84736            _next_ordinal_to_read += 1;
84737            if next_offset >= end_offset {
84738                return Ok(());
84739            }
84740
84741            // Decode unknown envelopes for gaps in ordinals.
84742            while _next_ordinal_to_read < 2 {
84743                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84744                _next_ordinal_to_read += 1;
84745                next_offset += envelope_size;
84746            }
84747
84748            let next_out_of_line = decoder.next_out_of_line();
84749            let handles_before = decoder.remaining_handles();
84750            if let Some((inlined, num_bytes, num_handles)) =
84751                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84752            {
84753                let member_inline_size =
84754                    <TimestampOption as fidl::encoding::TypeMarker>::inline_size(decoder.context);
84755                if inlined != (member_inline_size <= 4) {
84756                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84757                }
84758                let inner_offset;
84759                let mut inner_depth = depth.clone();
84760                if inlined {
84761                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84762                    inner_offset = next_offset;
84763                } else {
84764                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84765                    inner_depth.increment()?;
84766                }
84767                let val_ref = self.timestamp.get_or_insert_with(|| {
84768                    fidl::new_empty!(TimestampOption, fidl::encoding::DefaultFuchsiaResourceDialect)
84769                });
84770                fidl::decode!(
84771                    TimestampOption,
84772                    fidl::encoding::DefaultFuchsiaResourceDialect,
84773                    val_ref,
84774                    decoder,
84775                    inner_offset,
84776                    inner_depth
84777                )?;
84778                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84779                {
84780                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84781                }
84782                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84783                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84784                }
84785            }
84786
84787            next_offset += envelope_size;
84788            _next_ordinal_to_read += 1;
84789            if next_offset >= end_offset {
84790                return Ok(());
84791            }
84792
84793            // Decode unknown envelopes for gaps in ordinals.
84794            while _next_ordinal_to_read < 3 {
84795                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84796                _next_ordinal_to_read += 1;
84797                next_offset += envelope_size;
84798            }
84799
84800            let next_out_of_line = decoder.next_out_of_line();
84801            let handles_before = decoder.remaining_handles();
84802            if let Some((inlined, num_bytes, num_handles)) =
84803                fidl::encoding::decode_envelope_header(decoder, next_offset)?
84804            {
84805                let member_inline_size =
84806                    <CmsgRequests as fidl::encoding::TypeMarker>::inline_size(decoder.context);
84807                if inlined != (member_inline_size <= 4) {
84808                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
84809                }
84810                let inner_offset;
84811                let mut inner_depth = depth.clone();
84812                if inlined {
84813                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
84814                    inner_offset = next_offset;
84815                } else {
84816                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
84817                    inner_depth.increment()?;
84818                }
84819                let val_ref = self.requests.get_or_insert_with(|| {
84820                    fidl::new_empty!(CmsgRequests, fidl::encoding::DefaultFuchsiaResourceDialect)
84821                });
84822                fidl::decode!(
84823                    CmsgRequests,
84824                    fidl::encoding::DefaultFuchsiaResourceDialect,
84825                    val_ref,
84826                    decoder,
84827                    inner_offset,
84828                    inner_depth
84829                )?;
84830                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
84831                {
84832                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
84833                }
84834                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
84835                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
84836                }
84837            }
84838
84839            next_offset += envelope_size;
84840
84841            // Decode the remaining unknown envelopes.
84842            while next_offset < end_offset {
84843                _next_ordinal_to_read += 1;
84844                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
84845                next_offset += envelope_size;
84846            }
84847
84848            Ok(())
84849        }
84850    }
84851
84852    impl DatagramSocketSendMsgPreflightResponse {
84853        #[inline(always)]
84854        fn max_ordinal_present(&self) -> u64 {
84855            if let Some(_) = self.maximum_size {
84856                return 3;
84857            }
84858            if let Some(_) = self.validity {
84859                return 2;
84860            }
84861            if let Some(_) = self.to {
84862                return 1;
84863            }
84864            0
84865        }
84866    }
84867
84868    impl fidl::encoding::ResourceTypeMarker for DatagramSocketSendMsgPreflightResponse {
84869        type Borrowed<'a> = &'a mut Self;
84870        fn take_or_borrow<'a>(
84871            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
84872        ) -> Self::Borrowed<'a> {
84873            value
84874        }
84875    }
84876
84877    unsafe impl fidl::encoding::TypeMarker for DatagramSocketSendMsgPreflightResponse {
84878        type Owned = Self;
84879
84880        #[inline(always)]
84881        fn inline_align(_context: fidl::encoding::Context) -> usize {
84882            8
84883        }
84884
84885        #[inline(always)]
84886        fn inline_size(_context: fidl::encoding::Context) -> usize {
84887            16
84888        }
84889    }
84890
84891    unsafe impl
84892        fidl::encoding::Encode<
84893            DatagramSocketSendMsgPreflightResponse,
84894            fidl::encoding::DefaultFuchsiaResourceDialect,
84895        > for &mut DatagramSocketSendMsgPreflightResponse
84896    {
84897        unsafe fn encode(
84898            self,
84899            encoder: &mut fidl::encoding::Encoder<
84900                '_,
84901                fidl::encoding::DefaultFuchsiaResourceDialect,
84902            >,
84903            offset: usize,
84904            mut depth: fidl::encoding::Depth,
84905        ) -> fidl::Result<()> {
84906            encoder.debug_check_bounds::<DatagramSocketSendMsgPreflightResponse>(offset);
84907            // Vector header
84908            let max_ordinal: u64 = self.max_ordinal_present();
84909            encoder.write_num(max_ordinal, offset);
84910            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
84911            // Calling encoder.out_of_line_offset(0) is not allowed.
84912            if max_ordinal == 0 {
84913                return Ok(());
84914            }
84915            depth.increment()?;
84916            let envelope_size = 8;
84917            let bytes_len = max_ordinal as usize * envelope_size;
84918            #[allow(unused_variables)]
84919            let offset = encoder.out_of_line_offset(bytes_len);
84920            let mut _prev_end_offset: usize = 0;
84921            if 1 > max_ordinal {
84922                return Ok(());
84923            }
84924
84925            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84926            // are envelope_size bytes.
84927            let cur_offset: usize = (1 - 1) * envelope_size;
84928
84929            // Zero reserved fields.
84930            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84931
84932            // Safety:
84933            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84934            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84935            //   envelope_size bytes, there is always sufficient room.
84936            fidl::encoding::encode_in_envelope_optional::<
84937                fidl_fuchsia_net::SocketAddress,
84938                fidl::encoding::DefaultFuchsiaResourceDialect,
84939            >(
84940                self.to.as_ref().map(
84941                    <fidl_fuchsia_net::SocketAddress as fidl::encoding::ValueTypeMarker>::borrow,
84942                ),
84943                encoder,
84944                offset + cur_offset,
84945                depth,
84946            )?;
84947
84948            _prev_end_offset = cur_offset + envelope_size;
84949            if 2 > max_ordinal {
84950                return Ok(());
84951            }
84952
84953            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84954            // are envelope_size bytes.
84955            let cur_offset: usize = (2 - 1) * envelope_size;
84956
84957            // Zero reserved fields.
84958            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
84959
84960            // Safety:
84961            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
84962            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
84963            //   envelope_size bytes, there is always sufficient room.
84964            fidl::encoding::encode_in_envelope_optional::<
84965                fidl::encoding::Vector<
84966                    fidl::encoding::HandleType<
84967                        fidl::EventPair,
84968                        { fidl::ObjectType::EVENTPAIR.into_raw() },
84969                        49155,
84970                    >,
84971                    63,
84972                >,
84973                fidl::encoding::DefaultFuchsiaResourceDialect,
84974            >(
84975                self.validity.as_mut().map(
84976                    <fidl::encoding::Vector<
84977                        fidl::encoding::HandleType<
84978                            fidl::EventPair,
84979                            { fidl::ObjectType::EVENTPAIR.into_raw() },
84980                            49155,
84981                        >,
84982                        63,
84983                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
84984                ),
84985                encoder,
84986                offset + cur_offset,
84987                depth,
84988            )?;
84989
84990            _prev_end_offset = cur_offset + envelope_size;
84991            if 3 > max_ordinal {
84992                return Ok(());
84993            }
84994
84995            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
84996            // are envelope_size bytes.
84997            let cur_offset: usize = (3 - 1) * envelope_size;
84998
84999            // Zero reserved fields.
85000            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85001
85002            // Safety:
85003            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85004            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85005            //   envelope_size bytes, there is always sufficient room.
85006            fidl::encoding::encode_in_envelope_optional::<
85007                u32,
85008                fidl::encoding::DefaultFuchsiaResourceDialect,
85009            >(
85010                self.maximum_size.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
85011                encoder,
85012                offset + cur_offset,
85013                depth,
85014            )?;
85015
85016            _prev_end_offset = cur_offset + envelope_size;
85017
85018            Ok(())
85019        }
85020    }
85021
85022    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85023        for DatagramSocketSendMsgPreflightResponse
85024    {
85025        #[inline(always)]
85026        fn new_empty() -> Self {
85027            Self::default()
85028        }
85029
85030        unsafe fn decode(
85031            &mut self,
85032            decoder: &mut fidl::encoding::Decoder<
85033                '_,
85034                fidl::encoding::DefaultFuchsiaResourceDialect,
85035            >,
85036            offset: usize,
85037            mut depth: fidl::encoding::Depth,
85038        ) -> fidl::Result<()> {
85039            decoder.debug_check_bounds::<Self>(offset);
85040            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
85041                None => return Err(fidl::Error::NotNullable),
85042                Some(len) => len,
85043            };
85044            // Calling decoder.out_of_line_offset(0) is not allowed.
85045            if len == 0 {
85046                return Ok(());
85047            };
85048            depth.increment()?;
85049            let envelope_size = 8;
85050            let bytes_len = len * envelope_size;
85051            let offset = decoder.out_of_line_offset(bytes_len)?;
85052            // Decode the envelope for each type.
85053            let mut _next_ordinal_to_read = 0;
85054            let mut next_offset = offset;
85055            let end_offset = offset + bytes_len;
85056            _next_ordinal_to_read += 1;
85057            if next_offset >= end_offset {
85058                return Ok(());
85059            }
85060
85061            // Decode unknown envelopes for gaps in ordinals.
85062            while _next_ordinal_to_read < 1 {
85063                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85064                _next_ordinal_to_read += 1;
85065                next_offset += envelope_size;
85066            }
85067
85068            let next_out_of_line = decoder.next_out_of_line();
85069            let handles_before = decoder.remaining_handles();
85070            if let Some((inlined, num_bytes, num_handles)) =
85071                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85072            {
85073                let member_inline_size =
85074                    <fidl_fuchsia_net::SocketAddress as fidl::encoding::TypeMarker>::inline_size(
85075                        decoder.context,
85076                    );
85077                if inlined != (member_inline_size <= 4) {
85078                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85079                }
85080                let inner_offset;
85081                let mut inner_depth = depth.clone();
85082                if inlined {
85083                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85084                    inner_offset = next_offset;
85085                } else {
85086                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85087                    inner_depth.increment()?;
85088                }
85089                let val_ref = self.to.get_or_insert_with(|| {
85090                    fidl::new_empty!(
85091                        fidl_fuchsia_net::SocketAddress,
85092                        fidl::encoding::DefaultFuchsiaResourceDialect
85093                    )
85094                });
85095                fidl::decode!(
85096                    fidl_fuchsia_net::SocketAddress,
85097                    fidl::encoding::DefaultFuchsiaResourceDialect,
85098                    val_ref,
85099                    decoder,
85100                    inner_offset,
85101                    inner_depth
85102                )?;
85103                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85104                {
85105                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85106                }
85107                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85108                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85109                }
85110            }
85111
85112            next_offset += envelope_size;
85113            _next_ordinal_to_read += 1;
85114            if next_offset >= end_offset {
85115                return Ok(());
85116            }
85117
85118            // Decode unknown envelopes for gaps in ordinals.
85119            while _next_ordinal_to_read < 2 {
85120                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85121                _next_ordinal_to_read += 1;
85122                next_offset += envelope_size;
85123            }
85124
85125            let next_out_of_line = decoder.next_out_of_line();
85126            let handles_before = decoder.remaining_handles();
85127            if let Some((inlined, num_bytes, num_handles)) =
85128                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85129            {
85130                let member_inline_size = <fidl::encoding::Vector<
85131                    fidl::encoding::HandleType<
85132                        fidl::EventPair,
85133                        { fidl::ObjectType::EVENTPAIR.into_raw() },
85134                        49155,
85135                    >,
85136                    63,
85137                > as fidl::encoding::TypeMarker>::inline_size(
85138                    decoder.context
85139                );
85140                if inlined != (member_inline_size <= 4) {
85141                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85142                }
85143                let inner_offset;
85144                let mut inner_depth = depth.clone();
85145                if inlined {
85146                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85147                    inner_offset = next_offset;
85148                } else {
85149                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85150                    inner_depth.increment()?;
85151                }
85152                let val_ref = self.validity.get_or_insert_with(|| {
85153                    fidl::new_empty!(
85154                        fidl::encoding::Vector<
85155                            fidl::encoding::HandleType<
85156                                fidl::EventPair,
85157                                { fidl::ObjectType::EVENTPAIR.into_raw() },
85158                                49155,
85159                            >,
85160                            63,
85161                        >,
85162                        fidl::encoding::DefaultFuchsiaResourceDialect
85163                    )
85164                });
85165                fidl::decode!(
85166                    fidl::encoding::Vector<
85167                        fidl::encoding::HandleType<
85168                            fidl::EventPair,
85169                            { fidl::ObjectType::EVENTPAIR.into_raw() },
85170                            49155,
85171                        >,
85172                        63,
85173                    >,
85174                    fidl::encoding::DefaultFuchsiaResourceDialect,
85175                    val_ref,
85176                    decoder,
85177                    inner_offset,
85178                    inner_depth
85179                )?;
85180                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85181                {
85182                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85183                }
85184                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85185                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85186                }
85187            }
85188
85189            next_offset += envelope_size;
85190            _next_ordinal_to_read += 1;
85191            if next_offset >= end_offset {
85192                return Ok(());
85193            }
85194
85195            // Decode unknown envelopes for gaps in ordinals.
85196            while _next_ordinal_to_read < 3 {
85197                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85198                _next_ordinal_to_read += 1;
85199                next_offset += envelope_size;
85200            }
85201
85202            let next_out_of_line = decoder.next_out_of_line();
85203            let handles_before = decoder.remaining_handles();
85204            if let Some((inlined, num_bytes, num_handles)) =
85205                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85206            {
85207                let member_inline_size =
85208                    <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
85209                if inlined != (member_inline_size <= 4) {
85210                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85211                }
85212                let inner_offset;
85213                let mut inner_depth = depth.clone();
85214                if inlined {
85215                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85216                    inner_offset = next_offset;
85217                } else {
85218                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85219                    inner_depth.increment()?;
85220                }
85221                let val_ref = self.maximum_size.get_or_insert_with(|| {
85222                    fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
85223                });
85224                fidl::decode!(
85225                    u32,
85226                    fidl::encoding::DefaultFuchsiaResourceDialect,
85227                    val_ref,
85228                    decoder,
85229                    inner_offset,
85230                    inner_depth
85231                )?;
85232                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85233                {
85234                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85235                }
85236                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85237                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85238                }
85239            }
85240
85241            next_offset += envelope_size;
85242
85243            // Decode the remaining unknown envelopes.
85244            while next_offset < end_offset {
85245                _next_ordinal_to_read += 1;
85246                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85247                next_offset += envelope_size;
85248            }
85249
85250            Ok(())
85251        }
85252    }
85253
85254    impl SocketCreationOptions {
85255        #[inline(always)]
85256        fn max_ordinal_present(&self) -> u64 {
85257            if let Some(_) = self.group {
85258                return 2;
85259            }
85260            if let Some(_) = self.marks {
85261                return 1;
85262            }
85263            0
85264        }
85265    }
85266
85267    impl fidl::encoding::ResourceTypeMarker for SocketCreationOptions {
85268        type Borrowed<'a> = &'a mut Self;
85269        fn take_or_borrow<'a>(
85270            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85271        ) -> Self::Borrowed<'a> {
85272            value
85273        }
85274    }
85275
85276    unsafe impl fidl::encoding::TypeMarker for SocketCreationOptions {
85277        type Owned = Self;
85278
85279        #[inline(always)]
85280        fn inline_align(_context: fidl::encoding::Context) -> usize {
85281            8
85282        }
85283
85284        #[inline(always)]
85285        fn inline_size(_context: fidl::encoding::Context) -> usize {
85286            16
85287        }
85288    }
85289
85290    unsafe impl
85291        fidl::encoding::Encode<SocketCreationOptions, fidl::encoding::DefaultFuchsiaResourceDialect>
85292        for &mut SocketCreationOptions
85293    {
85294        unsafe fn encode(
85295            self,
85296            encoder: &mut fidl::encoding::Encoder<
85297                '_,
85298                fidl::encoding::DefaultFuchsiaResourceDialect,
85299            >,
85300            offset: usize,
85301            mut depth: fidl::encoding::Depth,
85302        ) -> fidl::Result<()> {
85303            encoder.debug_check_bounds::<SocketCreationOptions>(offset);
85304            // Vector header
85305            let max_ordinal: u64 = self.max_ordinal_present();
85306            encoder.write_num(max_ordinal, offset);
85307            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
85308            // Calling encoder.out_of_line_offset(0) is not allowed.
85309            if max_ordinal == 0 {
85310                return Ok(());
85311            }
85312            depth.increment()?;
85313            let envelope_size = 8;
85314            let bytes_len = max_ordinal as usize * envelope_size;
85315            #[allow(unused_variables)]
85316            let offset = encoder.out_of_line_offset(bytes_len);
85317            let mut _prev_end_offset: usize = 0;
85318            if 1 > max_ordinal {
85319                return Ok(());
85320            }
85321
85322            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
85323            // are envelope_size bytes.
85324            let cur_offset: usize = (1 - 1) * envelope_size;
85325
85326            // Zero reserved fields.
85327            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85328
85329            // Safety:
85330            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85331            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85332            //   envelope_size bytes, there is always sufficient room.
85333            fidl::encoding::encode_in_envelope_optional::<
85334                fidl_fuchsia_net::Marks,
85335                fidl::encoding::DefaultFuchsiaResourceDialect,
85336            >(
85337                self.marks
85338                    .as_ref()
85339                    .map(<fidl_fuchsia_net::Marks as fidl::encoding::ValueTypeMarker>::borrow),
85340                encoder,
85341                offset + cur_offset,
85342                depth,
85343            )?;
85344
85345            _prev_end_offset = cur_offset + envelope_size;
85346            if 2 > max_ordinal {
85347                return Ok(());
85348            }
85349
85350            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
85351            // are envelope_size bytes.
85352            let cur_offset: usize = (2 - 1) * envelope_size;
85353
85354            // Zero reserved fields.
85355            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85356
85357            // Safety:
85358            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85359            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85360            //   envelope_size bytes, there is always sufficient room.
85361            fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net_resources::WakeGroupToken, fidl::encoding::DefaultFuchsiaResourceDialect>(
85362            self.group.as_mut().map(<fidl_fuchsia_net_resources::WakeGroupToken as fidl::encoding::ResourceTypeMarker>::take_or_borrow),
85363            encoder, offset + cur_offset, depth
85364        )?;
85365
85366            _prev_end_offset = cur_offset + envelope_size;
85367
85368            Ok(())
85369        }
85370    }
85371
85372    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85373        for SocketCreationOptions
85374    {
85375        #[inline(always)]
85376        fn new_empty() -> Self {
85377            Self::default()
85378        }
85379
85380        unsafe fn decode(
85381            &mut self,
85382            decoder: &mut fidl::encoding::Decoder<
85383                '_,
85384                fidl::encoding::DefaultFuchsiaResourceDialect,
85385            >,
85386            offset: usize,
85387            mut depth: fidl::encoding::Depth,
85388        ) -> fidl::Result<()> {
85389            decoder.debug_check_bounds::<Self>(offset);
85390            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
85391                None => return Err(fidl::Error::NotNullable),
85392                Some(len) => len,
85393            };
85394            // Calling decoder.out_of_line_offset(0) is not allowed.
85395            if len == 0 {
85396                return Ok(());
85397            };
85398            depth.increment()?;
85399            let envelope_size = 8;
85400            let bytes_len = len * envelope_size;
85401            let offset = decoder.out_of_line_offset(bytes_len)?;
85402            // Decode the envelope for each type.
85403            let mut _next_ordinal_to_read = 0;
85404            let mut next_offset = offset;
85405            let end_offset = offset + bytes_len;
85406            _next_ordinal_to_read += 1;
85407            if next_offset >= end_offset {
85408                return Ok(());
85409            }
85410
85411            // Decode unknown envelopes for gaps in ordinals.
85412            while _next_ordinal_to_read < 1 {
85413                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85414                _next_ordinal_to_read += 1;
85415                next_offset += envelope_size;
85416            }
85417
85418            let next_out_of_line = decoder.next_out_of_line();
85419            let handles_before = decoder.remaining_handles();
85420            if let Some((inlined, num_bytes, num_handles)) =
85421                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85422            {
85423                let member_inline_size =
85424                    <fidl_fuchsia_net::Marks as fidl::encoding::TypeMarker>::inline_size(
85425                        decoder.context,
85426                    );
85427                if inlined != (member_inline_size <= 4) {
85428                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85429                }
85430                let inner_offset;
85431                let mut inner_depth = depth.clone();
85432                if inlined {
85433                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85434                    inner_offset = next_offset;
85435                } else {
85436                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85437                    inner_depth.increment()?;
85438                }
85439                let val_ref = self.marks.get_or_insert_with(|| {
85440                    fidl::new_empty!(
85441                        fidl_fuchsia_net::Marks,
85442                        fidl::encoding::DefaultFuchsiaResourceDialect
85443                    )
85444                });
85445                fidl::decode!(
85446                    fidl_fuchsia_net::Marks,
85447                    fidl::encoding::DefaultFuchsiaResourceDialect,
85448                    val_ref,
85449                    decoder,
85450                    inner_offset,
85451                    inner_depth
85452                )?;
85453                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85454                {
85455                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85456                }
85457                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85458                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85459                }
85460            }
85461
85462            next_offset += envelope_size;
85463            _next_ordinal_to_read += 1;
85464            if next_offset >= end_offset {
85465                return Ok(());
85466            }
85467
85468            // Decode unknown envelopes for gaps in ordinals.
85469            while _next_ordinal_to_read < 2 {
85470                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85471                _next_ordinal_to_read += 1;
85472                next_offset += envelope_size;
85473            }
85474
85475            let next_out_of_line = decoder.next_out_of_line();
85476            let handles_before = decoder.remaining_handles();
85477            if let Some((inlined, num_bytes, num_handles)) =
85478                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85479            {
85480                let member_inline_size = <fidl_fuchsia_net_resources::WakeGroupToken as fidl::encoding::TypeMarker>::inline_size(decoder.context);
85481                if inlined != (member_inline_size <= 4) {
85482                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85483                }
85484                let inner_offset;
85485                let mut inner_depth = depth.clone();
85486                if inlined {
85487                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85488                    inner_offset = next_offset;
85489                } else {
85490                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85491                    inner_depth.increment()?;
85492                }
85493                let val_ref = self.group.get_or_insert_with(|| {
85494                    fidl::new_empty!(
85495                        fidl_fuchsia_net_resources::WakeGroupToken,
85496                        fidl::encoding::DefaultFuchsiaResourceDialect
85497                    )
85498                });
85499                fidl::decode!(
85500                    fidl_fuchsia_net_resources::WakeGroupToken,
85501                    fidl::encoding::DefaultFuchsiaResourceDialect,
85502                    val_ref,
85503                    decoder,
85504                    inner_offset,
85505                    inner_depth
85506                )?;
85507                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85508                {
85509                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85510                }
85511                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85512                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85513                }
85514            }
85515
85516            next_offset += envelope_size;
85517
85518            // Decode the remaining unknown envelopes.
85519            while next_offset < end_offset {
85520                _next_ordinal_to_read += 1;
85521                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85522                next_offset += envelope_size;
85523            }
85524
85525            Ok(())
85526        }
85527    }
85528
85529    impl StreamSocketDescribeResponse {
85530        #[inline(always)]
85531        fn max_ordinal_present(&self) -> u64 {
85532            if let Some(_) = self.socket {
85533                return 1;
85534            }
85535            0
85536        }
85537    }
85538
85539    impl fidl::encoding::ResourceTypeMarker for StreamSocketDescribeResponse {
85540        type Borrowed<'a> = &'a mut Self;
85541        fn take_or_borrow<'a>(
85542            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85543        ) -> Self::Borrowed<'a> {
85544            value
85545        }
85546    }
85547
85548    unsafe impl fidl::encoding::TypeMarker for StreamSocketDescribeResponse {
85549        type Owned = Self;
85550
85551        #[inline(always)]
85552        fn inline_align(_context: fidl::encoding::Context) -> usize {
85553            8
85554        }
85555
85556        #[inline(always)]
85557        fn inline_size(_context: fidl::encoding::Context) -> usize {
85558            16
85559        }
85560    }
85561
85562    unsafe impl
85563        fidl::encoding::Encode<
85564            StreamSocketDescribeResponse,
85565            fidl::encoding::DefaultFuchsiaResourceDialect,
85566        > for &mut StreamSocketDescribeResponse
85567    {
85568        unsafe fn encode(
85569            self,
85570            encoder: &mut fidl::encoding::Encoder<
85571                '_,
85572                fidl::encoding::DefaultFuchsiaResourceDialect,
85573            >,
85574            offset: usize,
85575            mut depth: fidl::encoding::Depth,
85576        ) -> fidl::Result<()> {
85577            encoder.debug_check_bounds::<StreamSocketDescribeResponse>(offset);
85578            // Vector header
85579            let max_ordinal: u64 = self.max_ordinal_present();
85580            encoder.write_num(max_ordinal, offset);
85581            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
85582            // Calling encoder.out_of_line_offset(0) is not allowed.
85583            if max_ordinal == 0 {
85584                return Ok(());
85585            }
85586            depth.increment()?;
85587            let envelope_size = 8;
85588            let bytes_len = max_ordinal as usize * envelope_size;
85589            #[allow(unused_variables)]
85590            let offset = encoder.out_of_line_offset(bytes_len);
85591            let mut _prev_end_offset: usize = 0;
85592            if 1 > max_ordinal {
85593                return Ok(());
85594            }
85595
85596            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
85597            // are envelope_size bytes.
85598            let cur_offset: usize = (1 - 1) * envelope_size;
85599
85600            // Zero reserved fields.
85601            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85602
85603            // Safety:
85604            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85605            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85606            //   envelope_size bytes, there is always sufficient room.
85607            fidl::encoding::encode_in_envelope_optional::<
85608                fidl::encoding::HandleType<
85609                    fidl::Socket,
85610                    { fidl::ObjectType::SOCKET.into_raw() },
85611                    2147483648,
85612                >,
85613                fidl::encoding::DefaultFuchsiaResourceDialect,
85614            >(
85615                self.socket.as_mut().map(
85616                    <fidl::encoding::HandleType<
85617                        fidl::Socket,
85618                        { fidl::ObjectType::SOCKET.into_raw() },
85619                        2147483648,
85620                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
85621                ),
85622                encoder,
85623                offset + cur_offset,
85624                depth,
85625            )?;
85626
85627            _prev_end_offset = cur_offset + envelope_size;
85628
85629            Ok(())
85630        }
85631    }
85632
85633    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85634        for StreamSocketDescribeResponse
85635    {
85636        #[inline(always)]
85637        fn new_empty() -> Self {
85638            Self::default()
85639        }
85640
85641        unsafe fn decode(
85642            &mut self,
85643            decoder: &mut fidl::encoding::Decoder<
85644                '_,
85645                fidl::encoding::DefaultFuchsiaResourceDialect,
85646            >,
85647            offset: usize,
85648            mut depth: fidl::encoding::Depth,
85649        ) -> fidl::Result<()> {
85650            decoder.debug_check_bounds::<Self>(offset);
85651            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
85652                None => return Err(fidl::Error::NotNullable),
85653                Some(len) => len,
85654            };
85655            // Calling decoder.out_of_line_offset(0) is not allowed.
85656            if len == 0 {
85657                return Ok(());
85658            };
85659            depth.increment()?;
85660            let envelope_size = 8;
85661            let bytes_len = len * envelope_size;
85662            let offset = decoder.out_of_line_offset(bytes_len)?;
85663            // Decode the envelope for each type.
85664            let mut _next_ordinal_to_read = 0;
85665            let mut next_offset = offset;
85666            let end_offset = offset + bytes_len;
85667            _next_ordinal_to_read += 1;
85668            if next_offset >= end_offset {
85669                return Ok(());
85670            }
85671
85672            // Decode unknown envelopes for gaps in ordinals.
85673            while _next_ordinal_to_read < 1 {
85674                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85675                _next_ordinal_to_read += 1;
85676                next_offset += envelope_size;
85677            }
85678
85679            let next_out_of_line = decoder.next_out_of_line();
85680            let handles_before = decoder.remaining_handles();
85681            if let Some((inlined, num_bytes, num_handles)) =
85682                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85683            {
85684                let member_inline_size = <fidl::encoding::HandleType<
85685                    fidl::Socket,
85686                    { fidl::ObjectType::SOCKET.into_raw() },
85687                    2147483648,
85688                > as fidl::encoding::TypeMarker>::inline_size(
85689                    decoder.context
85690                );
85691                if inlined != (member_inline_size <= 4) {
85692                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85693                }
85694                let inner_offset;
85695                let mut inner_depth = depth.clone();
85696                if inlined {
85697                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85698                    inner_offset = next_offset;
85699                } else {
85700                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85701                    inner_depth.increment()?;
85702                }
85703                let val_ref =
85704                self.socket.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect));
85705                fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
85706                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85707                {
85708                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85709                }
85710                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85711                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85712                }
85713            }
85714
85715            next_offset += envelope_size;
85716
85717            // Decode the remaining unknown envelopes.
85718            while next_offset < end_offset {
85719                _next_ordinal_to_read += 1;
85720                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85721                next_offset += envelope_size;
85722            }
85723
85724            Ok(())
85725        }
85726    }
85727
85728    impl SynchronousDatagramSocketDescribeResponse {
85729        #[inline(always)]
85730        fn max_ordinal_present(&self) -> u64 {
85731            if let Some(_) = self.event {
85732                return 1;
85733            }
85734            0
85735        }
85736    }
85737
85738    impl fidl::encoding::ResourceTypeMarker for SynchronousDatagramSocketDescribeResponse {
85739        type Borrowed<'a> = &'a mut Self;
85740        fn take_or_borrow<'a>(
85741            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85742        ) -> Self::Borrowed<'a> {
85743            value
85744        }
85745    }
85746
85747    unsafe impl fidl::encoding::TypeMarker for SynchronousDatagramSocketDescribeResponse {
85748        type Owned = Self;
85749
85750        #[inline(always)]
85751        fn inline_align(_context: fidl::encoding::Context) -> usize {
85752            8
85753        }
85754
85755        #[inline(always)]
85756        fn inline_size(_context: fidl::encoding::Context) -> usize {
85757            16
85758        }
85759    }
85760
85761    unsafe impl
85762        fidl::encoding::Encode<
85763            SynchronousDatagramSocketDescribeResponse,
85764            fidl::encoding::DefaultFuchsiaResourceDialect,
85765        > for &mut SynchronousDatagramSocketDescribeResponse
85766    {
85767        unsafe fn encode(
85768            self,
85769            encoder: &mut fidl::encoding::Encoder<
85770                '_,
85771                fidl::encoding::DefaultFuchsiaResourceDialect,
85772            >,
85773            offset: usize,
85774            mut depth: fidl::encoding::Depth,
85775        ) -> fidl::Result<()> {
85776            encoder.debug_check_bounds::<SynchronousDatagramSocketDescribeResponse>(offset);
85777            // Vector header
85778            let max_ordinal: u64 = self.max_ordinal_present();
85779            encoder.write_num(max_ordinal, offset);
85780            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
85781            // Calling encoder.out_of_line_offset(0) is not allowed.
85782            if max_ordinal == 0 {
85783                return Ok(());
85784            }
85785            depth.increment()?;
85786            let envelope_size = 8;
85787            let bytes_len = max_ordinal as usize * envelope_size;
85788            #[allow(unused_variables)]
85789            let offset = encoder.out_of_line_offset(bytes_len);
85790            let mut _prev_end_offset: usize = 0;
85791            if 1 > max_ordinal {
85792                return Ok(());
85793            }
85794
85795            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
85796            // are envelope_size bytes.
85797            let cur_offset: usize = (1 - 1) * envelope_size;
85798
85799            // Zero reserved fields.
85800            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
85801
85802            // Safety:
85803            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
85804            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
85805            //   envelope_size bytes, there is always sufficient room.
85806            fidl::encoding::encode_in_envelope_optional::<
85807                fidl::encoding::HandleType<
85808                    fidl::EventPair,
85809                    { fidl::ObjectType::EVENTPAIR.into_raw() },
85810                    2147483648,
85811                >,
85812                fidl::encoding::DefaultFuchsiaResourceDialect,
85813            >(
85814                self.event.as_mut().map(
85815                    <fidl::encoding::HandleType<
85816                        fidl::EventPair,
85817                        { fidl::ObjectType::EVENTPAIR.into_raw() },
85818                        2147483648,
85819                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
85820                ),
85821                encoder,
85822                offset + cur_offset,
85823                depth,
85824            )?;
85825
85826            _prev_end_offset = cur_offset + envelope_size;
85827
85828            Ok(())
85829        }
85830    }
85831
85832    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85833        for SynchronousDatagramSocketDescribeResponse
85834    {
85835        #[inline(always)]
85836        fn new_empty() -> Self {
85837            Self::default()
85838        }
85839
85840        unsafe fn decode(
85841            &mut self,
85842            decoder: &mut fidl::encoding::Decoder<
85843                '_,
85844                fidl::encoding::DefaultFuchsiaResourceDialect,
85845            >,
85846            offset: usize,
85847            mut depth: fidl::encoding::Depth,
85848        ) -> fidl::Result<()> {
85849            decoder.debug_check_bounds::<Self>(offset);
85850            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
85851                None => return Err(fidl::Error::NotNullable),
85852                Some(len) => len,
85853            };
85854            // Calling decoder.out_of_line_offset(0) is not allowed.
85855            if len == 0 {
85856                return Ok(());
85857            };
85858            depth.increment()?;
85859            let envelope_size = 8;
85860            let bytes_len = len * envelope_size;
85861            let offset = decoder.out_of_line_offset(bytes_len)?;
85862            // Decode the envelope for each type.
85863            let mut _next_ordinal_to_read = 0;
85864            let mut next_offset = offset;
85865            let end_offset = offset + bytes_len;
85866            _next_ordinal_to_read += 1;
85867            if next_offset >= end_offset {
85868                return Ok(());
85869            }
85870
85871            // Decode unknown envelopes for gaps in ordinals.
85872            while _next_ordinal_to_read < 1 {
85873                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85874                _next_ordinal_to_read += 1;
85875                next_offset += envelope_size;
85876            }
85877
85878            let next_out_of_line = decoder.next_out_of_line();
85879            let handles_before = decoder.remaining_handles();
85880            if let Some((inlined, num_bytes, num_handles)) =
85881                fidl::encoding::decode_envelope_header(decoder, next_offset)?
85882            {
85883                let member_inline_size = <fidl::encoding::HandleType<
85884                    fidl::EventPair,
85885                    { fidl::ObjectType::EVENTPAIR.into_raw() },
85886                    2147483648,
85887                > as fidl::encoding::TypeMarker>::inline_size(
85888                    decoder.context
85889                );
85890                if inlined != (member_inline_size <= 4) {
85891                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
85892                }
85893                let inner_offset;
85894                let mut inner_depth = depth.clone();
85895                if inlined {
85896                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
85897                    inner_offset = next_offset;
85898                } else {
85899                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
85900                    inner_depth.increment()?;
85901                }
85902                let val_ref =
85903                self.event.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect));
85904                fidl::decode!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
85905                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
85906                {
85907                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
85908                }
85909                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
85910                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
85911                }
85912            }
85913
85914            next_offset += envelope_size;
85915
85916            // Decode the remaining unknown envelopes.
85917            while next_offset < end_offset {
85918                _next_ordinal_to_read += 1;
85919                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
85920                next_offset += envelope_size;
85921            }
85922
85923            Ok(())
85924        }
85925    }
85926
85927    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketWithOptionsResponse {
85928        type Borrowed<'a> = &'a mut Self;
85929        fn take_or_borrow<'a>(
85930            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
85931        ) -> Self::Borrowed<'a> {
85932            value
85933        }
85934    }
85935
85936    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketWithOptionsResponse {
85937        type Owned = Self;
85938
85939        #[inline(always)]
85940        fn inline_align(_context: fidl::encoding::Context) -> usize {
85941            8
85942        }
85943
85944        #[inline(always)]
85945        fn inline_size(_context: fidl::encoding::Context) -> usize {
85946            16
85947        }
85948    }
85949
85950    unsafe impl
85951        fidl::encoding::Encode<
85952            ProviderDatagramSocketWithOptionsResponse,
85953            fidl::encoding::DefaultFuchsiaResourceDialect,
85954        > for &mut ProviderDatagramSocketWithOptionsResponse
85955    {
85956        #[inline]
85957        unsafe fn encode(
85958            self,
85959            encoder: &mut fidl::encoding::Encoder<
85960                '_,
85961                fidl::encoding::DefaultFuchsiaResourceDialect,
85962            >,
85963            offset: usize,
85964            _depth: fidl::encoding::Depth,
85965        ) -> fidl::Result<()> {
85966            encoder.debug_check_bounds::<ProviderDatagramSocketWithOptionsResponse>(offset);
85967            encoder.write_num::<u64>(self.ordinal(), offset);
85968            match self {
85969            ProviderDatagramSocketWithOptionsResponse::DatagramSocket(ref mut val) => {
85970                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
85971                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
85972                    encoder, offset + 8, _depth
85973                )
85974            }
85975            ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(ref mut val) => {
85976                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
85977                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
85978                    encoder, offset + 8, _depth
85979                )
85980            }
85981        }
85982        }
85983    }
85984
85985    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
85986        for ProviderDatagramSocketWithOptionsResponse
85987    {
85988        #[inline(always)]
85989        fn new_empty() -> Self {
85990            Self::DatagramSocket(fidl::new_empty!(
85991                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>,
85992                fidl::encoding::DefaultFuchsiaResourceDialect
85993            ))
85994        }
85995
85996        #[inline]
85997        unsafe fn decode(
85998            &mut self,
85999            decoder: &mut fidl::encoding::Decoder<
86000                '_,
86001                fidl::encoding::DefaultFuchsiaResourceDialect,
86002            >,
86003            offset: usize,
86004            mut depth: fidl::encoding::Depth,
86005        ) -> fidl::Result<()> {
86006            decoder.debug_check_bounds::<Self>(offset);
86007            #[allow(unused_variables)]
86008            let next_out_of_line = decoder.next_out_of_line();
86009            let handles_before = decoder.remaining_handles();
86010            let (ordinal, inlined, num_bytes, num_handles) =
86011                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
86012
86013            let member_inline_size = match ordinal {
86014            1 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
86015            2 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
86016            _ => return Err(fidl::Error::UnknownUnionTag),
86017        };
86018
86019            if inlined != (member_inline_size <= 4) {
86020                return Err(fidl::Error::InvalidInlineBitInEnvelope);
86021            }
86022            let _inner_offset;
86023            if inlined {
86024                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
86025                _inner_offset = offset + 8;
86026            } else {
86027                depth.increment()?;
86028                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
86029            }
86030            match ordinal {
86031                1 => {
86032                    #[allow(irrefutable_let_patterns)]
86033                    if let ProviderDatagramSocketWithOptionsResponse::DatagramSocket(_) = self {
86034                        // Do nothing, read the value into the object
86035                    } else {
86036                        // Initialize `self` to the right variant
86037                        *self = ProviderDatagramSocketWithOptionsResponse::DatagramSocket(
86038                            fidl::new_empty!(
86039                                fidl::encoding::Endpoint<
86040                                    fidl::endpoints::ClientEnd<DatagramSocketMarker>,
86041                                >,
86042                                fidl::encoding::DefaultFuchsiaResourceDialect
86043                            ),
86044                        );
86045                    }
86046                    #[allow(irrefutable_let_patterns)]
86047                    if let ProviderDatagramSocketWithOptionsResponse::DatagramSocket(ref mut val) =
86048                        self
86049                    {
86050                        fidl::decode!(
86051                            fidl::encoding::Endpoint<
86052                                fidl::endpoints::ClientEnd<DatagramSocketMarker>,
86053                            >,
86054                            fidl::encoding::DefaultFuchsiaResourceDialect,
86055                            val,
86056                            decoder,
86057                            _inner_offset,
86058                            depth
86059                        )?;
86060                    } else {
86061                        unreachable!()
86062                    }
86063                }
86064                2 => {
86065                    #[allow(irrefutable_let_patterns)]
86066                    if let ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(_) =
86067                        self
86068                    {
86069                        // Do nothing, read the value into the object
86070                    } else {
86071                        // Initialize `self` to the right variant
86072                        *self =
86073                            ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(
86074                                fidl::new_empty!(
86075                                    fidl::encoding::Endpoint<
86076                                        fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
86077                                    >,
86078                                    fidl::encoding::DefaultFuchsiaResourceDialect
86079                                ),
86080                            );
86081                    }
86082                    #[allow(irrefutable_let_patterns)]
86083                    if let ProviderDatagramSocketWithOptionsResponse::SynchronousDatagramSocket(
86084                        ref mut val,
86085                    ) = self
86086                    {
86087                        fidl::decode!(
86088                            fidl::encoding::Endpoint<
86089                                fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
86090                            >,
86091                            fidl::encoding::DefaultFuchsiaResourceDialect,
86092                            val,
86093                            decoder,
86094                            _inner_offset,
86095                            depth
86096                        )?;
86097                    } else {
86098                        unreachable!()
86099                    }
86100                }
86101                ordinal => panic!("unexpected ordinal {:?}", ordinal),
86102            }
86103            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
86104                return Err(fidl::Error::InvalidNumBytesInEnvelope);
86105            }
86106            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
86107                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
86108            }
86109            Ok(())
86110        }
86111    }
86112
86113    impl fidl::encoding::ResourceTypeMarker for ProviderDatagramSocketResponse {
86114        type Borrowed<'a> = &'a mut Self;
86115        fn take_or_borrow<'a>(
86116            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
86117        ) -> Self::Borrowed<'a> {
86118            value
86119        }
86120    }
86121
86122    unsafe impl fidl::encoding::TypeMarker for ProviderDatagramSocketResponse {
86123        type Owned = Self;
86124
86125        #[inline(always)]
86126        fn inline_align(_context: fidl::encoding::Context) -> usize {
86127            8
86128        }
86129
86130        #[inline(always)]
86131        fn inline_size(_context: fidl::encoding::Context) -> usize {
86132            16
86133        }
86134    }
86135
86136    unsafe impl
86137        fidl::encoding::Encode<
86138            ProviderDatagramSocketResponse,
86139            fidl::encoding::DefaultFuchsiaResourceDialect,
86140        > for &mut ProviderDatagramSocketResponse
86141    {
86142        #[inline]
86143        unsafe fn encode(
86144            self,
86145            encoder: &mut fidl::encoding::Encoder<
86146                '_,
86147                fidl::encoding::DefaultFuchsiaResourceDialect,
86148            >,
86149            offset: usize,
86150            _depth: fidl::encoding::Depth,
86151        ) -> fidl::Result<()> {
86152            encoder.debug_check_bounds::<ProviderDatagramSocketResponse>(offset);
86153            encoder.write_num::<u64>(self.ordinal(), offset);
86154            match self {
86155            ProviderDatagramSocketResponse::DatagramSocket(ref mut val) => {
86156                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
86157                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
86158                    encoder, offset + 8, _depth
86159                )
86160            }
86161            ProviderDatagramSocketResponse::SynchronousDatagramSocket(ref mut val) => {
86162                fidl::encoding::encode_in_envelope::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
86163                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
86164                    encoder, offset + 8, _depth
86165                )
86166            }
86167        }
86168        }
86169    }
86170
86171    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
86172        for ProviderDatagramSocketResponse
86173    {
86174        #[inline(always)]
86175        fn new_empty() -> Self {
86176            Self::DatagramSocket(fidl::new_empty!(
86177                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>>,
86178                fidl::encoding::DefaultFuchsiaResourceDialect
86179            ))
86180        }
86181
86182        #[inline]
86183        unsafe fn decode(
86184            &mut self,
86185            decoder: &mut fidl::encoding::Decoder<
86186                '_,
86187                fidl::encoding::DefaultFuchsiaResourceDialect,
86188            >,
86189            offset: usize,
86190            mut depth: fidl::encoding::Depth,
86191        ) -> fidl::Result<()> {
86192            decoder.debug_check_bounds::<Self>(offset);
86193            #[allow(unused_variables)]
86194            let next_out_of_line = decoder.next_out_of_line();
86195            let handles_before = decoder.remaining_handles();
86196            let (ordinal, inlined, num_bytes, num_handles) =
86197                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
86198
86199            let member_inline_size = match ordinal {
86200            1 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<DatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
86201            2 => <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
86202            _ => return Err(fidl::Error::UnknownUnionTag),
86203        };
86204
86205            if inlined != (member_inline_size <= 4) {
86206                return Err(fidl::Error::InvalidInlineBitInEnvelope);
86207            }
86208            let _inner_offset;
86209            if inlined {
86210                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
86211                _inner_offset = offset + 8;
86212            } else {
86213                depth.increment()?;
86214                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
86215            }
86216            match ordinal {
86217                1 => {
86218                    #[allow(irrefutable_let_patterns)]
86219                    if let ProviderDatagramSocketResponse::DatagramSocket(_) = self {
86220                        // Do nothing, read the value into the object
86221                    } else {
86222                        // Initialize `self` to the right variant
86223                        *self = ProviderDatagramSocketResponse::DatagramSocket(fidl::new_empty!(
86224                            fidl::encoding::Endpoint<
86225                                fidl::endpoints::ClientEnd<DatagramSocketMarker>,
86226                            >,
86227                            fidl::encoding::DefaultFuchsiaResourceDialect
86228                        ));
86229                    }
86230                    #[allow(irrefutable_let_patterns)]
86231                    if let ProviderDatagramSocketResponse::DatagramSocket(ref mut val) = self {
86232                        fidl::decode!(
86233                            fidl::encoding::Endpoint<
86234                                fidl::endpoints::ClientEnd<DatagramSocketMarker>,
86235                            >,
86236                            fidl::encoding::DefaultFuchsiaResourceDialect,
86237                            val,
86238                            decoder,
86239                            _inner_offset,
86240                            depth
86241                        )?;
86242                    } else {
86243                        unreachable!()
86244                    }
86245                }
86246                2 => {
86247                    #[allow(irrefutable_let_patterns)]
86248                    if let ProviderDatagramSocketResponse::SynchronousDatagramSocket(_) = self {
86249                        // Do nothing, read the value into the object
86250                    } else {
86251                        // Initialize `self` to the right variant
86252                        *self = ProviderDatagramSocketResponse::SynchronousDatagramSocket(
86253                            fidl::new_empty!(
86254                                fidl::encoding::Endpoint<
86255                                    fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
86256                                >,
86257                                fidl::encoding::DefaultFuchsiaResourceDialect
86258                            ),
86259                        );
86260                    }
86261                    #[allow(irrefutable_let_patterns)]
86262                    if let ProviderDatagramSocketResponse::SynchronousDatagramSocket(ref mut val) =
86263                        self
86264                    {
86265                        fidl::decode!(
86266                            fidl::encoding::Endpoint<
86267                                fidl::endpoints::ClientEnd<SynchronousDatagramSocketMarker>,
86268                            >,
86269                            fidl::encoding::DefaultFuchsiaResourceDialect,
86270                            val,
86271                            decoder,
86272                            _inner_offset,
86273                            depth
86274                        )?;
86275                    } else {
86276                        unreachable!()
86277                    }
86278                }
86279                ordinal => panic!("unexpected ordinal {:?}", ordinal),
86280            }
86281            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
86282                return Err(fidl::Error::InvalidNumBytesInEnvelope);
86283            }
86284            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
86285                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
86286            }
86287            Ok(())
86288        }
86289    }
86290}